> php教程 > php手册 > 본문

已解决:Ubuntu php gettext 无效

WBOY
풀어 주다: 2016-06-06 19:44:01
원래의
1338명이 탐색했습니다.

使用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
로그인 후 복사

 

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿