Perlスクリプトに国際化を追加するにはどうすればよいですか?
-
03-07-2019 - |
質問
多言語サポートをPerlで記述された成熟したCGIアプリケーションに導入することを検討しています。元々、翻訳ファイルにPerlハッシュ(ディスクに保存されている)を使用して独自のソリューションを展開することを検討していましたが、その後、私がやりたいように見えるCPANモジュールに出会いました( i18n )。
Perlでの国際化(特にi18n CPANモジュール)の経験はありますか? i18nモジュールは多言語サポートに適した方法ですか?カスタムソリューションを再検討する必要がありますか?
ありがとう
解決
ソフトウェアのローカリゼーションに関する Perl Journalの記事があります。多言語サポートを追加するときに何が期待できるかについての良いアイデアを提供します。美しく書かれており、ユーモラスです。
具体的には、この記事は Locale ::を作成および保守している人々によって書かれています。 Maketext
であるため、作成者がそれを正しく機能させるために耐えなければならなかったことが明らかな痛みの量に基づいてモジュールを推奨します。
他のヒント
最新のGNU gettext、ロケールの比較については、 http://rassie.org/archives/247 を参照してください。 :: MaketextおよびLocale :: TextDomain。
これに対する私の質問への回答 Perlコードのローカライズについてこの記事を読んでください。
時間があれば、 JiftyでI18Nがどのように行われるかを見てください。 フレームワーク-最初は非常に混乱しますが、非常にエレガントで使いやすいです。
_
をオーバーロードして、コード内の任意の場所で _(" text to translation")
を使用できるようにします。これらの文字列は、通常どおり Locale :: Maketext を使用して翻訳されます。
本当に強力なのは、スカラーを使用して文字列が必要になるまで翻訳を延期することです:: Defer を使用すると、どの言語に翻訳されるかを知る前であっても、いつでも文字列の追加を開始できます。たとえば、設定ファイルなど。これにより、I18Nの操作が本当に簡単になります。