2015-07-20 113 views
1

我们使用稍后填充的占位符生成翻译文件,但在修改上述单词的语言中存在单词问题。是否可以修改Twig中占位符前的单词?

例如,我们已经写它看起来像这样的翻译模板:

because of %name%, you..... 

这是问题,因为在法语中,“的”翻译不同,如果%名称%以元音或没有开始。

举例来说,如果这个人是刘德华,应该是:

d' Andy 

而对于史蒂夫那就是:

de Steve 

什么是处理这种情况下,最好的方法是什么?

我可以看到类似的问题已被解决有关英文不定冠词(a vs an)here,但我想知道是否有一个更聪明的方法来做到这一点,而不是针对我们遇到的每种情况的自定义过滤器(我们使用多种语言,并且我怀疑当我们扩展我们的语言时会出现其他类似的问题)。

(我也努力让一个完全不同的翻译这将是理想!)

+0

在您的树枝模板中添加一个if控件,并检查[名称是否以元音开始](http://stackoverflow.com/questions/15600626/begins-with-in-twig-template) –

+0

您还将拥有删除撇号和名称之间的空格 – AntoineWDG

+0

此外,尽管您的解决方案在技术上有效,但我试图避免的情况是,如果名称以元音开头&&法语做X,如果名称以A和西班牙语开头,做Y等等等等。 – edhgoose

回答

0

的答案,你在延长翻译类本身寻求谎言。

This question显示了如何使用添加此功能所需的类似方式来完成扩展翻译程序。您可以简单地使用翻译后缀的想法将正确的翻译添加到您的翻译目录中,然后在trans()函数中建立逻辑以查看语言环境和翻译id(正在翻译的字符串),以便添加正确的后缀并到达正确的翻译。