I18N::LangTags::Detect - 偵測使用者的語言偏好
use I18N::LangTags::Detect;
my @user_wants = I18N::LangTags::Detect::detect();
想要偵測使用者偏好的輸出語言是很常見的問題。
此模組定義一個公開函數,I18N::LangTags::Detect::detect()
。此函數未匯出(甚至無法匯出),且不接受任何參數。
在純量內容中,函數會傳回最優先的語言標籤(或如果未看到偏好,則傳回未定義)。
在清單內容中(通常是您想要的),函數會傳回一個(可能為空)的語言標籤清單,代表使用者顯然可以接受的輸出語言(最佳優先)。您可能會想要將此輸出來傳遞到 I18N::LangTags::implicate_supers_tightly(...)
或 I18N::LangTags::implicate_supers(...)
,如下所示
my @languages =
I18N::LangTags::implicate_supers_tightly(
I18N::LangTags::Detect::detect()
);
此模組會查看幾個環境變數:REQUEST_METHOD、HTTP_ACCEPT_LANGUAGE、LANGUAGE、LC_ALL、LC_MESSAGES 和 LANG。
如果已安裝 Win32::Locale 模組,且環境中未將 IGNORE_WIN32_LOCALE 設定為 true 值,它也會使用此模組。
I18N::LangTags、Win32::Locale、Locale::Maketext。
(此模組的核心程式碼最初是 Locale::Maketext 中的常式;但當我發現它更普遍有用時,我就把它移到這裡。)
版權所有 (c) 1998-2004 Sean M. Burke。保留所有權利。
此函式庫是免費軟體;您可以在與 Perl 相同的條款下重新散布或修改它。
此 dist 中的程式和文件散布的希望是它們會很有用,但沒有任何保證;甚至沒有對適銷性或特定用途適用性的默示保證。
Sean M. Burke sburke@cpan.org