i18n cakephp 1.3 internatialization

时间:2015-05-19 15:04:53

标签: cakephp internationalization cakephp-1.3

我正在使用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文件而不是小写字母。请帮助,抱歉我的英语不好。

1 个答案:

答案 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');