国際化機能(すべての静的文字列をユーザーの言語に変換し、日付と通貨の形式を設定する)を必要とする単一ページのアプリを開発しています。
私はEmberを使っています。したがって、ほとんどの静的文字列は、(テンプレートまたはビュー内の)htmlブロック内にあるか、「本当に削除しますか?」(コントローラファイルの一部)などの一般的なJavascriptメッセージにあります。
私は、アプリケーションからこれらすべての文字列や他のロケール固有のビットを抽象化する方法に関するベストプラクティスと経験を探しています。
私は主に問題があるという事実を見ますユーザー言語はログイン後にのみ決定されます。しかしその時点では、完全なアプリケーションはすでに(英語で)ロードされているので、他の言語への「リダイレクト」は実際には不可能です(アプリケーションの開始時にすべての言語のストリングをすべてロードしない限り)開始時にロードされます。
どんなフィードバックでも歓迎です!
- 更新 -
その間に、私は文字列の翻訳に使えるember-i18nライブラリを見つけました。https://github.com/jamesarosen/ember-i18n)。
しかし、私の主な問題は残っています。選択した言語に対応する、またはログイン後にユーザーの言語に対応するtranslation.jsファイルを動的にロードする方法を教えてください。
次回のアプリケーション起動時にアプリケーションが正しい言語を使用するように選択された言語を保存する方法があります(したがって、UIをレンダリングする前に正しい翻訳ファイルをロードします)。
誰かが助けることを願っています。
マーク
回答:
回答№1は1あなたはクッキーに言語設定を保存することができますが、それは100%アプローチではありません。あるいは、言語がわかったらすぐに、翻訳jsonをajax呼び出しでロードしてください。