我正在使用CakePHP 1.3,我在使用 i18n 时遇到了一些麻烦。 我的项目中有大约10,000个字符串,这没关系。但是我对一些字符串有很大的问题:
代码中的第一个字符串:
msgid "bla bla bla <span id=\\\"count\\\">%s</span> bla"
* .po文件中的此字符串:
bla bla bla <span id=\"companies-count\">%s</span> bla
在crowdin:
<? __('bla'); ?>
为什么会发生这种情况?我该如何避免这种情况?
第二个字符串未从* .pot文件加载:
<? __('Bla'); ?>
他们的语法都很好。我认为这是因为我有字符串:static_file
,它落入了pot文件而不是小写字母。请帮助,抱歉我的英语不好。
答案 0 :(得分:0)
您要翻译的字符串中不应有任何HTML标记。因此,您希望将<span>
标记放在替换文本中: -
<?= sprintf( __('bla bla bla %s bla', true), '<span id="count">' . $count . '</span>' ); ?>
这会在您的.po文件中显示bla bla bla %s bla
。
你的第二个问题(你真的要问这是一个单独的Stackoverflow问题)就我所知,字符串不区分大小写。
我认为您可以使用__d()
将“域”应用于字符串以区分它(但我不是100%肯定): -
__d('lower', 'bla');