內容

名稱

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::LangTagsWin32::LocaleLocale::Maketext

(此模組的核心程式碼最初是 Locale::Maketext 中的常式;但當我發現它更普遍有用時,我就把它移到這裡。)

版權

版權所有 (c) 1998-2004 Sean M. Burke。保留所有權利。

此函式庫是免費軟體;您可以在與 Perl 相同的條款下重新散布或修改它。

此 dist 中的程式和文件散布的希望是它們會很有用,但沒有任何保證;甚至沒有對適銷性或特定用途適用性的默示保證。

作者

Sean M. Burke sburke@cpan.org