PHP Symfony i18n消歧

PHP Symfony i18n消歧,php,localization,symfony1,Php,Localization,Symfony1,如何消除Symfony框架i18n中同音词的歧义 当我们用同一个英语单词表达不同的意思时,它应该在不同的地方被翻译成不同的单词。就像“免费啤酒”和“言论自由”中的“自由”,需要翻译成另一种语言中的不同单词。大多数像Wordpress这样的脚本都使用上下文 我正在考虑使用一些包含节名的ID。无论如何,我认为使用IDs是i18n的正确方法。然而,我认为symfonyi18n不支持使用ID+默认值,比如uu'ui:generic:yes'、'yes'。所以我正在考虑添加一本英语词典,包括我需要的ID

如何消除Symfony框架i18n中同音词的歧义

当我们用同一个英语单词表达不同的意思时,它应该在不同的地方被翻译成不同的单词。就像“免费啤酒”和“言论自由”中的“自由”,需要翻译成另一种语言中的不同单词。大多数像Wordpress这样的脚本都使用上下文

我正在考虑使用一些包含节名的ID。无论如何,我认为使用IDs是i18n的正确方法。然而,我认为symfonyi18n不支持使用ID+默认值,比如uu'ui:generic:yes'、'yes'。所以我正在考虑添加一本英语词典,包括我需要的ID


有什么想法可以用一种官方或广泛接受的更合适的方式来实现这一点?Symfony i18n消歧/默认值/上下文的任何最佳实践、示例和参考?

我在应用程序中使用的方式非常相似:我使用的翻译键如下:主页\主标题。
我使用英语词典:这样,即使我用英语浏览网站,我也可以发现未翻译的文本。

使用Symfony的正确方法是使用目录

<?php
  echo __('your message',array(),'catalogname');
?>

谢谢你,格雷格。你知道Symfony i18n是否通过Wordpress这样的参数支持上下文,例如使用“comment”和“noon”这样的两个参数?这也是一种与翻译人员合作的好方法,使他们更容易翻译一个单词。我认为上下文的处理取决于你在应用程序中的位置:如果你在“文章”模块的模板中,此模块的i18n文件将优先于其他i18n文件。但是我不认为您可以手动指定给定的上下文,这就是为什么我将它放在翻译键中。