Home >php教程 >php手册 >已解决:Ubuntu php gettext 无效

已解决:Ubuntu php gettext 无效

WBOY
WBOYOriginal
2016-06-06 19:44:011383browse

使用gettext做多文字国际化,按PHP官方文档,在CentOS上OK,在Ubuntu上不行,调试了快1天,试了网上提供的无数方法,终于有一个OK了 看到此文的同学别再被坑了 感谢:http://stackoverflow.com/questions/18551553/php-gettext-translate-in-wrong-language-

使用gettext做多文字国际化,按PHP官方文档,在CentOS上OK,在Ubuntu上不行,调试了快1天,试了网上提供的无数方法,终于有一个OK了……

看到此文的同学别再被坑了……

 

感谢:http://stackoverflow.com/questions/18551553/php-gettext-translate-in-wrong-language-when-running-from-shell

BS官网文档:http://www.php.net/manual/en/function.gettext.php

 

代码:

<span>php
</span><span>$lang</span> = 'en_US'; <span>//</span><span>linux不支持zh-Hans,所以gettext、php都不支持。使用locale -a可以看到os支持的语言文字国家地区码。</span>
<span>putenv</span>('LANGUAGE=' . <span>$lang</span>); <span>//</span><span>ubuntu 需要,centos不需要此行</span>
<span>setlocale</span>(LC_ALL, <span>$lang</span> . '.utf8'); <span>//</span><span>ubuntu 需要.utf8,centos可有可无</span>
<span>$domain</span> = 'strings'<span>;
bindtextdomain(</span><span>$domain</span>, <span>dirname</span>(<span>__FILE__</span>) . '/locale'<span>);
bind_textdomain_codeset(</span><span>$domain</span> , 'UTF-8'<span>);
textdomain(</span><span>$domain</span><span>);

</span><span>echo</span> _('asdf'<span>);
</span><span>echo</span> "\n"<span>;
</span><span>exit</span><span>;
</span>?>

 

目录为en_US,如下:

|     |---
|     |---<span>en_US
</span>|     |    |---<span>LC_MESSAGES
</span>|     |    |          |---strings.mo

 

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:PHP5.3开发Next article:js实现php函数urlencode