PHP,I18n和gettext无法正常工作?

时间:2010-08-19 13:33:48

标签: php internationalization gettext

我目前正在国际化一个现有的PHP项目,并认为最简单的方法是通过集成I18n + gettext。

目前我有一个I18n.php:

<?php
setlocale(LC_ALL, 'de_DE.UTF-8');
bindtextdomain('cms', './locale');  
textdomain('cms');
?>

每个需要翻译的文件都包含哪些内容。

示例:login.inc.php:

include_once("i18n.php");
...
<tr>
                    <td width='40%' align='right'>"._('User Name').":</td>
                    <td width='60%'><input name='USERNAME' type='text' class='login_txt'></td>
                  </tr>
                  <tr>
                    <td align='right'>"._('Password').":</td>
                    <td><input name='PASSWORD' class='login_txt' type='password'></td>
                  </tr>
...

它有用,但我有一个奇怪的问题。它只翻译为我加载此页面的10次中的2次(2x“Benutzername”,8x“User Name”)。有谁知道什么可能导致这个问题?我试图弄清楚它已经持续了一个小时但仍然没有线索。

因为我已经在这里写了:有没有人知道更好的方法来实现现有PHP项目的国际化?

谢谢!

1 个答案:

答案 0 :(得分:1)

是的,还有更好的方法。请参阅ResourceBundle课程,以及intl扩展程序。