使用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
立即学习“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
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号