I18N::LangTags::Detect - 检测用户的语言偏好
use I18N::LangTags::Detect;
my @user_wants = I18N::LangTags::Detect::detect();
检测用户希望以何种语言输出是一个常见问题。
此模块定义一个公共函数,I18N::LangTags::Detect::detect()
。此函数未导出(甚至不可导出),并且不接受任何参数。
在标量上下文中,该函数返回最优先的语言标签(如果未看到任何偏好,则返回 undef)。
在列表上下文中(通常是您想要的),该函数返回一个(可能为空)语言标签列表,表示用户显然接受输出的语言(从最佳到最差)。您可能希望将此函数的输出通过 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 设置为真值,它还会使用该模块。
I18N::LangTags、Win32::Locale、Locale::Maketext。
(此模块的核心代码最初是 Locale::Maketext 中的一个例程;但当我意识到它更普遍有用时,我将其移到这里。)
版权所有 (c) 1998-2004 Sean M. Burke。保留所有权利。
此库是免费软件;您可以在与 Perl 本身相同的条款下重新分发和/或修改它。
此发行版中的程序和文档按“现状”提供,不提供任何形式的明示或暗示的保证,包括但不限于适销性和特定用途适用性的暗示保证。
Sean M. Burke [email protected]