i18n cakephp 1.3 国际化
i18n cakephp 1.3 internatialization
我正在使用 CakePHP 1.3,但在使用 i18n 时遇到了一些问题。
我的项目中大约有 10,000 个字符串,这没关系。但是我在某些字符串上遇到了很大的问题:
代码中的第一个字符串:
<?= sprintf( __('bla bla bla <span id="count">%s</span> bla', true), $count ); ?>
*.po 文件中的这个字符串:
msgid "bla bla bla <span id=\\"count\\">%s</span> bla"
人群中:
bla bla bla <span id=\"companies-count\">%s</span> bla
为什么会发生这种情况,我该如何避免这种情况?
第二个字符串未从 *.pot 文件加载:
<? __('bla'); ?>
语法没问题。我认为这是因为我有字符串:<? __('Bla'); ?>
,它属于 pot 文件而不是小写兄弟。请帮忙,抱歉我的英语不好。
您要翻译的字符串中不应有任何 HTML 标记。所以你想把你的 <span>
标签放在替换文本中:-
<?= sprintf( __('bla bla bla %s bla', true), '<span id="count">' . $count . '</span>' ); ?>
这会在您的 .po 文件中给您 bla bla bla %s bla
。
你的第二个问题(你真的应该把它作为一个单独的 Whosebug 问题来问)据我所知,字符串不区分大小写。
我认为你可以使用 __d()
对字符串应用 'domain' 来区分它(但我不是 100% 确定):-
__d('lower', 'bla');
我正在使用 CakePHP 1.3,但在使用 i18n 时遇到了一些问题。 我的项目中大约有 10,000 个字符串,这没关系。但是我在某些字符串上遇到了很大的问题:
代码中的第一个字符串:
<?= sprintf( __('bla bla bla <span id="count">%s</span> bla', true), $count ); ?>
*.po 文件中的这个字符串:
msgid "bla bla bla <span id=\\"count\\">%s</span> bla"
人群中:
bla bla bla <span id=\"companies-count\">%s</span> bla
为什么会发生这种情况,我该如何避免这种情况?
第二个字符串未从 *.pot 文件加载:
<? __('bla'); ?>
语法没问题。我认为这是因为我有字符串:<? __('Bla'); ?>
,它属于 pot 文件而不是小写兄弟。请帮忙,抱歉我的英语不好。
您要翻译的字符串中不应有任何 HTML 标记。所以你想把你的 <span>
标签放在替换文本中:-
<?= sprintf( __('bla bla bla %s bla', true), '<span id="count">' . $count . '</span>' ); ?>
这会在您的 .po 文件中给您 bla bla bla %s bla
。
你的第二个问题(你真的应该把它作为一个单独的 Whosebug 问题来问)据我所知,字符串不区分大小写。
我认为你可以使用 __d()
对字符串应用 'domain' 来区分它(但我不是 100% 确定):-
__d('lower', 'bla');