翻译CakePHP最佳实践3.x__函数
Best practice translate CakePHP 3.x __ Function
使用 __('') 函数真的很棒。但我想知道如何翻译带有 link 的整个段落并在其中突出显示。例如:
<p><?= __('Bla bla text in german bla bla ')?> <a href="/user">Account</a> text bla bla <b>bla</b>.</p>
来自 link 的 Appart(我知道我应该使用 Cake HTML Helper,如何使用它?对于不同语言的翻译,围绕这些块进行翻译很糟糕,因为翻译器有时不知道上下文。
这就是我要找的吗? http://book.cakephp.org/3.0/en/orm/behaviors/translate.html 我正在视图中开发 - 所以我没有使用添加等将内容写入数据库。也许这是我的第一个问题?
Context 是 __x()
函数的作用,它将任意上下文字符串作为第一个参数,在使用 I18n [=47= 时将提取为 msgctxt
].这样您就可以向翻译人员提供有关他们正在翻译的内容的正确信息。
对于HTML,嗯,看情况,也有个人喜好。就个人而言,如果它很复杂 HTML,或者当我需要使用代码来生成它时,我通常会将其拆分。如果它只是非常基本的 HTML,或者可能需要在不同语言中以不同方式放置的标签,那么我会在一条消息中保留它。
在你的例子中,我会按照以下方式做一些事情:
<?php
$link = $this->Html->link(
__x('Paragraph XYZ link text', 'Account'),
['controller' => 'Users']
);
?>
<p><?= __x('Paragraph XYZ', 'Bla text in german {0} text bla <b>bla</b>.', $link)?></p>
提取翻译时,最终会像这样
#: Template/Foo/bar.ctp:3
msgctxt "Paragraph XYZ link text"
msgid "Account"
msgstr ""
#: Template/Foo/bar.ctp:7
msgctxt "Paragraph XYZ"
msgid "Bla text in german {0} text bla bla <b>bla</b>."
msgstr ""
如果消息本身已经提供了文本上下文,并且 msgctxt
补充了它的价值,翻译人员应该不会有问题来弄清楚他们正在翻译什么,以及消息是如何相关的。
另见
使用 __('') 函数真的很棒。但我想知道如何翻译带有 link 的整个段落并在其中突出显示。例如:
<p><?= __('Bla bla text in german bla bla ')?> <a href="/user">Account</a> text bla bla <b>bla</b>.</p>
来自 link 的 Appart(我知道我应该使用 Cake HTML Helper,如何使用它?对于不同语言的翻译,围绕这些块进行翻译很糟糕,因为翻译器有时不知道上下文。
这就是我要找的吗? http://book.cakephp.org/3.0/en/orm/behaviors/translate.html 我正在视图中开发 - 所以我没有使用添加等将内容写入数据库。也许这是我的第一个问题?
Context 是 __x()
函数的作用,它将任意上下文字符串作为第一个参数,在使用 I18n [=47= 时将提取为 msgctxt
].这样您就可以向翻译人员提供有关他们正在翻译的内容的正确信息。
对于HTML,嗯,看情况,也有个人喜好。就个人而言,如果它很复杂 HTML,或者当我需要使用代码来生成它时,我通常会将其拆分。如果它只是非常基本的 HTML,或者可能需要在不同语言中以不同方式放置的标签,那么我会在一条消息中保留它。
在你的例子中,我会按照以下方式做一些事情:
<?php
$link = $this->Html->link(
__x('Paragraph XYZ link text', 'Account'),
['controller' => 'Users']
);
?>
<p><?= __x('Paragraph XYZ', 'Bla text in german {0} text bla <b>bla</b>.', $link)?></p>
提取翻译时,最终会像这样
#: Template/Foo/bar.ctp:3
msgctxt "Paragraph XYZ link text"
msgid "Account"
msgstr ""
#: Template/Foo/bar.ctp:7
msgctxt "Paragraph XYZ"
msgid "Bla text in german {0} text bla bla <b>bla</b>."
msgstr ""
如果消息本身已经提供了文本上下文,并且 msgctxt
补充了它的价值,翻译人员应该不会有问题来弄清楚他们正在翻译什么,以及消息是如何相关的。
另见