プラグインBOGOを使用してのユーザー言語判別と転送について
-
はじめまして。最近ワードプレスでサイトを作り始めたものです。
現在は多言語対応のサイトを作る予定をしております。
私のレベル的には自作のHTML5のレスポンシブ対応で作る、PHPのプログラムは一応作れる、ワードプレスについては仕組みをあまり分かっていないという程度です。
また、ロケールやWPのリライトルールなどに関してもあまり分かっていません。
実現したいプログラムは日本以外の方がサイトを閲覧された場合は英語のインデックスページを自動的に参照し、日本の方がサイトを閲覧された場合は日本のインデックスページを参照しにいくというものです。最近、プラグインの「BOGO」を使用して、テストでサイトを作ってみました。
確かに日本語のページと英語のページがヒモづいていて、日本語のページを参照したときに英語のボタンを押せば英語表示のページが表示されるようになりました。
しかし、私が実現したいのは日本以外の方が例えばインデックスページを見に来た場合に英語のインデックスページにリダイレクトされるような仕組みがあればいいな、と思っております。
別のテストサイトで以下のようなPHPプログラムを入れればブラウザの主言語を判別してリダイレクトして日本語、あるいは英語のページに飛ぶことは検証できました。
<?php
// Usage: $a = ブラウザが発行する言語コード
// ※ $_SERVER[‘HTTP_ACCEPT_LANGUAGE’] に代入されている
// 言語名の統一を行う。
function langcode01($a){
$lang = substr($a, 0, 2); // ※ドイツ語類はすべて “de” を返す
// アラビア語 ?????
if($lang == “ar”) { $b = “ar”; } // アラビア語
// ドイツ語 ??????
if($lang == “de”) { $b = “de”; } // ドイツ語
// 英語 ???????
if($lang == “en”) { $b = “en”; } // 英語
// スペイン語 ?????
if($lang == “es”) { $b = “es”; } // スペイン語
// フランス語 ?????
if($lang == “fr”) { $b = “fr”; } // フランス語
// イタリア語 ?????
if($lang == “it”) { $b = “it”; } // イタリア語
// オランダ語 ?????
if($lang == “nl”) { $b = “nl”; } // オランダ語
// ノルウェー語 ????-
if($lang == “nn”) { $b = “nn”; } // ノルウェー語
if($lang == “nb”) { $b = “nn”; } // ノルウェー語
if($lang == “no”) { $b = “nn”; } // ノルウェー語
// ポルトガル語 ????-
if($lang == “pt”) { $b = “pt”; } // ポルトガル語
// ルーマニア語 ????-
if($lang == “ro”) { $b = “ro”; } // ルーマニア語
// ロシア語 ??????
if($lang == “ru”) { $b = “ru”; } // ロシア語
// セルビア語 ?????
if($lang == “sr”) { $b = “sr”; } // セルビア語/キリル
// スウェーデン語 ????
if($lang == “sv”) { $b = “sv”; } // スウェーデン語
// ウズベク語 ?????
if($lang == “uz”) { $b = “uz”; } // ウズベク語/キリル
// 中国語 ??????-
if($lang == “zh”) { $b = “zh”; } // 中国語
// その他 ??????-
if(empty($b)) { $b = $a; } // 入力値をそのまま返す。
return $b;
} // ED: function// europashe Sprache
$tmp[‘v’] = “English”; $tmp[‘c’] = “eng”; $tmp[‘c’] = “en”; $lang[]=$tmp;
$tmp[‘v’] = “eutsch”; $tmp[‘c’] = “deu”; $tmp[‘c’] = “de”; $lang[]=$tmp;
$tmp[‘v’] = “Francias”; $tmp[‘c’] = “fra”; $tmp[‘c’] = “fr”; $lang[]=$tmp;
// asianische Sprache
$tmp[‘v’] = “日本語”; $tmp[‘c’] = “jpn”; $tmp[‘c’] = “ja”; $lang[]=$tmp;
$tmp[‘v’] = “中文(簡体)”;$tmp[‘c’] = “chs”; $tmp[‘c’] = “zh”; $lang[]=$tmp;
$tmp[‘v’] = “中文(繁体)”;$tmp[‘c’] = “cht”; $tmp[‘c’] = “zh”; $lang[]=$tmp;if(!empty($_SERVER[‘HTTP_ACCEPT_LANGUAGE’])){
$lgs = $_SERVER[‘HTTP_ACCEPT_LANGUAGE’];
$ein = explode(“,”, $lgs);
foreach($ein as $zwei){
$drei = explode(“;”, $zwei);
$fier[] = $drei[0];
}
foreach($fier as $fuenf){
if(!empty($fuenf)){
$first_lang[] = langcode01($fuenf);
}
}
}//$lang は include() された $langset 内で代入されている
foreach($first_lang as $flang){
if(empty($c)){
foreach($lang as $ls){
if($ls[‘c’] == $flang){ $c = $ls[‘c’]; }
}
}
}
if(empty($c)){ $c = “eng”; }
//return $c;//リダイレクト
if($c == “ja”){
header(‘Location: (日本のページURL)’);
exit;
}else{
header(‘Location: (英語のページのURL)’);
exit;
}あとはこれを日本語のページAのロード?(初期表示時)に動かしてページAの英語ページに飛ばせればよいような気がするのですが、いかがでしょうか?
そもそもBOGOの仕組み、ワードプレスの仕組みがあまり分かっていない上でこんなことを実現するのは難しいのかもしれませんが、どなたかよくワードプレスや「BOGO」についてご存知の方に教えていただきたいと考えております。
- トピック「プラグインBOGOを使用してのユーザー言語判別と転送について」には新たに返信することはできません。