所以我开始胡闹,gettext
但我仍然对某些事情感到困惑,如果有人能帮助我并为我填补空白,那就太好了。
通常大多数实现只是
setlocale
基于语言参数调用。有没有我需要使用putenv
的情况,也许是 Windows 设置的边缘情况?我的 php 框架的默认语言是英语,UTF-8 - 所以我设置
LC_ALL
为en_US.utf-8
,因为en_US
是 ISO-8859-1/Latin1,显然它不如 UTF-8 支持?调用后有什么我应该知道的问题
setlocale(LC_ALL, 'en_US.utf-8')
吗?因为它改变了所有这些:LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME, and LC_MESSAGES
- 我是否必须更新任何脚本,例如,生成时间或类似的东西?假设一个新配置的服务器没有
es_ES.utf-8
配置语言环境,我知道如何生成语言环境,但如果它不可用,那么我应该在阵列中提供备份吗?如果有人可以提供一个实际示例,那就太好了,例如:setlocale( LC_ALL, array('es_ES.UTF-8', 'es_ES', 'es') )
是否有某种网站提供此类示例,或者人们通常会自己提出优先顺序?
我在某处读到
locale
ori18n
文件夹的通常结构如下所示。结构真的很重要吗?似乎正在发生的一切是当您
bindtextdomain('messages', 'locale')
递归搜索该目录时messages.mo
,我可能没有注意到,但它可能正在考虑目录。
我应该对结构有多严格?
locale
en_US
LC_MESSAGES
messages.po
es_ES
LC_MESSAGES
messages.po
6. 我是否应该尝试测试系统是否真的支持语言环境?因为例如,如果服务器没有语言环境并且我尝试对其进行设置,setlocale
它不会出错或其他任何东西,它只会默默地让它过去。