2016-07-21 6 views
0

角型アプリケーションで角度変換を使用しています。 私はまた、実行時に言語を設定します$translate.use(langKey)を使用していますページがリロードされたときにangular-translateを使う方法

$translateProvider.preferredLanguage('de') 

を使用してドイツにデフォルトの言語を設定しています。

しかし、実行時に言語をenglishに設定した後、ページをリロードすると、言語が再びGermanに設定されます。私が欲しいのはそれです 更新後、以前に設定された言語でページを読み込む必要があります。

私は使用できる角度がありますか、上記を実装するための独自のロジックを作成する必要があります。

答えて

1

あなたは自分のコントローラ内のサービス$ウィンドウを注入し、このsintaxを使用し、キャッシュ内の値を維持するためのlocalStorageを使用することができます。

$window.localStorage.setItem('lan', 'en'); 

キャッシュは、ブラウザを閉じても後の値を保持します。 ページを更新するときに、キーが存在するかどうかを確認するだけです。

if($window.localStorage.getItem('lan') === 'en'){ 
    //do something 
} 

ローカルストレージは、特定のドメインにバインドされている

既存のキーと値のペアをチェックするためにChromeウェブツールのタブのリソースを使用して見ることができます

enter image description here

よりドキュメント内の情報 https://developer.mozilla.org/it/docs/Web/API/Window/localStorage

2

すでにストーリーの実装がいくつかあります選択された言語を角度翻訳に組み込みます(アドオンモジュール経由)。クッキーとローカルストレージ用の組み込みソリューションを提供するhttps://angular-translate.github.io/docs/#/guide/10_storagesをご覧ください。これを手作業で扱うことは、一見するとそれほど簡単ではありません。モジュールで

それは1つのJavaScriptファイルにドロップすると変換プロバイダを設定する場合は、次の呼び出しを追加するのと同じくらい簡単です:

$translateProvider.useLocalStorage(); 
関連する問題