サポート » 使い方全般 » wp-config内での言語の切り替え

  • 解決済 hokutonojikei

    (@hokutonojikei)


    日本語サイトと英語版サイトを構築しており、
    ウィジェットの部分を日本語と英語で分けて作成したいと考えています。

    ウィジェット部分だけを変更できればいいのですが
    その方法が見つけられなかったため
    ページタイトルが日本語か英語かで振り分けようと
    考えております。

    そこでwp-config.phpに以下のソースを書きました。

    —————————————————————————-
    $url = “http://” . $_SERVER[“HTTP_HOST”] . $_SERVER[“REQUEST_URI”];
    function getPageTitle( $url ) {
    $html = @file_get_contents($url); //(1)
    $html = mb_convert_encoding($html, mb_internal_encoding(), “auto” ); //(2)
    if ( preg_match( “/<title>(.*?)<\/title>/i”, $html, $matches) ) { //(3)
    return $matches[1];
    } else {
    return false;
    }
    }

    $mojiretsu = getPageTitle($url);

    $japaneseorenglish = str_split($mojiretsu);
    $counthensu = count($japaneseorenglish);
    $mbhensu = mb_strlen($mojiretsu,’utf8′);
    if($counthensu == $mbhensu) {
    define (‘WPLANG’, ‘en’);
    } else {
    define (‘WPLANG’, ‘jp’);
    }
    —————————————————————————-

    $counthensu,$mbhensuの部分までは取得できておりますが
    defineの部分がうまく反映されません。

    間違っている個所などご指摘いただけましたら幸いです。

    またfunctions.phpでこのような振り分けができれば
    その書き方もご教示いただけましたら幸いです。
    よろしくお願いいたします。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • 投稿に、日本語と英語を区別するデータは入っていないのでしょうか? まあ、それは別として、WPLANG に指定するのは、

    • ja

    だと思います。

    トピック投稿者 hokutonojikei

    (@hokutonojikei)

    kjmtshさん、ご回答ありがとうございます。

    ご指摘の通りjpが原因でした。
    お騒がせいたしましたm(_)m凹

    投稿のカテゴリやタグなどで紐づけできるのでしょうか。

    functions.phpに
    define (‘WPLANG’, ‘en’);
    としてみましたが効きませんでした。

    wp-config.php内でカテゴリやタグに紐づけるということでしょうか。
    度々恐縮ですがよろしくお願いいたします。

    モデレーター gatespace

    (@gatespace)

    複数の言語での運用について、まずCodexで基本的な部分を押さえてください
    http://wpdocs.sourceforge.jp/WordPress_%E3%81%A7%E5%A4%9A%E8%A8%80%E8%AA%9E%E3%82%B5%E3%82%A4%E3%83%88%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B

    こんにちは、

    簡単にするなら、

    $browser_lang = $_SERVER[ "HTTP_ACCEPT_LANGUAGE" ];
    $browser_lang = explode( ",", $browser_lang );
    $browser_lang = esc_html( $browser_lang[ 0 ] );

    のようにして、ブラウザの言語設定を取得して、

    body_class()にそのクラスを追加して、

    カスタムウィジェットに適当なクラスを割り当てて、

    後は、CSSで、

    .en .widget_lang_ja{
      display:none;
    }
    .ja .widget_lang_en{
      display:none;
    }

    とするような事でできるかも( すみません テストはしていないですが )

    キャッシュ使う場合は、同じことをjQueryなどで行えばいいと思います。

    トピック投稿者 hokutonojikei

    (@hokutonojikei)

    gatespaceさん、ご回答ありがとうございます。

    申し訳ありません。wordpressで多言語化は
    ちょっと裏技的というかまだそこまでサポートされていないのですね。

    本来なら複数インストールがスムーズかなと個人的にも
    考えておりましたが、今回は予算などの関連で
    横着してしまいました。無理な質問をしていたようで恐縮です。

    今回初めて日本語以外でちゃんとサイトを組んでみましたが
    1バイト文字特有のバグ?(CSS関連)なども発生し
    なかなか楽しかったです。

    moファイルを使う方法も少し興味がありますが
    質問が違いますので、必要であればまた質問させていただきます。
    ありがとうございました。

    トピック投稿者 hokutonojikei

    (@hokutonojikei)

    nobitaさん、ありがとうございます。

    >のようにして、ブラウザの言語設定を取得して、

    その手がありましたね~
    思いつきませんでした><

    勉強になりました。
    これ何かの機会に使わせていただきます!
    ブラウザも調べるといろいろできそうですね!
    もうちょっとブラウザの種類が減ってくれると
    調べるやる気も出てきますが^^;

    トピック投稿者 hokutonojikei

    (@hokutonojikei)

    取り急ぎ問題の解決はできました。
    ご回答くださった皆様ありがとうございました。
    (いつもありがとうございますm(_)m)

    少し新たな疑問が出てしまいましたが
    それは必要な際、改めて立てさせていただきます。
    今後ともどうぞよろしくお願いいたします。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • トピック「wp-config内での言語の切り替え」には新たに返信することはできません。