Перевод строк с несколькими разделами, нуждающимися в множественном числе - PullRequest
0 голосов
/ 07 сентября 2018

Мы используем компонент Symfony Translation в нашем PHP-приложении. Он способен обрабатывать множественное число очень умным способом , но, насколько я могу судить, он может обрабатывать только одно «количество» на строку.

Например, он может переводить

У меня 3 яблока.

Или

У меня есть 1 апельсин.

Но я не могу найти способ обработки более сложных строк, таких как:

У меня 3 яблока и 1 апельсин.

Теперь очевидное решение состоит в том, чтобы перевести их по отдельности, а затем соединить их вместе, но в моей реальной жизненной ситуации последовательности являются более сложными, чем это, и, согласно нашей немецкой команде, порядок компонентов не всегда может быть гарантированно так же. Придерживаясь моего примера с поддельными яблоками и апельсинами, у нас может быть английская строка:

У меня будет 3 яблока каждое утро и 1 апельсин каждый будний день в течение следующих 2 недель.

Я бы хотел получить строку перевода, например:

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, для этого раздела, если это необходимо, так как оно совершенно автономно.

Есть ли у кого-нибудь опыт в этом деле или есть идеи относительно того, как это осуществить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...