2009年4月26日發佈的「On the state of i18n in Perl」博文建議使用libintl-perl發行版中的Locale::TextDomain模塊來處理Perl中的l10n/i18n。除此之外,我必須使用gettext,並且Locale :: Messages/Locale :: TextDomain中的gettext支持比在Locale::Maketext中的gettext模擬更自然。在Perl中使用gettext和Locale :: TextDomain進行本地化,如果Locale :: TextDomain不可用
在GNU的gettext手冊第四章 「15 Other Programming Languages」 小標題 「15.5.18 Perl」 說:
- 便攜
- 的
libintl-perl
包是平臺無關的,但不是Perl的核心的一部分。如果程序包未安裝在目標系統上,則程序員負責提供所需功能的虛擬實現。
然而,如果包被安裝在目標既不在gettext的源examples/hello-perl
兩個例子(一個使用較低水平區域設置::消息,一個使用更高級別的區域設置:: TextDomain)包括檢測系統,如果不是,則提供虛擬執行。
什麼是複雜物質(相對於當安裝或不包檢測)是區域設置的下列片段:: TextDomain手冊頁:
概要
use Locale::TextDomain ('my-package', @locale_dirs); use Locale::TextDomain qw (my-package);
USAGE
請務必記住,您使用Locale :: TextDomain(3)部分「SYNOPSIS」,這意味着你必須使用它,而不是要求它。該模塊的行爲與其他模塊相比完全不同。
請問如何檢測libintl-perl是否存在於目標系統上,以及如何在未安裝的情況下提供虛擬貫穿實現?或者給出這樣做的程序/模塊的例子?
也許** Package :: Stash **或直接操作符號表而不是文本評估。 – 2013-04-25 15:16:49