ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

php-i18n / gettext:Web应用程序中的setlocale配置

2019-12-10 10:50:41  阅读:364  来源: 互联网

标签:gettext linux php internationalization localization


所以我开始搞乱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和LC_MESSAGES-我是否需要更新任何脚本,例如生成时间或类似时间的脚本?
>例如,假设一台新配置的服务器未配置es_ES.utf-8语言环境,我知道如何生成语言环境,但是如果它不可用,那么我应该在阵列中提供备份吗?如果有人可以提供一个实际的例子,那就太好了,例如:

setlocale(LC_ALL,array(‘es_ES.UTF-8′,’es_ES’,’es’)))

是否有某种提供此类示例的网站,或者人们通常会提出优先顺序吗?
>我在某处读到,语言环境或i18n文件夹的通常结构如下所示.

结构真的重要吗?似乎发生的一切是当您执行bindtextdomain(‘messages’,’locale’)时,它递归地在该目录中搜索messages.mo,我可能没有注意到,但可能是在考虑目录.

我对结构应该有多严格?

locale
  en_US
      LC_MESSAGES
         messages.po
  es_ES
      LC_MESSAGES
         messages.po

6.我什至应该尝试测试系统是否真正支持语言环境吗?因为例如,如果服务器没有语言环境,而我尝试使用setlocale设置它,则不会出错或发生任何错误,它只会默默地让它过去.

解决方法:

这不是您问题的合格答案,我并不是说使用gettext是不好的-我从没有用过足够的精力来对它有深刻的见解-但由于它的复杂性和巨大的不可预测性,我决定不使用它在具有不同语言环境的不同平台上.我发布了一个问题,寻找替代品here,虽然周围没有很多东西,但Zend_translate包似乎值得一看.我自己还没有解决.

如果使用gettext,请确保签出PHP Manual User Contributed Notes on Gettext.

标签:gettext,linux,php,internationalization,localization
来源: https://codeday.me/bug/20191210/2101328.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有