我们正在PHP应用程序中使用Symfony Translation组件。它可以处理pluralisation in a very clever way,但是据我所知,每个字符串只能处理一个“数量”。
例如,它可以翻译
我有3个苹果。
或
我有1个橘子。
但是我无法找到一种方法来处理更复杂的字符串,例如:
我有3个苹果和1个橙子。
现在,显而易见的解决方案是将它们分别翻译然后再连接在一起,但是在我的现实生活中,字符串比这更复杂,根据我们的德国团队,不能总是保证组件的顺序是相同。坚持以我的假苹果和橙子为例,我们可以使用英文字符串:
在接下来的2周中,我每天早上有3个苹果,每个工作日下午有1个橙子。
我想要一个翻译字符串,例如:
I'll have {{1 apple|%count_apples% apples}} each morning and {{1 orange|%count_oranges% oranges}} each weekday afternoon for the next {{1 week|%count_weeks% weeks}}.
我们需要考虑另一种语言,只有在使用以下语句时,句子的结构才可能起作用:
在接下来的2周中,我每天早上有3个苹果,每个工作日下午有1个橙子。
For the next {{1 week|%count_weeks% weeks}}, I'll have {{1 apple|%count_apples% apples}} each morning and {{1 orange|%count_oranges% oranges}} each weekday afternoon.
更复杂的是,“和”一词可能会根据数量之一是否为复数而改变。现在,我们只对英语和德语感到困扰,但在中期将来会需要其他语言,因此甚至不单数和复数。
如果需要,我们愿意在本节中使用除Symfony Translation组件之外的其他组件,因为它是完全独立的。
有人在此方面有过任何经验吗,或者关于如何实现这一点的想法?