2010-12-31 15 views
0

symfonyフレームワークi18nで同音異義語を明確にするにはどうすればよいですか?PHP symfony i18n曖昧さ回避

異なる英語の単語が異なる意味で使用されている場合、異なる点で異なる単語に翻訳する必要があります。 「フリービール」のように「フリー」、「フリースピーチ」と同じように、別の言語で別の言葉に翻訳する必要があります。 Wordpressのようなほとんどのスクリプトは、このために文脈を使います。

セクション名を含むIDを使用することを検討しています。とにかくIDを使うのが正しい方法だと思います。しかし、私はSymfony i18nが__('ui:generic:yes','Yes')のようなID +デフォルトの使用をサポートしていないと思います。だから私は必要なIDを含む英語の辞書を追加することを検討しています。

これを行うには、(正式にまたは広く認められている)より適切な方法のアイデアはありますか? Symfony i18n曖昧さ回避/デフォルト/コンテキストのベストプラクティス、サンプル、リファレンス

答えて

0

私のアプリでは非常によく似た方法を使用しています。このような翻訳キーを使用します:homepage_main_title。 英語の辞書を使用しています。この方法では、英語でサイトをブラウズしていても翻訳されていないテキストを見つけることができます。

+0

ありがとうございます。 Symfony i18nがWordpressのようなパラメータを通して文脈をサポートしているかどうか知っていますか? ( 'comment'、 'noun')のような2つのパラメータを使用していますか?これは翻訳者とのやりとりのための良い方法でもあり、言葉の翻訳が簡単になります。 – SuperDuck

+0

私はコンテクストがアプリのどこにあるかによって異なると考えています。「article」モジュールのテンプレートにある場合、このモジュールのi18nファイルは他のi18nファイルより優先されます。しかし、私はあなたが手動で特定のコンテキストを指定することはできないと思うので、私は翻訳キーに入れています。 – greg0ire

0

Symfonyでこれを行う適切な方法は、カタログを使用することです。

<?php 
    echo __('your message',array(),'catalogname'); 
?> 
+0

ありがとう、私はそれを確認します。 – SuperDuck