2016-10-27 14 views
0

Djangoで国際化とローカリゼーションを学びながら、私はウィンドウにgettextアプリケーションをインストールするように言われています。しかし、私たちが.poファイルに入力した翻訳文字列でdjangoによって翻訳が行われることがわかります。djangoが.poと.moファイルから明示的に変換するとき、gettextの使用は何ですか?

私は、ユーザーが特定の言語を選択すると、djangoはデフォルトの言語を翻訳した.poファイルから言語固有の文字列を取得するというプロセスを視覚化することができます。

このプロセスでgettextがどこで使用されているのかわかりません。私はgettextがそれ自身翻訳するのに使われていると思っていましたが、そうではありません。あなたはジャンゴでのエントリーの主なポイントから見ることができるように

+1

Djangoは 'gettext'を使って翻訳を行います。 – Sayse

+0

私たちが厳密に入力した.poファイルに翻訳されたコンテンツを表示しますか?もしそうなら、なぜ私たちはgettextを必要としますか? djangoが.poファイルから翻訳されたコンテンツをユーザに引き出すためには、これを行うだけです。 – Yogi

+1

'gettext'は' .po'と '.mo'ファイルを解釈するものですが、djangoファイルではありません – Sayse

答えて

1

translation source

Djangoは内部で正しい設定が適用されていると仮定した翻訳

trans_real輸入ここgettext here

を行うためにgettextを使用しています。

なぜジャンゴは独自の翻訳コードを作成するのではなくgettextを使用しますか?同様の理由から、既存の図書館を利用するのは、既存の図書館を利用すること(保守、テストなど)だけでなく、既存のプロジェクトから来た者を意味する20年以上もの経験があるという事実が、それをdjangoに統合します。

+0

私が正しく理解されていれば、gettextは.poファイルを読み込んで.moファイルにコンパイルするために使われます。現在、コンパイルされた.moファイルはdjangoによって翻訳を提供するために使用されます。 – Yogi

+1

@Yogi - あまりにも.... 'gettext'はまだmoファイルを読むものですが、djangoはそれを使って、[translation class](https://github.com/django/django)を使ってロケールのカタログを作成します/blob/master/django/utils/translation/trans_real.py#L95)...または少なくともこれは私の理解です – Sayse

+1

素晴らしい。私は今それを見ることができます。再度、感謝します。メカニカルエンジニアにとっては難しい。 – Yogi

関連する問題