我是西班牙语,并且正在测试文本宽度PHP的测试,我只将它翻译成英语。 我得到了这种文件结构:
locale/en_US/LC_MESSAGES/con los ficheros messages.mo y messages.po
locale/es_ES/LC_MESSAGES/con los ficheros messages.mo y messages.po
locale/fr_FR/LC_MESSAGES/con los ficheros messages.mo y messages.po
每个文件都有关键词" Servicios"翻译成每个语言。
在PHP中我有这个代码:
<?php
putenv("LANG=en_US");
setlocale(LC_ALL, "en_US");
bindtextdomain("messages", "locale");
textdomain("messages");
?>
当我把代码&#39; en_US&#39;显示良好的翻译,但当我将其更改为&#39; es_ES&#39;或者&#39; fr_FR&#39;那样:
<?php
putenv("LANG=es_ES");
setlocale(LC_ALL, "es_ES");
?>
或
<?php
putenv("LANG=fr_FR");
setlocale(LC_ALL, "fr_FR");
?>
仍显示英文翻译
我正在研究Widnows 7和功能
echo $_SERVER['HTTP_ACCEPT_LANGUAGE'] ;
返回 &#34; ES-ES,ES; Q = 0.8&#34; 总是,
可能是哪个问题? 谢谢
答案 0 :(得分:0)
很可能在您运行脚本的服务器上没有安装语言 - 您是否具有对服务器的shell访问权限?然后尝试
locale -a
查看安装了哪些区域设置。另请查看Is it feasible to rely on setlocale, and rely on locales being installed?
注意:强>
请注意LC_ALL
设置,因为它可能会引入一些不需要的转换。例如,我使用
setlocale (LC_ALL, "Dutch");
在页面上用荷兰语获得我的工作日。从那一刻起(我发现很多小时后)我的MYSQL中的浮点值被解释为整数,因为荷兰语语言环境需要逗号(,)而不是小数点前的点(。)。我尝试了printf
,number_format
,floatval
....但都无济于事。 1.50
始终打印为1.00
:(
当我将我的语言环境设置为:
setlocale (LC_TIME, "Dutch");
我的工作日现在很好,我的浮点价值也是如此。