PHP中的翻译

时间:2013-11-22 09:33:10

标签: php forms translation

我正在为PHP中的表单创建一些翻译,我将所有日语翻译成英语,然后在单独的PHP文件中,我根据特定国家/地区提供所有翻译。

以前我使用PHP Echo进行翻译,如下所示:

<?php echo __('Subject'); ?>

在我的翻译文件中,我会编写例如:

'Subject' => 'ご用件',

我如何向以下内容添加翻译,我认为我的尝试是正确的:

上一个代码:

$body = $applicant['username'].' さま
            <br/><br/>

我的尝试:

$body = $userData['username'].' __('Dear:username', array(':username' => $userData));さま
                    <br/><br/>

2 个答案:

答案 0 :(得分:2)

占位符在该地方看起来是最佳解决方案。

您可以使用“sprintf”轻松实现未命名的占位符,如下所示:

$t = ['Hello, %s!' => 'Hello in Japanese, %s!'];
$result = sprintf($t['Hello, %s!'], $username);

或者您可以使用“strtr”函数对命名占位符执行此操作:

$t = ['Hello, :username!' => 'Hello in Japanese, :username!'];
$result = strtr($t['Hello, %s!'], ['username' => $username]);

PS我非常喜欢Yii-way。看这里:http://www.yiiframework.com/doc/guide/1.1/en/topics.i18n

答案 1 :(得分:0)

非常常见创建__函数允许接收带有var的数组,您可以在以下位置看到标准实现:

https://github.com/oscarotero/Gettext/blob/master/Gettext/translator_functions.php#L4

他使用%作为vsprinf函数的特殊字符。

也许会有趣的重新发明轮子。