Locale::Maketext::Simple - Locale::Maketext::Lexicon 的簡單介面
此文件說明 Locale::Maketext::Simple 的 0.18 版,於 2006 年 9 月 8 日發布。
最小設定(尋找 auto/Foo/*.po 和 auto/Foo/*.mo)
package Foo;
use Locale::Maketext::Simple; # exports 'loc'
loc_lang('fr'); # set language to French
sub hello {
print loc("Hello, [_1]!", "World");
}
更進階的範例
package Foo::Bar;
use Locale::Maketext::Simple (
Class => 'Foo', # search in auto/Foo/
Style => 'gettext', # %1 instead of [_1]
Export => 'maketext', # maketext() instead of loc()
Subclass => 'L10N', # Foo::L10N instead of Foo::I18N
Decode => 1, # decode entries to unicode-strings
Encoding => 'locale', # but encode lexicons in current locale
# (needs Locale::Maketext::Lexicon 0.36)
);
sub japh {
print maketext("Just another %1 hacker", "Perl");
}
此模組是 Locale::Maketext::Lexicon 的簡單包裝,旨在減輕模組作者建立「語言類別」的需求。
使用的語言由 loc_lang 呼叫選擇。如果無法查詢,將使用預設語言。如果查詢不在預設語言中,則會傳回金鑰。
如果沒有 Locale::Maketext::Lexicon,它會實作一個簡單的在地化函式,只需將 [_1]
內插為第一個參數,將 [_2]
內插為第二個參數,以此類推。內插函式(例如 [quant,_1]
)會視為 [_1]
,唯一例外是 [tense,_1,X]
,當 X 為 present
時,它會將 ing
附加到 _1
,否則會將 ed
附加到 <_1>。
所有選項都透過 use
陳述式或明確的 import
傳遞。
預設情況下,Locale::Maketext::Simple 會從呼叫套件的 auto/ 目錄中取得其來源;你可以透過明確指定另一個套件為 Class
來覆寫此行為。
如果你的 PO 和 MO 檔案位於 auto/
以外的路徑,你可以使用 Path
選項來指定它。
預設情況下,此模組使用 [_1]
和 [quant,_1]
的 maketext
樣式進行內插。或者,你可以指定 gettext
樣式,它使用 %1
和 %quant(%1)
進行內插。
此選項不區分大小寫。
預設情況下,此模組會將一個函式 loc
匯出到其呼叫者的命名空間中。你可以將它設定為另一個名稱,或將它設定為空字串以停用匯出。
預設情況下,此模組會在呼叫者的套件(或由 Class
指定的套件)下建立一個 ::I18N
子類別,並將詞彙資料儲存在其子類別中。你可以透過此選項指定 I18N
以外的名稱。
如果設定為真值,來源條目將會轉換為 utf8 字串(在 Perl 5.6.1 或更新版本中可用)。此功能需要 Encode 或 Encode::compat 模組。
指定一個編碼來儲存詞彙條目,而不是 utf8 字串。如果設定為 locale
,則會使用目前語言環境設定的編碼。暗示 Decode
的真值。
感謝 Jos I. Boumans 建議撰寫此模組。
感謝 Chia-Liang Kao 建議 Path
和 loc_lang
。
Locale::Maketext、Locale::Maketext::Lexicon
Audrey Tang <cpan@audreyt.org>
Copyright 2003, 2004, 2005, 2006 by Audrey Tang <cpan@audreyt.org>。
此軟體在以下引用的 MIT 授權下發布。此外,當此軟體與 Perl Kit, Version 5 一起分發時,你也可以在與 Perl 本身相同的條款下重新分發和/或修改它。
在此授予任何取得此軟體和相關文件檔(「軟體」)副本的人免費許可,在軟體中進行處置,不受限制,包括但不限於使用、複製、修改、合併、發布、分發、再授權和/或銷售軟體副本的權利,並允許向其提供軟體的人員這麼做,但須符合下列條件
上述著作權聲明及此許可聲明應包含在軟體的所有副本或實質部分中。
軟體「依現況」提供,不提供任何明示或暗示的保證,包括但不限於適銷性、特定用途適用性及非侵權的保證。在任何情況下,作者或著作權持有者對於因軟體或使用或其他交易而產生的任何索賠、損害或其他責任,不論是基於合約、侵權或其他,概不負責。