php gettext 为空,在Ubuntu上无法获取gettext(php)工作

搜索热词

以下示例适用于使用Apache的Mac OS X,即我将转换的字符串回显.但是在使用lighttpd的Ubuntu上,我会收到原始文本“非活动帐户”.我已经尝试过各种各样的环境变化的组合,没有任何运气.这不是文件权限,因为我可以回应.mo文件的内容.

//$locale = 'sv_SE.UTF-8';

$locale = 'sv_SE';

$dir = dirname(__FILE__);

// File permission is apparantly not a problem as this works...

//echo file_get_contents($dir . '/sv_SE/LC_MESSAGES/flattr.mo');

putenv("LANG=$locale");

putenv("LANGUAGE=$locale");

putenv("LC_ALL=$locale");

putenv("LC_MESSAGES=$locale");

setlocale(LC_ALL,$locale);

setlocale(LC_MESSAGES,$locale);

//setlocale(LANG,$locale);

//setlocale(LANGUAGE,$locale);

bindtextdomain('flattr',$dir);

//bind_textdomain_codeset("flattr",'UTF-8');

textdomain('flattr');

echo _("Inactive account");

?>

任何人都有什么想法?

我面对同样的问题.我会描述我在Ubuntu 10.10中修复的东西.

1)确保你有’gettext’安装,

sudo apt-get install gettext

或者,如果无法安装“gettext”,则可以安装“PHP-gettext”.如果您已经安装了“gettext”,则不需要软件包“PHP-gettext”.

2)然后为您的语言生成语言环境.在这个例子中,我将使用’sv_SE’.在“/usr/share / i18n / SUPPORTED”中查找支持的区域设置,

less /usr/share/i18n/SUPPORTED

你会发现多个行以’sv_SE’开头,

sv_SE.UTF-8 UTF-8

sv_SE ISO-8859-1

sv_SE.ISO-8859-15 ISO-8859-15

这意味着您有多个选项用于生成sv_SE的区域设置.其中一个选项在其名称(即sv_SE ISO-8859-1)中没有句点(.);这是该区域设置的默认字符集.要生成默认字符集的区域设置,请运行以下命令,

sudo locale-gen sv_SE

如果要为UTF-8字符集生成该区域设置,请运行此命令,

sudo locale-gen sv_SE.UTF-8

在生成区域设置后重新启动Apache(否则不会找到新生成的区域设置),

sudo service apache2 restart

3)最后,更新您的PHP脚本以匹配您生成的区域设置.如果您为“sv_SE”生成区域设置,

setlocale(LC_ALL,“sv_SE”);

但是如果您生成的UTF-8等效于该区域设置,请使用,“sv_SE.UTF-8”);

所有人都应该现在工作

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值