Heim  >  Artikel  >  Backend-Entwicklung  >  php 使用gettext实现国际化有关问题! 用过的进来讨论一下撒~

php 使用gettext实现国际化有关问题! 用过的进来讨论一下撒~

WBOY
WBOYOriginal
2016-06-13 13:36:13855Durchsuche

php 使用gettext实现国际化问题! 用过的进来讨论一下撒~~
我的环境:ubuntu server +xampp 套件

php代码中的输出是使用简体中文来输出的,现在 要将简体中文的输出转换成英文,和繁体中文。
使用gettext 来做。

现象 : 无法转换!
  但是, 如果吧代码中得中文换成英文字符,然后在 .po文件中更新一下,再生成.mo文件后,则能够正常转换!


也就是说 当po文件中的需要转换的字符串为中文的时候 则不能转!

即 中文 --》 其他语言 ,不成功!
  英文 --》 其他语言 ,则能够成功!!


请大家来讨论下这是为什么?!



------解决方案--------------------
下载地址:
http://sourceforge.net/projects/gnuwin32/files/gettext/0.14.4/gettext-0.14.4-src.zip/download

PHP code

第一步:撰写PHP程序
<?php putenv("LANG=zh_CN");
setlocale(LC_ALL, "zh_CN");

bindtextdomain("test", "./locale");
textdomain("test");

echo gettext("Hello!");
echo gettext("World!");
echo gettext("Hello World!");
?>
第二步:
xgettext.exe -d test -L PHP --from-code=utf-8 index.php

第三步:
修改test.po为:

#: ../index.php:8
msgid "Hello!"
msgstr "你好!"

#: ../index.php:9
msgid "World!"
msgstr "世界!"

#: ../index.php:10
msgid "Hello World!"
msgstr "你好,世界!"

第四步:
msgfmt -o zh_CN/test.mo zh_CN/test.po
生成test.mo文件
第五步:
创建locale\zh_CN\LC_MESSAGES目录,将test.mo放入该目录中
第六步:
重启apache,访问index.php即可看到效果
<br><font color="#e78608">------解决方案--------------------</font><br>
编码用utf-8试试 <div class="clear">
                 
              
              
        
            </div>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn