Djangoアプリケーションをローカライズする場合、makemessages
コマンドはTXT、HTML、PYファイルをすべて解析してPOファイルを生成しますが、JSファイルをローカライズするときはdjangojs
コマンドを実行する必要があります。私はDjangoのソースを掘り下げて、なぜこれが異なるのかを理解していません。誰かが説明できますか?JavaScriptファイルをDjangoで別々にローカライズする必要があるのはなぜですか?
私はプロダクション環境ではApacheを使用してアプリケーションファイルを提供していますが、Nginxなどの単純なプロキシは静的ファイルを提供するために使用されているため、アプリケーションサーバーの負荷が大幅に軽減されます。テンプレートをレンダリングするとき、Djangoは要求されたロケールをチェックし、適切なローカリゼーションファイルをロードしてテンプレートを提供しますが、JSは静的メディアとして扱われますが、Djangoによって解析されることはありません。これでしょうか?
(ジャンゴとIとローカリゼーションの世界へにおけるその私の最初の進出は疑問がいっぱい詰まってる、私はこの記事を見つけて、それゆえに見えることはできません答え誰の多く。)
おかげ
素晴らしいと有益な返答いただきありがとうございます。あなたが言及した3つのポイントについて、私はドキュメントでそれらについて読んだが、テンプレートと同様にJSをローカライズすることがなぜ問題になるのかについては説明しなかった。私はちょっと奇妙だと思うので、私はそう思う。なぜなら、ジャンゴのメディア生成器は便利だからだ。例:JSファイルに 'alert( 'Hello');という単純な行があり、これが' http:// www.example.com/en/static/example.js'から提供されていれば、 'http:// www.example.com/de/static/example.js'のドイツ語版です。あなたはこれをキャッシュすることさえできます。私は十分に冗長になったことを願っています。 –
はい、それは私がdjango-mediageneratorを好きな理由です;)あなたは、それらを束ねる、圧縮する、静的なファイルに本当に先進的なことをすることができます。それらに気づかせてください...大きな特徴の1つは、あなたはブラウザ側でキャッシュを重く使用します。静的ファイルを変更すると、mediageneratorは_cache busting_を実行し、ブラウザのキャッシュを無効にします。 –