PHP Symfony i18n消歧

时间:2010-12-31 03:15:48

标签: php localization symfony1

我们如何消除Symfony框架中的同音异义词i18n?

当我们使用相同的英语单词用于不同的含义时,它应该被翻译成不同点的不同单词。像“免费啤酒”和“言论自由”中的“免费”一样,需要翻译成另一种语言的不同词语。像Wordpress这样的大多数脚本都使用了上下文。

我正在考虑使用一些包含部分名称的ID。我认为使用ID是i18n的正确方法。但是我认为Symfony i18n不支持使用ID +默认值,例如__('ui:generic:yes','Yes')。所以我正在考虑为英语添加字典,包括我需要的ID。

任何想法以更合适的方式(正式或广泛接受)来做到这一点?任何最佳实践,样本,参考Symfony i18n消歧/默认/上下文?

2 个答案:

答案 0 :(得分:0)

我在我的应用中使用了一种非常相似的方式:我使用这样的翻译键:homepage_main_title。 我使用英语词典:这样,即使我用英语浏览网站,我也可以发现未翻译的文本。

答案 1 :(得分:0)

使用Symfony执行此操作的正确方法是使用目录。

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