Php 如何在gettext.po文件中指定有序变量?
我有一个多语言网站,它使用Zend_Translate PHP数组来处理翻译。它工作得很好,但我正在尝试转换为使用gettext,因为它提供了额外的特性 然而,我还没有发现我在PHP数组翻译中喜欢的功能的gettext等价物:n$position specifier() 我找到了我想要的(注意中英文变量顺序的不同): 但我还没有让它为我工作。我的en/messages.po文件包含以下内容:Php 如何在gettext.po文件中指定有序变量?,php,localization,translation,gettext,printf,Php,Localization,Translation,Gettext,Printf,我有一个多语言网站,它使用Zend_Translate PHP数组来处理翻译。它工作得很好,但我正在尝试转换为使用gettext,因为它提供了额外的特性 然而,我还没有发现我在PHP数组翻译中喜欢的功能的gettext等价物:n$position specifier() 我找到了我想要的(注意中英文变量顺序的不同): 但我还没有让它为我工作。我的en/messages.po文件包含以下内容: #, php-format msgid "Earn X cash" msgstr "%1$sEarn 1
#, php-format
msgid "Earn X cash"
msgstr "%1$sEarn 1-30%% cash back%2$s, get money-saving coupons, and find the best price on every purchase at %3$s2,500+ stores%4$s."
PHP是这样的(它对数组风格的翻译起作用,我认为它不会改变):
我必须如何编辑.po文件才能工作?或者我不应该使用将.po编译成.mo文件吗?在我尝试注释这行php-mo.php之后,我的.po和.mo文件工作正常(我的网页看起来很好):
$x=str\u替换(“$”、“\\$”、$x)代码>
事实上,我不知道为什么会有这条线,但删除它让我感到紧张,因为我可能会引入一些我还没有发现的bug。但至少它解决了我能看到的问题 以下是我发现的一个可能有帮助的提示:
#, php-format
msgid "Earn X cash"
msgstr "%1$sEarn 1-30%% cash back%2$s, get money-saving coupons, and find the best price on every purchase at %3$s2,500+ stores%4$s."
<?php echo $this->translate('Earn X cash', '<span class="earnCashBack">', '</span>', '<a href="/stores" class="numStores">', '</a>'); ?>
$sEarn 1-30% cash back$s, get money-saving coupons, and find the best price on every purchase at $s2,500+ stores$s.