web-dev-qa-db-ja.com

フロントエンドとバックエンドの異なる言語

私は英語のWordPressパッケージを使っていますが、これは非常にうまくいっています。

さて、私はブログのいくつかの要素(「投稿」、「コメント」など)を翻訳したいのですが、ダッシュボードのインターフェースは英語のままにしておきます。

サイト要素だけを翻訳するためのメカニズムはありますか?

8
serhio

次のことができます。

  1. wordpress.org から言語パック(例:de_DE.mo)を入手してください。言語パックがスタンドアロンのダウンロードとして入手できない場合は、あなたの言語用のWordPress Zipファイルにバンドルされている.moファイルも使用できます。 wp-content/languagesの下にあります。
  2. .moファイルをあなたのデフォルト(英語)WordPressインストールのwp-content/languages/に移動してください。
  3. wp-config.phpWPLANG定数を新しいロケール(例:de_DE)に変更します
  4. functions.phpに以下のフィルタを追加します。

functions.php

add_filter('locale', 'wpse27056_setLocale');
function wpse27056_setLocale($locale) {
    if ( is_admin() ) {
        return 'en_US';
    }

    return $locale;
}
18
rofflox

あなたはそれのためにプラグインを使うことができます: http://wordpress.org/extend/plugins/kau-boys-backend-localization/ または http://wordpress.org/extend/plugins/wp-native-ダッシュボード/

6
zodiac1978

Wordpress 4+用の更新された回答

@ roffloxの答え はまだ正しいのですが、WP 4.0以降、 'そのままの状態で'自分の関数を使用するときに影響を与える可能性があるWordpressへの変更がいくつかあります。

Wp-config定数 WPLANGは廃止予定となっていますSettings->Generalのドロップダウンでサイトの言語を設定するために。つまり、サイトの言語を Svenka に変更すると、サイトのadmin willは英語で表示されますが、Settings->Generalのサイトの言語ドロップダウンは事前に選択されますas 英語(アメリカ合衆国) 。つまり、後で全般設定を変更して、サイトの言語として Svenka を選択し忘れると、サイト全体が英語に戻ります。

私はあなたのfunctions.phpファイルに以下のように関数を作成することをお勧めします。

//    Set the locale; original function from @rofflox

function vnmFunctionality_setLocale($locale) {
    if (is_admin()) {
        return 'en_US';
    }

    return $locale;
}

add_filter('locale', 'vnmFunctionality_setLocale');

// Enqueue a script to force-set the Language dropdown on the General Options page, just in case we forget about it later.

function vnmFunctionality_countryReminderScript($hook) {
    if ($hook != 'options-general.php') {
        return;
    }

    wp_enqueue_script('lang-reminder-script', get_template_directory() . '/js/site-language.js', array('jquery'), '1.0.0', true);

    wp_localize_script('lang-reminder-script', 'langObject', array(
        'lang'  => get_option('WPLANG'),
    ));
}

add_action('admin_enqueue_scripts', 'vnmFunctionality_countryReminderScript');

そして、site-language.jsというJavascriptファイル(テーマの/js/フォルダに保存されています)は次のようになります。

jQuery(document).ready(function($) {
    $('select#WPLANG').val(langObject.lang).change();
});

毎回手動で行う必要がないように、これにより、[オプション]ページのドロップダウンでサイトの現在の表示言語が自動的に事前選択されるはずです。

2
indextwo

WordPressバージョン4.7以降 、異なる バックエンドユーザー native WordPress言語セレクタを使用して自分の好みの管理言語を設定できます。このように、彼らは彼らの言語でWordPressインターフェースを見て、より簡単にコンテンツを管理することができます。 Different language for Backend users in Wordpress independent of the Frontend language 

2
Serge

まだ誰かがそれを探しているのであれば、これがバージョン4.7以降にすべきことです。

function wp_noshor_redefine_locale($locale) {
    if( is_admin() ):
        switch_to_locale('en_US');
    endif;
}
add_filter('init','wp_noshor_redefine_locale');

これはダッシュボードに英語でロードすることを強制します、そしてあなたは設定に行き、あなたが望む言語を設定することができます。

1

WordPress 5.xでは、異なるフロントエンドとバックエンドの言語を取得するのはとても簡単です。

サイトの言語を変更するには、設定 - >一般 - >サイトの言語に進み、サイトの言語を選択してください。

enter image description here 

管理者パネルの場合は、ユーザー - >あなたのプロフィールの順に選択し、管理者パネルで希望する言語を選択します。

enter image description here 

したがって、上記のすべての解決策は絶対的なものとなり、各ユーザーはWordPressインターフェースに独自の言語を設定できます。

0
EckyBrazzz