你什么时候在Symfony2中使用'Real'翻译消息?

时间:2013-09-02 09:47:38

标签: symfony translation

Symfony文档说:

  

使用真实或关键字消息此示例说明了这两个消息   创建要翻译的消息时的不同理念:

$translated = $translator->trans('Symfony2 is great');

$translated = $translator->trans('symfony2.great');
     

< snip>

     

选择使用哪种方法完全取决于您,但通常建议采用“关键字”格式。

那么你何时会使用'真实'消息?

4 个答案:

答案 0 :(得分:3)

你真的必须自己决定。这有点像品味,有点是你的翻译工作流程。

当您不希望维护额外的翻译文件(对于源语言)的开销时,真实消息是好的。此外,如果您忘记翻译某些消息,您仍会在源语言中看到有效消息。从原始邮件而不是关键字进行翻译也更容易一些。

当消息经常更改时,关键字会更好,特别是对于长文本。您从实际文本中抽象出消息的目的。

编辑:还有一个场景,当你可以说真正的消息比键更好 - 当你的网站只支持一种语言但有多种变体时 - 比如en_GB,en_US。大多数消息都是相同的,只有少数消息会有所不同。因此,大多数消息可以保留原样,并且只有GB和US之间实际不同的消息放入翻译文件中。与使用密钥的方法相比,这需要更少的工作(当然,假设您的消息不经常更改)。

答案 1 :(得分:1)

我可以提出的真实格式的一个用例是当用户通过用户界面创建消息时 - 强迫他们为他们想要翻译的每个短语提供关键字是愚蠢的。

我还没有这样的需求,所以我总是使用关键字格式。

答案 2 :(得分:0)

真实的消息没有太大的兴趣。 IMO你可以使用它们,如果你确定你的应用程序将始终是单语言,你想要开发几分钟。

关键字trans有兴趣,如果您必须翻译您的网站,您将立即看到是否缺少翻译。 为方便翻译,我个人使用JMSTranslationBundle

答案 3 :(得分:0)

在大多数情况下,我同意@Jakub Zalas'的回答,但是,最后一行有点偏。

当消息可能发生变化时,关键字会更好 - 而不仅仅是在经常更改时。这也概述了in the docs themselves

  

第二种方法很方便,因为如果您确定消息实际上应该在默认语言环境中读取“Symfony2真的很棒”,则不需要在每个翻译文件中更改消息键。

如果邮件发生更改且您没有使用密钥,但邮件仍为密钥,则 使用此邮件更改任何代码以反映该更改。更多改变的地方是更多潜在的错误。我们有能力通过使用消息密钥来构建杠杆。