私は初心者で、django、django rest フレームワーク、およびクライアント側 MVC フレームワーク Angularjs を使用しています。
あなたのプロジェクトのいずれかでこのスタックに取り組んでいる、またはこのスタックに精通している開発者に、(多くの言語で) 翻訳をどのように処理していますか?
可能な限り効率的に行うためのベスト プラクティスは何ですか?また、利用可能な新しい言語拡張機能はありますか?
私は初心者で、django、django rest フレームワーク、およびクライアント側 MVC フレームワーク Angularjs を使用しています。
あなたのプロジェクトのいずれかでこのスタックに取り組んでいる、またはこのスタックに精通している開発者に、(多くの言語で) 翻訳をどのように処理していますか?
可能な限り効率的に行うためのベスト プラクティスは何ですか?また、利用可能な新しい言語拡張機能はありますか?
言語の扱いに関して、AngularJS に固有のものは何もありません。クライアント側で選択を処理する場合は、必ずAccept-Language
ヘッダーを設定してください。django 翻訳ドキュメントを参照してください。
サーバー側で言語選択を処理したい場合は、url パターンtranslation.LANGUAGE_SESSION_KEY
を使用するか、セッション キーを設定できます。
ストレージに裏打ちされたデータ (モデルなど) の変換をサポートする必要がある場合は、django-modeltranslationを使用するとよいパッケージです。指定したフィールドに追加の列を のそれぞれに 1 つずつ動的に追加しsettings.LANGUAGES
、元の列を現在アクティブな言語の値のプロキシとして使用できるようにします。
AngularJS で Django を使用し、フロントエンドとバックエンドの翻訳に同じ PO ファイルを使用したいと考えていました。
最後に、 django-vinaigretteとangular-translateを使用して成功しました。大文字と小文字を区別するorig と transという 2 つのフィールドを同じ内容で持つモデル AngularTranslations を作成しました。(少し無駄ですが、OK)。「trans」フィールドを Vinaigrette に登録し、angular-translate で読み取り可能な JSON として翻訳を出力する API GET メソッドを作成しました。また、欠落している翻訳を保存するために、同じメソッドへの POST を許可しました。ビネグレットは、実行時にそれらを拾いますmanage.py makemessages
。
もっと詳しく説明できますが、これが要点です。