CakePhp i18n翻译单词在.po文件中排序

时间:2015-05-12 03:59:11

标签: php cakephp internationalization cakephp-2.5

目前在视图中我有这个:

<span style="color: #2363a2;"><?php echo __('Accèdez à tous les %spronostics%s d\'%s', '<span style="font-weight: bold; text-transform: uppercase">', '</span>', AppController::getSiteName()); ?></span>

在我的.po文件中,我有这个:

msgid "Accèdez à tous les %spronostics%s d'%s"
msgstr "Reach all the %s %spicks%s"

我得到的翻译(从法语 - msgid到英语 - msgstr - )是错误的。

msgstr中的第一个%s值应该是msgid中的第3个%s值。 我做了一些关于i18n for cakephp的研究,但我没有发现与我的问题有关。

您知道如何设置订单吗?翻译的%s?

感谢。

1 个答案:

答案 0 :(得分:1)

过去将替换参数作为多个函数参数传递时,我遇到了问题。使用数组往往更可靠: -

__(
    'Accèdez à tous les %spronostics%s d\'%s', 
    [
        '<span style="font-weight: bold; text-transform: uppercase">', 
        '</span>', 
        AppController::getSiteName()
    ]
)

<强>更新

您需要在翻译后的字符串中指定正确的顺序,如下所示: -

msgid "Accèdez à tous les %spronostics%s d'%s"
msgstr "Reach all the %3$s %1$spicks%2$s"

使用%3$s告诉Cake使用哪个参数,整数代表原始排序。