2

我有一个关于 CakePHP 2.5 的 i18n 默认插件的问题。

我知道只需将它们放在__('')符号之间就可以翻译短字符串。

我也知道可以通过将 TranslateBehaviour 添加到模型来翻译所有与模型相关的文本。

当我想在许多不同的页面上翻译较长的文本部分时,问题就开始了。我可以为不同的语言制作不同的视图,但这有点与 MVC 模式相冲突。

假设我们有一个文本要翻译成其他语言:

Lorem ipsum dolor sit amet, consectetur adipiscing elit。Ut sagittis urna augue,一个 eleifend orci ultrices eget。在 iaculis mi mauris,eget luctus leo condimentum 处。Pellentesque 居民 morbi tristique senectus et netus et malesuada 名声 ac turpis egestas。Nulla tristique commodo tortor,非调味品 risus egestas sed。Proin ultricies elit vitae mauris pretium facilisis。Fusce aliquam orci sed neque feugiat 前庭。Etiam dapibus massa vel dui interdum malesuada。Nunc fringilla vulputate tristique。Sed ultrices suscipit erat eget luctus。Quisque non massa ante。Fusce volutpat neque sed rhoncus sollicitudin。Cras porta vulputate neque non congue。

如何打包这么长的文本以使其与 i18n 一起使用?如何在我的代码中保持干净?

4

1 回答 1

4

__()不限于短字符串,如果你想保持它的干净,你也可以在你的视图中使用一个标识符,比如:

<p>
    <?php echo __('long-text'); ?>
</p>

在你的 po 文件中你进行翻译:

//app/Locale/eng/LC_MESSAGES/default.po
msgid "long-text"
msgstr "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut sagittis urna augue, a eleifend orci ultrices eget. In iaculis mi mauris, eget luctus leo condimentum at. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla tristique commodo tortor, non condimentum risus egestas sed. Proin ultricies elit vitae mauris pretium facilisis. Fusce aliquam orci sed neque feugiat vestibulum. Etiam dapibus massa vel dui interdum malesuada. Nunc fringilla vulputate tristique. Sed ultrices suscipit erat eget luctus. Quisque non massa ante. Fusce volutpat neque sed rhoncus sollicitudin. Cras porta vulputate neque non congue."

这将输出长字符串,但您的视图将是干净的。

于 2014-07-16T16:25:27.210 回答