この部分はコメントである必要がありますが、少し長めにしてください
あなたが提供したリンクに記載されている方法は、言語の選択肢を実装するための合理的な方法ですが、選択肢を検出する方法がありません。
お使いのブラウザはすでに、それは彼らshould respond in考えてどのような言語(複数可)のサーバーに指示します。ほとんどのWebサーバーにはmultiplexing different language contentの仕組みがあります。しかし後者は、ビヘイビアをオーバーライドする簡単な手段を提供せずに、ブラウザの選択肢をハードワイヤリングすることを意味します。
私が前に使用しているアプローチは、このようなものです:あなたはについて尋ねた問題への今
$use_lang='en-GB';
if (isset($_COOKIE['userlang'])
&& is_language_supported($_COOKIE['userlang'])) {
$use_lang=$_COOKIE['userlang'];
} else if ($proposedlang=supported_lang_in($_SERVER['Accept-Language'])) {
$use_lang=$proposedlang;
}
function supported_lang_in($str)
{
$l=array();
$opts=explode(',', $str);
foreach ($opts as $v) {
list($p, $weight)=explode(';', $v);
if ($weight) {
list($dummy, $weight)=explode('=', $weight);
$weight=float($weight);
}
if (!$weight) {
$weight=1.0;
}
if (isset($l[$weight])) {
$weight-=0.001;
}
$l[$weight]=$p;
}
krsort($p); // preferred first
foreach ($p as $proposed) {
if ('*'==$proposed) {
return false;
}
if (is_language_supported($proposed)) {
return $lang;
}
}
return false;
}
....
言語を間接参照し、同じコンテンツを参照するように異なるURLを維持コンテンツ内では、この問題に対する非常にビザンチンの解決策のようです。入力をURLにマップするだけでなく、出力のURLを適切な表現に書き換える必要があります。
意味的に意味のあるURLを持つ一方で、これらは動的に、おそらくあなたの時間を最大限に活用ではないではありません調整するために偉大な長さに行く、明確なボーナスです。
あなたはその名前を保存してlangが変更されたときに使用する必要があります –