PHPのgettext拡張機能を使用して、私のウェブサイトをさまざまな言語に翻訳しています。 <a href="?locale=en">English</a>
と <a href="?locale=ru">Russian</a>
URLからgettextパラメータ(locale = en)を隠す
と
$locale = false;
if (isSet($_GET["locale"])){
$locale = $_GET["locale"];
setcookie("locale", $locale, time()+60*60*24*30, "/");
}
if (!$locale && isSet($_COOKIE["locale"])){
$locale = $_COOKIE["locale"];
}
putenv("LC_ALL=$locale");
putenv("LANGUAGE=$locale");
setlocale(LC_ALL, $locale);
bindtextdomain("messages", "./locale");
bind_textdomain_codeset("messages", "UTF-8");
textdomain("messages");
私はきれいにURLを維持し、URLのうち、それらの?lang=en
パラメータを持っていると思った:私は、URLに基づいて言語を変更3つのリンクを持っています。だから、ユーザがproducts.php
へのlinをクリックすると、それはそのままで表示されませんproducts.php?locale=ru
どうすればいいですか?
あなたはクッキーを設定できますか?あなたのコードはすでにそれのために用意されています –
そして、実際にはあなたはどちらにもしてはいけません。 '$ _SERVER [" HTTP_ACCEPT_LANGUAGE "]'にヘッダがあります。クッキーと言語ボタンはフォールバックとしてのみ使用しますが、それ以上は使用しません。 – mario
Pekka:私はそれを書かなかった、私はいくつかのサイトの例としてそれを見た – tmrhmdv