2

次のキーを翻訳していますactivity.fr.yml

user.list.link: '{1}et %count% autre|]1,Inf[voir les %count% autres'

tranchoiceを使用する

<a href="{{ moreLink }}" >{% transchoice count from "activity" %}user.list.link{% endtranschoice %}</a>

次のエラーが発生します

An exception has been thrown during the rendering of a template ("Unable to choose a translation.")

翻訳が見つかったと思います。そうでなければ、翻訳を選択できないというエラーは発生しませんが、キー自体はエラーになりません。

また、同じyamlの他のすべてのキーは、他のtranchoiceでも十分に翻訳されています。

ドキュメントに従って、追加しようとしwith {'%count%': count}ましたが成功しませんでした。

誰かがここで何が悪いのかについて考えを持っていますか?前もって感謝します

4

2 に答える 2

6

構文は問題ありませんでしたが、複数形の文字列に {0} 定義がなかったため、%count% として渡す値を負にすることも 0 にすることもできませんでした。そのため、値が >= 0 であることを確認するテストを行い、このように文字列を変更して修正しました。

user.list.link: '{0}|{1}et %count% autre|]1,Inf[voir les %count% autres'
于 2012-06-13T16:03:30.967 に答える
2

選択される翻訳を決定するために使用されるパラメーターを渡す必要があります。

ドキュメントにある次の例を見てください。

{% transchoice count with {'%name%': 'Fabien'} from "app" %}
    {0} There is no apples|{1} There is one apple|]1,Inf] There are %count% apples
{% endtranschoice %}

あなたの例に適応:

{% transchoice count with {'%count%': count} from "activity" %}
    user.list.link
{% endtranschoice %}

うまくいかない場合は、翻訳が見つからない可能性があります。そのため、symfony はキーをフォールバックとして使用し、キーがこれをサポートしていないため、有効な選択を決定できません。

これを確認するには、次のようなキーを使用してみてください。

user.list.link | user.list.link.many

アクティビティ カタログで同じキーを使用することを忘れないでください。

于 2012-06-05T06:58:16.747 に答える