2011-07-30 15 views
0

私のサイトはZendフレームワークで構築されており、デフォルトは英語です。私はを英語からフランス語に翻訳するcsvファイルを持っています:fr.csvZend_Translate:revserseの翻訳方法

ただし、私のdbのデータは英語です。だから私は、私のdbとやりとりするために、フランス語から英語へのユーザーのフロントエンドの入力を翻訳したいと思っています。 Zend_translateを使用して逆引き検索を行うにはどうすればいいですか?フランス語から英語?あるいは、これを達成する他の方法はありますか?

答えて

1

通常、英語から別の言語には翻訳されませんが、IDが英語であってもID(英語を含む)から翻訳されます。その理由は、IDは完全な文章またはフレーズではなく、Forbidden(英語の「あなたはこのリソースへのアクセス権がありません」などのような)のような短い意味のある文であってはならないからです。短いキーの入力ミスではありません。

あなたは(私の知る限りそれはあなたがやろうとしているものである見ることができるように)翻訳のformularを表示したい場合は、私は内部的にだけでIDをお勧めしますし、ラベル

<?= $this->translate($id) ?><input type="text" name="<?= $id?>" /> 
として現在/優先翻訳を表示

あなたは、あなたがメッセージからIDに、翻訳したアクセス元データのための方法を使用して、彼に検索した後、あなたが必要なものとは逆をやってできZend_Translate_Adapter::getMessageIds()

<?php foreach ($adapter->getMessageIds() as $id) : ?> 
    <?= $this->translate($id) ?><input type="text" name="<?= $id ?>" /> 
<?php endforeach; ?> 
0

で現在定義されているIDを取得することができます。

// returns all the complete translation data 
$source = $this->translate->getMessages(); 

$trnslt_id = array_search($qc, $source); 

結果:

print_r($source); 
/* [VETERINARY] => Veterinaria 
[VIDEOGAMES] => Videogiochi 
[VISUALBASIC] => Visual Basic 
[VITICULTURE] => Viticoltura 
[WEBDESIGN] => Web design */ 

echo $trnslt_id; 
// WEBDESIGN 

リソース:http://framework.zend.com/manual/1.12/en/zend.translate.additional.html

が、それはいくつかのいずれかを助けるのご希望が、私は一つの質問を持っているが、それは大きな翻訳ファイルと良いでしょう、またはそれが作成勧めしますこの目的のためにいくつかの配列?ありがとう、悪い英語を申し訳ありません。