Zend_Translate:如何进行反向翻译

时间:2011-07-30 11:38:36

标签: php zend-framework zend-translate

我的网站是使用Zend框架构建的,默认为英文版。我有一个csv文件,用于将从英语翻译成法语:fr.csv

但是,我的数据库中的数据是英文的。所以我想将用户前端输入从法语翻译成英语,以便与我的数据库进行交互。如何使用Zend_translate进行反向查找,即从法语到英语?或者还有其他方法可以实现这一目标吗?

2 个答案:

答案 0 :(得分:1)

通常您不会将英语翻译成其他语言,而是使用ID(包括英语),即使ID是英语。原因是,ID不应该是完整的句子或短语,而应该是简短而有意义的语句,例如Forbidden(使用英文翻译“您无权访问此资源”或类似内容) 。使用短按键错别字的可能性较小。

如果您想要显示翻译的公式(据我所知,这就是您要做的事情),我建议您在内部使用ID,并将首选/当前翻译显示为标签

<?= $this->translate($id) ?><input type="text" name="<?= $id?>" />

您可以使用Zend_Translate_Adapter::getMessageIds()

获取当前定义的ID
<?php foreach ($adapter->getMessageIds() as $id) : ?>
  <?= $this->translate($id) ?><input type="text" name="<?= $id ?>" />
<?php endforeach; ?>

答案 1 :(得分: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

希望它对某些人有所帮助,但我有一个问题,这是一个很好的想法,有一个大的翻译文件,或者最好为此目的创建一些数组?谢谢,对不起英语不好。