ローカリゼーション:バックエンドが必要:定義された言語の英語とフロントエンド


9

Wordpressのバックエンドを英語にして、フロントエンドに別のロケールを使用したい

これまでのところ、フロントエンドで使用したいロケールをwpconfigに設定し、functions.phpに次のように追加することで、おそらくそれができると思います。

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

これは私が望むことを達成するためのベストプラクティスですか、それとも別の方法で行う必要がありますか?

回答:



1

必要なプラグインがあります。

http://wordpress.org/extend/plugins/fe-be-localization/


よろしくお願いします。コードを紹介しますが、2008年以降更新されておらず、WP 2.6までしかサポートされていないので、おそらく使用しません。そしてそれを更新する
unfulvio

ちょうどチェックしたところ、それは上で書いた関数とほとんど同じですが、別のスタイルで
unfulvio

ええ、それは古いですが、周りの唯一のようです。コードがあなたがそれを行った方法である場合、私は答えがあなたが正しい軌道に乗っていて、その方法が私がそれをどのように行ったかであると思います...より良い方法を考えることができません。
Andy James

1

今までのところ、フルビオの答えは最高だと思います。私は、1行だけのマルチサイト設定でもそのフィルターを使用しています。

add_filter('locale', 'set_admin_locale');
function set_admin_locale($locale) {
  return 'en_US';
}

基本的に時々、そしてこの場合、私はプラグインの代わりに多言語サイトにマルチサイトを使用します。また、私は言語ごとに1つのテーマを持っています(通常、メイン言語の子テーマ)。したがって、ネットワークのすべてのサイトには独自の言語がありますが、管理者側では、すべてのインターフェースをイタリア語で必要とします。

だから私がすることは:

  1. wp-config.phpで一般的なWPLANG定数を使用していません
  2. ネットワークのすべてのサイトにイタリア語を設定しました
  3. 各テーマのfunctions.phpで、上記のフィルターを使用してフロントエンドの言語/ロケールを制御します。

注:このフィルターは管理言語を変更しないため、is_admin()であるかどうかを確認する必要はありません。


0

まだ誰かがそれを探しているなら、バージョン4.7以降にすべきことはここにあります

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

これにより、ダッシュボードが英語で読み込まれ、設定に移動して、希望する言語を設定できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.