Catalyst を使用して i18n について理解を深めようとしています。私が理解した限りでは、Perl で翻訳を行うにはMaketextとGettextの 2 つの方法があります。ただし、gettext の.po形式をサポートする必要があるため、基本的には gettext を使用します。
今、私は Catalyst::Plugin::I18n と Locale::Maketext::Lexicon を見つけました。これは、ほとんどの場合、私が望むことを行います。ただし、適切な複数形を生成しません。つまり、適切msgid_plural
に.potファイルmsgstr[x]
に書き込みます。これはおそらく、Maketext がブラケット表記法に依存しているため、翻訳で同じ表記法を使用する必要があるためです。[quant,_1...]
さらに別の解決策として、Locale::Messages のような直接の gettext ポートを使用することも考えられますが、これは C::P::I18n を書き直すことを意味します。
いくつかのモジュールを書き直す以外に、この問題の適切な解決策はありますか? 適切な gettext とそのすべての機能を組み合わせたものなら何でも、Catalyst で十分です。