こんな感じはいかがでしょうか?
<?php if (strtoupper(get_locale()) == 'JA') : ?>
日本語の内容
<?php elseif (strtoupper(get_locale()) == 'en_US') : ?>
英語の内容
<?php else : ?>
その他の言語
<?php endif; ?>
わたくしも、実際に使ってないので検証していませんが・・・・。
参考
http://elearn.jp/wpman/function/get_locale.html
ご返信ありがとうございます>mura0403
書いていただいた方法は、PHPのソース中で表示を切り替えるのに利用しています。
これで切り替わっていないということは、get_locale()結果が「ja」ということになります
今気づいたのですが、ということはやはりWordpress自体がどんな条件でget_locale()の結果を変えているのかが問題なのですね(Bogoはそれに準じていると思いますし)
使った環境は、英語OSで英語のブラウザですし、他にどこで見ているのかが不思議です。
もしかしてWordpressの日本語版(英語版でも同じですが)を使っている時点で、日本語版としてしか表示されないのかな(もちろん手動では切り替えができるのですが)
多分地域と言語設定だと思うのですが
もしかすると、IP判別とかの可能性もありますよね。
参考
WordPressをプラグインに頼らず多言語化する方法
閲覧者の使用しているブラウザや OS の言語設定は、Bogo の動作や get_locale()
の出力に一切影響しません。
https://ja.forums.wordpress.org/topic/152252
こちらのスレッドでも回答していますが、閲覧者の言語環境に合わせて WordPress のロケールを「自動で」変更することは、自分が何をしようとしているのかよく理解した上で行わなければトラブルの元にしかなりません。
なお管理画面の言語はユーザーごとに選択可能になっています。
教えていただいてありがとうございます
>mura0403さん(敬称が抜けていて失礼しました)
>Takayuki Miyoshiさん(作者さんから教えていただいて恐縮です)
IP判別は興味はあるんですが、手を出していない状態です。
ブラウザでの判別とからんでややこしくなってしまいそうで・・・ただWordpressでもそこは関係なかったので、安心しました。
教えていただいたリンクを拝見すると、自動で言語を切り替えるのはかなりの冒険なようです。
(これはWordpress本体もそうってことは、「そんな危ない事しないっての」ということなのかもしれない)
しかし一応と、いくつかのサイトを参考に、トップページのindex.phpにリダイレクト処理を入れてみました。
ブラウザを判別して、英国の場合、英語のリンクに飛ばしました(日本の場合はスルー)
すると一見うまくはできたのですが、英語環境の場合は、スイッチで日本語に切り替えができなくなりました。
リダイレクトループを防ぐため、「トップページのURLの場合にのみリダイレクト判別をする」という処理にしていたのがまずいみたいです(こうすると日本語の場合リダイレクトしない)
英語環境で英語のURL( http://test.com/en/)
↓
日本語のスイッチを押す
↓
トップページのURLにジャンプ「http://test.com/」
↓
でもこの場合リダイレクト判別スタート!
↓
英語環境なので英語に・・・
ということだと思います。やはりリダイレクトは難しい!?
WordPressの初期設定(wp-config.php??)にブラウザのロケールを反映できればと思うのですが、なにやら仕様が変わったらしくて、wp-config.phpで設定するのがご法度みたいでして
(念の為、define(‘WPLANG’, ‘en’)をただ単に追記して、設定しても英語には変わりませんでした)
かなりの難解な事になりそうです・・・まずい。
こんにちは、
私の作っているテーマで、CSSでの言語書き分けを試しています。
投稿本文に
<div class="lang-ja">日本語</div>
<div class="lang-not-ja">英語</div>
と記述していただくと、ループページでは、ブラウザの言語設定によって、どちらかを表示し
シングルページでは、ブラウザ設定による表示と、スクリプトボタンで両方とも表示するといった事をしています。
検証には、firefoxの quick locale switcherというのを使って確認していますが、
実際に使っているのは、自分自身ぐらいなので、よろしかったら使ってみてくださーい
raindrops
チョットそれるかもしれませんが
https://support.google.com/webmasters/answer/6059209
等も考慮に入れるといいかも
お返事が遅くなってすみません!>nobitaさん
かなり興味深い情報ありがとうございます。
今回作った環境になにか反映できればうれしいかも。
いただいた情報も合わせて、またテーマを拝見させてもらいます。
でもあれですね、この「英語環境の時は自動で英語で表示したい」というのは、けっこう需要があると思うんですけど、明確な回答がでてこないってことは、やっぱり難解な問題を感じますね・・・。
教えていただいてありがとうございます!>nobitaさん
こちらの記事はかなり読みました。
ここで多言語化プラグインのBogoの事を知ったんだったような。
ネットでの情報によると「qTranslate」は自動切り替えを搭載しているとか。
使ったことがないのでホントのところはわからないですが、今度試してみようと思ってます。
ネットでの情報によると「qTranslate」は自動切り替えを搭載しているとか。
使ったことがないのでホントのところはわからないですが、今度試してみようと思ってます。
一つのプラグインを決め打ちするのではなく、いくつか試してみるといいと思います。
例えば、qTranslate何かは、本業の機能以外に
http://wpsecure.net/2013/08/xss-for-the-month-of-june-july/
のようなセキュリティ問題が、複数回指摘されていたりするので、総合的に判断するといいと思います。