web-dev-qa-db-ja.com

テーマがアクティブになったときにコアWPLANGが自動的に言語を設定するようにするにはどうすればよいですか?

私は特にBānglāブログ投稿のためのテーマを開発しています、そしてそれはGNUライセンスの下にあるでしょう。私は今日いくつかの問題を抱えたCalendar Widgetの翻訳について質問し、 コメント を言っていました:

疑問に思っていますが、これは バングラ語の翻訳 でカバーされていませんか?

そして s_ha_dumの答え の後に、私は翻訳可能なテーマを作ることができると思いました。それから私は私のテーマに必要なすべてのテキストを翻訳することができます。私はついていきます:

  1. WordPressテーマの国際化と地域化
    - Konstantinos Kouratorasさんによる - WP.SmashingMagazine.com
  2. テーマの翻訳
    - Robert Treacyによる - WP.TutsPlus.com

そして今、私は完全な翻訳可能なテーマを作りました、そしてそれは私がwp-config.phpの中で私のWPLANGを私の言語に変更するときそれは働いています。しかし、このステップを除いて、すべてが自動です。それで、このステップが自動であることができるならば、それは私にとって素晴らしいことです。

WPLANGをフックしてbn_BDで上書きできるようなフィルタを配置したいのですが。

define('WPLANG', 'bn_BD');

テーマがアクティブになったとき。

私は簡単に言うことができるように:「テーマをインストールして、それはあなたのためにすべてを行います。wp-config.phpに変更を加えるためにあなたのcPanelにアクセスする必要はありません。」私はWPSEスレッドを読んだ Wordpressで言語変更をトリガーする 、しかしあなたが今私に出会えば、私は別の道を進んでいる。

それで、それは可能ですか?

1
Mayeenul Islam

うん、WPSEスレッドから toscho's Answer から答えを得た。単に彼を引用します。 Filter:Locale を使用して、関数をフックします。

add_filter( 'locale', 'wpse_52419_toscho_change_language' );

function wpse_52419_toscho_change_language( $locale ) {
    return 'bn_BD';
}

コードをfunctions.phpに配置します。

1
Mayeenul Islam

あなたがphpの定数をdefine()した後に値を再定義/上書きすることができないようにあなたが尋ねるようにそれをすることは不可能です。しかし、あなたがやろうとしていることは必要ではありません、この定数はローカライズされたワードプレスのインストールの一部として定義されています。

管理者用とフロントエンド用に異なる言語を使い、言語設定を上書きする機能を必要とする人のEdgeケースがありますが、それらのためのプラグイン/コードスニペットがあります。

あなたがやろうとしていることは、あなたのテーマが英語とバングラデシュのサイト以外で使われるのを防ぐでしょう。なぜあなたはそのようにそれを制限したいのですか。

1
Mark Kaplun