2017-12-04 23 views
0

Angular(AngularJSではなく)がどのようにローカリゼーションに近づいているかを見てきました。翻訳されたテキストを提供する翻訳サービスを中心にしているようです。それは私が実際に必要以上に多くのように思えます。私は、英語とスペイン語の両方でダッシュボードを提供するWebサイトを作成しています。私が必要とするのは、ユーザーが選択した内容に応じて既に翻訳されたテキストを表示するサービスです。私はまだ同じアプローチを使用する必要がありますか、翻訳サービスの部分をスキップするか、スイッチング言語を処理する別のライブラリについて知っていますか?角度ローカライゼーション:ちょうどスイッチ言語、翻訳は不要

私はAngularを使い慣れていません(私は.NETの世界から来ていますが、ローカリゼーションは少しずつ異なります)。

ありがとうございました。

答えて

0

ngx-translateをご覧ください。

古典的な生のキーと値のペアをベースにしています。これは、厳密な翻訳ファイルや、http呼び出しなどの自己実装のロードメソッド(プログラムで翻訳ファイルを提供したくない場合)に対応できます。サービスは通常、デフォルト言語とフォールバック言語で開始されます。プログラムで言語を切り替えると、サービスは別の入力ファイル(または言語の翻訳を得るために実装したもの)を読み込もうとします。次に、言語の開始と切り替えの例を示します。

constructor(private translate: TranslateService) { 
    // this language will be used as a fallback when a translation isn't found in the current language 
    this.translate.setDefaultLang('en'); 

    // the lang to use, if the lang isn't available, it will use the current loader to get them 
    this.translate.use('en'); 
} 

switchLanguage(language:string) { 
    // switch to another language 
    this.translate.use(language); 
} 

翻訳値は複数の方法でフロントエンドにバインドすることができ、いくつかの作業は、あなたも、それが自動的にすべての値を切り替えます、言語を変更するときに何かをリロードする必要がないように、彼らは限られていますつかいます。他の方法では、現在表示されているコンポーネントをリロードすることはできません。

リロードせずに動作する例です。

<!-- translation value with the key "hello" in the currently set language --> 
<div translate>hello</div> 

詳細については、そのページをチェックしてください。かなり詳しく書かれています。