私はブラウザが使用している言語を検出し、その言語に関連する適切なクラス要素を表示するページ(クライアント側のみ)を作成する必要性、および皮革にいるシナリオjQueryのブラウザの言語検出
他人。
英語がデフォルト言語になります。したがって、配列内のどのセルも一致しない場合、これが表示されます。
ブラウザで現在使用されている言語を検出するのに、navigator.language
とnavigator.userLanguage
(IE)の値を使用しています。
私は現在進行中のコードをいくつか持っていますが、可能性のあるすべての可能性を組み込んで配列を使用して選択する最良の方法は不明です。
複数の言語が国に結ばれている可能性もあります。英語の例としてen-us、en-ukなどがあります。これをどうやって結びつけるのですか?
コード
HTML
<ul class="text">
<li class="en active">English: Some text in english</li>
<li class="fr">French: Some text in french</li>
<li class="de">German: Some text in german</li>
<li class="it">Italian: Some text in italian</li>
<li class="ja">Japanese: Some text in japanese</li>
<li class="es">Spanish: Some text in spanish</li>
</ul>
JS(WIP)
var userLang = navigator.language || navigator.userLanguage,
countries = ['fr', 'de', 'it', 'ja', 'es'],
languagues = ['fr', 'de', 'it', 'ja', 'es'];
if (userLang === "fr") {
$('li').removeClass('active');
$('.fr').addClass('active');
}
例
ありがとうございました。
UPDATE
私のために働いた完全なソリューションを提供するために、最終的に将来のユーザーを支援するために、私は上からHTML
の同じレイアウトを使用してputvande's jQuery solutionとそれを組み合わせます。
注:このエフェクトは、ブラウザで選択された言語によって変更をトリガーします。 Google Chromeでこれを行う方法の一例としては:設定に
- ゴー - まで>
- スクロールをクリックし、「表示設定を高度...」 - >
- クリックして「言語と入力設定... " - >
- 言語を選択し、[完了]をクリックしてブラウザを再起動します。
これが役立ちます。
クライアント側で国際化を行うのは珍しいです。おそらく、サーバ側ではなく、そのための必要性があるでしょうか? – Orbling
@Orbling、残念ながらこの状況でははい。 – Xareyo
AJAXなどでオンデマンドでロードされた言語セットを取得できませんか?すべての翻訳をインサイチュで行うことは、あなたがそれを持っているときと同じように行う必要があります。これは、いくつかの要素タイプでは苦痛になります。セレクタ以外の要素のアクティブなクラスについて心配するのではなく、おそらく '.show() 'を使うだけです。 – Orbling