suzuyan
フォーラムへの返信
-
フォーラム: プラグイン
返信が含まれるトピック: Bogoの言語切替をPHPで行う場合経過を記載します。
管理画面の一般>サイトの言語の設定はDBに保存されており、これをユーザーがアクセスするごとに変えさせるわけにはいきませんので、サイト表示時にその設定が反映される部分を修正することにしました。
以下のフィルターでその設定をコントロールできるようです。add_filter( ‘locale’, ‘my_locale’ );
function my_locale( $locale ) {
}例えばこれを’en_US’を設定することで、Bogoの表示言語を英語にすることができました(仮にこれを「強制設定」と呼称します)
ただ「強制設定」を実行する場所、方法が難しく、いくつかの方法で試しましたが、常に英語になってしまいます(つまり「強制設定」を行った状態で、ユーザーがBogoの切り替え機能から、言語を切り替えた場合、それは有効にならず、常に英語になる)
少々力技で実現したところ、切り替えは動作するようになったのですが、標準のURLへ切り替える時のみ、「強制設定」の内容が優先されます。
つまり、「http://www.example.com/」 →強制設定→ 「http://www.example.com/en/」(英語)
とした場合、
「http://www.example.com/en/」 →Bogo切り替え→ 「http://www.example.com/zh/」(中国語)
は問題有りませんが、
「http://www.example.com/en/」 →Bogo切り替え→ 「http://www.example.com/」(デフォルト、日本語)
とした場合は、強制設定の内容が反映してしまい、「http://www.example.com/en/」に変わってしまいます。
「強制設定」は最初のアクセス時のみで良く、以降はBogoにコントロールさせたいのですが、うまくいっていません。また判明しましたら記載します。
フォーラム: プラグイン
返信が含まれるトピック: Bogoの言語切替をPHPで行う場合調査を進めたところ、あまりパッとしない結果なので、記事を削除することも考えましたが、念の為記載を残します。
「Bogoの言語切替(またはデフォルト設定)をPHP内でおこなえれば」という記載ですが、Bogoの言語切替はリンクを動的に表示しているので、”PHPから行う”との質問はあまり意味がありませんでした。
また表示サイトにおける「Bogoのデフォルト表示」は、管理画面の一般>サイトの言語、に依存しているようでした。
現在、こちらの設定をコントロールする方法を模索中です。フォーラム: プラグイン
返信が含まれるトピック: wordpress4以降の管理画面、「サイトの言語」との連動についてフォーラム: プラグイン
返信が含まれるトピック: wordpress4以降の管理画面、「サイトの言語」との連動についてご回答ありがとうございます。>Takayuki Miyoshi様
ご説明により、Bogoの「アドミンバーで切り替えられる言語」と「サイトの言語」が違うものを切り替えていることが理解出来ました。
「アドミンバーで切り替えられる言語」>ユーザー個別の言語設定
「サイトの言語」>サイトのデフォルトの言語この場合、追随しないプラグイン側の多言語化方法に問題がある(つまり今回の場合は”ユーザー個別の言語設定”を考慮しない、できない方法)と考え、調査致しました。
この方法が問題の全てに当てはまるとは考えにくいですが、今回のケース(MTS Simple Booking )では以下のとおりです。
このプラグインでは独自の方法でpoファイルを読み込んでいるようでしたので、これを「plugins_loaded」をadd_actionさせ、「load_plugin_textdomain()」を実行させると、うまく切り替わるようになりました。
add_action( ‘plugins_loaded’, My_load_plugin_textdomain);
みたいな感じとなります。
力技での修正で、理解が追いついていませんが、ご参考までに記載します。
フォーラム: プラグイン
返信が含まれるトピック: wordpress4以降の管理画面、「サイトの言語」との連動について