0

プログラムのカスタマイズには多くのレベルがあります。

まずもちろん、gettext や xgettext などのツールが優れた機能を発揮する i18n メッセージを作成して、自分の言語を話せるようにすることです。

もう 1 つは、プロジェクトの目的に合わせて一部のメッセージの意味を変更する必要がある場合です。

問題は、ボイラープレート翻訳に加えてカスタマイズされたメッセージを別のファイルに保持し、カスタマイズされたメッセージが優先されることを標準ツールに理解させることは可能ですか?

これにより、これらのメッセージが公開リポジトリにコミットされたり、アップグレード時にボイラープレート テキストによって上書きされたりするのを防ぐことができます。

編集:ローカリゼーションを気にする人はあまり多くないので、どのプラットフォームでも回答を集めるのが適切だと思いますが、現時点では、この python/django を実装することに興味があります。

4

2 に答える 2

1

Java では、これらのローカライズされた文字列は ResourceBundles によって処理されます。ResourceBundle にはバリアントの概念があります。たとえば、messages_en.properties というベースの英語リソースを作成できます。message_en_US.properties次に、またはを使用して、英語の特定のバリアントをカスタマイズできますmessage_en_UK.properties

US と UK は ISO 国コードですが、カスタマイズしたい文字列だけを含む独自のカスタム バリアントを設定することもできます。例えば:

#messages_en.properties
button.click=Click
label.go=Go

#messages_en_ZZ.properties
button.click=Click Me

ロケールを に設定するen_ZZと、アプリケーションはまずmessages_en_ZZ.properties、カスタマイズされた文字列が存在するかどうかを調べてからmessages_en.properties、ボイラープレート翻訳のために にフォールバックします。[ResourceBundle の読み込み優先度の詳細][1]

[1]: http://java.sun.com/javase/6/docs/api/java/util/ResourceBundle.html#getBundle(java.lang.String、java.util.Locale、java.lang.ClassLoader )

于 2009-06-23T17:43:51.683 に答える
1

Qt の強力な i18n 機能 (ここを参照) があなたのニーズを満たすかもしれないと思います。もちろん、通常の祝福されたPyQtのおかげで、Python でも利用できます!

于 2009-06-24T03:13:57.720 に答える