我需要帮助php中的翻译代码。我的网站是英文和马来文。所以我必须在每个页面准备翻译代码。像这样
<?php __('Business/Company Registration No :');?>
它起作用了。所以生成要在default.po中翻译的页面如下。所以第二行是翻译后的单词。
msgid "Business/Company Registration No "
msgstr "Nombor Pendaftaran Perniagaan/Syarikat"
这是我在数组中的代码。所以我需要把代码
<?php __('WORD')?>
在这里,
$salutation = array(
'Mr'=>'Mr',
'Mrs'=>'Mrs',
'Ms'=>'Ms');
如果我输入翻译代码,如下所示
$salutation = array(
'Mr'=>__('Mr'),
'Mrs'=>__('Mrs'),
'Ms'=>__('Ms');
选择列表在页面中不起作用,如果有人可以提供帮助?应该在哪里放置翻译代码?
答案 0 :(得分:2)
问题是你的__
函数回应了字符串而不是返回它。
这是一个解决方法
function ___($key){ //Note, 3 underscores
ob_start(); //Start output buffering. Every echo will be 'trapped' and saved to the buffer
__($key); //This echoes the translation to the buffer
return ob_get_clean(); //Returns the 'trapped' echoes from the buffer
}
因此,您应该在数组中使用新的___
函数(3个下划线):
$salutation = array(
'Mr'=>___('Mr'), //Note, there are 3 underscores
'Mrs'=>___('Mrs'),
'Ms'=>___('Ms');
);
我们所做的是创建一个___
(3个下划线)函数,它返回转换而不是回显它(如__
那样),因此您可以在数组中或任何地方使用它。 / p>
希望这有帮助。干杯
答案 1 :(得分:2)
我遇到了这个问题,我发现解决方案是在函数中包装数组,然后在关闭函数之前写:
return apply_filters(function, array);