サポート » プラグイン » 英語環境では英語を表示させたい

  • ※なぜかタイトルが消えてしまいました。汚してすみません・・・自分で記事が消せないんですね。内容が確認できないので再度ご質問させてください

    [モデレーター編集: 重複した投稿2件を削除しました。]

    日本語と英語を切り替えて使えるサイトを作成中です。
    幾つか調査して「Bogo」というプラグインが一番良さそうでしたので、使わせてもらっています。
    こちらを使う中で疑問がでてきましたので、なにかご存知の方がおられたらよろしくお願いします。

    「Bogo」はすばらしくて、日本語と英語を切り替えられるサイトを作ることが出来ました。
    この時、切り替えはスイッチで行っています。

    あと、英語環境、つまり英語OSの英語ブラウザで使う際には、ページを表示した時に自動で英語に切り替わってほしいのですが、現在うまく切り替わりません。
    (じぶんではWordpressの管理画面とかも自動で切り替わると想像してたのですが、そのようなことはありませんでした)

    こちらのフォーラムで同じようなご質問を発見し、「Bogo」をお薦めされていましたので、「自動切り替えする」と考えてしまっていましたが、実際にはそんなことはできるんでしょうか。

    そもそも「get_locale()」すると、「ja」になってるんですが、英語OSの英語ブラウザでもこんなことあるんでしょうか。ブラウザの言語も英語だけです。

10件の返信を表示中 - 1 - 10件目 (全10件中)
  • こんな感じはいかがでしょうか?

    <?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

    トピック投稿者 nabisuko

    (@nabisuko)

    ご返信ありがとうございます>mura0403

    書いていただいた方法は、PHPのソース中で表示を切り替えるのに利用しています。
    これで切り替わっていないということは、get_locale()結果が「ja」ということになります

    今気づいたのですが、ということはやはりWordpress自体がどんな条件でget_locale()の結果を変えているのかが問題なのですね(Bogoはそれに準じていると思いますし)

    使った環境は、英語OSで英語のブラウザですし、他にどこで見ているのかが不思議です。

    もしかしてWordpressの日本語版(英語版でも同じですが)を使っている時点で、日本語版としてしか表示されないのかな(もちろん手動では切り替えができるのですが)

    多分地域と言語設定だと思うのですが
    もしかすると、IP判別とかの可能性もありますよね。

    参考

    http://stocker.jp/diary/wordpress_multilingual/

    モデレーター Takayuki Miyoshi

    (@takayukister)

    閲覧者の使用しているブラウザや OS の言語設定は、Bogo の動作や get_locale() の出力に一切影響しません。

    https://ja.forums.wordpress.org/topic/152252

    こちらのスレッドでも回答していますが、閲覧者の言語環境に合わせて WordPress のロケールを「自動で」変更することは、自分が何をしようとしているのかよく理解した上で行わなければトラブルの元にしかなりません。

    なお管理画面の言語はユーザーごとに選択可能になっています。

    トピック投稿者 nabisuko

    (@nabisuko)

    教えていただいてありがとうございます
    >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というのを使って確認していますが、
    実際に使っているのは、自分自身ぐらいなので、よろしかったら使ってみてくださーい

    https://wordpress.org/themes/raindrops/

    チョットそれるかもしれませんが

    https://support.google.com/webmasters/answer/6059209

    等も考慮に入れるといいかも

    トピック投稿者 nabisuko

    (@nabisuko)

    お返事が遅くなってすみません!>nobitaさん

    かなり興味深い情報ありがとうございます。
    今回作った環境になにか反映できればうれしいかも。
    いただいた情報も合わせて、またテーマを拝見させてもらいます。

    でもあれですね、この「英語環境の時は自動で英語で表示したい」というのは、けっこう需要があると思うんですけど、明確な回答がでてこないってことは、やっぱり難解な問題を感じますね・・・。

    トピック投稿者 nabisuko

    (@nabisuko)

    教えていただいてありがとうございます!>nobitaさん

    こちらの記事はかなり読みました。
    ここで多言語化プラグインのBogoの事を知ったんだったような。

    ネットでの情報によると「qTranslate」は自動切り替えを搭載しているとか。
    使ったことがないのでホントのところはわからないですが、今度試してみようと思ってます。

    ネットでの情報によると「qTranslate」は自動切り替えを搭載しているとか。
    使ったことがないのでホントのところはわからないですが、今度試してみようと思ってます。

    一つのプラグインを決め打ちするのではなく、いくつか試してみるといいと思います。
    例えば、qTranslate何かは、本業の機能以外に

    http://wpsecure.net/2013/08/xss-for-the-month-of-june-july/

    のようなセキュリティ問題が、複数回指摘されていたりするので、総合的に判断するといいと思います。

10件の返信を表示中 - 1 - 10件目 (全10件中)
  • トピック「英語環境では英語を表示させたい」には新たに返信することはできません。