Symfony2 тег transchoice - PullRequest
       9

Symfony2 тег transchoice

6 голосов
/ 28 февраля 2012

Я добавил услугу переводчика для моего проекта Symfony2. Я использую его как в контроллерах, так и в шаблонах twig . Он настроен нормально, и все теги {% trans %} работают так, как они хотят. Но в некоторых случаях мне нужно использовать тег {% transchoice %}, и он не получает перевод. Вот пример из моего кода.

{% transchoice post['comments']['count'] %}
    {0} Comments| {1} Comment| ]1,Inf] Comments
{% endtranschoice %}

Также попытался написать это в одну строку.

Я получил правильный выбор для количества комментариев, но само слово не переведено. Как переводчик не может найти соответствующий перевод. В messages.de.yml у меня есть

Comment: "Kommentar"
Comments: "Kommentare"

Что-то не так с моим синтаксисом transchoice? Может быть, мне нужно где-то разместить пробелы или что-то в этом роде?

1 Ответ

11 голосов
/ 28 февраля 2012

В вашем файле перевода вы должны написать это:

{0} Comments| {1} Comment| ]1,Inf] Comments: "{0} Kommentare| {1} Kommentar| ]1,Inf] Kommentare"

UPDATE: Пример xliff, который работает для меня:

        <trans-unit id="search.results.summary">
            <source>search.results.summary</source>
            <target>{0}Pas d'annotations trouvée pour "%search_text%"|{1}Une annotation trouvée pour "%search_text%"|]1,Inf]%search_count% annotations trouvées pour "%search_text%"</target>
        </trans-unit>

Как я использую это:

<h2>{{ 'search.results.summary' | transchoice(search_count, {
'%search_text%': search_text,
'%search_count%': search_count}) }}</h2>

Как видите, я не использую сложные обозначения в качестве источника для моего перевода, поскольку он довольно бесполезен и сделает шаблон менее читабельным. Вместо этого я поместил разделенную точкой строку, представляющую семантическое значение моей строки.

В вашем случае, я думаю, правильная вещь будет выглядеть примерно так:

comment.summary: "{0} Kommentare|{1} Kommentar|]1,Inf] Kommentare"

и

{% transchoice post['comments']['count'] %}
    'comment.summary'
{% endtranschoice %}

Удачи.

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