2

gettext を使用して国際化のサポートを提供する Python アプリケーションでは、*.mo メッセージ カタログのパスをpo/language.modefault ではなく に変更しlocaledir/language/LC_MESSAGES/domain.moたいと考えています。これは、この命名スキームを必要とする Launchpad の翻訳インターフェイスを使用したいからです (少なくとも私が理解している限り[1])。

ただし、モジュールのドキュメントを読んだ後では、gettext モジュールにモンキー パッチを適用しない限り、これを行う方法を見つけることができないようです。それを行う「公式」の方法はありますか?

[1] https://help.launchpad.net/Translations/YourProject/Exports


編集: しばらく考えてみると、コンパイルされた *.mo ファイルではなく *.po ファイルのみを対象としているため、Launchpad 統合にパスを変更する必要は実際にはありません。ただし、アプリケーションがシステムディレクトリをできるだけいじらないといいので、私の質問はまだ残っています (特に、* nix、Windows、および OS X で実行されるマルチプラットフォームアプリであることを考えると)。

4

1 に答える 1

4

PHPについても同じ質問をしましたが、答えは基礎となるgettextapiにあります。カタログのパスを変更することはできません。

ディレクトリ構造はgettextによって修正されます。

多くの異なるパッケージの多くの異なる言語を保存する必要があるため、これらの情報をファイルメッセージカタログファイルに追加する方法が必要です。Unix環境で通常使用される方法は、ファイル名にこのエンコーディングを含めることです。これもここで行われます。bindtextdomainsの2番目の引数(またはデフォルトのディレクトリ)で指定されたディレクトリ名に続いて、ロケールの名前、ロケールカテゴリ、およびドメイン名が連結されます。

dir_name / locale / LC_category / domain_name.mo

参照:PHP Gettext:ドメインのパスを設定した後にデフォルトのMOパスを変更する方法は?

于 2012-03-01T13:40:34.037 に答える