我的网站是使用Zend框架构建的,默认为英文版。我有一个csv文件,用于将从英语翻译成法语:fr.csv
但是,我的数据库中的数据是英文的。所以我想将用户前端输入从法语翻译成英语,以便与我的数据库进行交互。如何使用Zend_translate进行反向查找,即从法语到英语?或者还有其他方法可以实现这一目标吗?
答案 0 :(得分:1)
通常您不会将英语翻译成其他语言,而是使用ID(包括英语),即使ID是英语。原因是,ID不应该是完整的句子或短语,而应该是简短而有意义的语句,例如Forbidden
(使用英文翻译“您无权访问此资源”或类似内容) 。使用短按键错别字的可能性较小。
如果您想要显示翻译的公式(据我所知,这就是您要做的事情),我建议您在内部使用ID,并将首选/当前翻译显示为标签
<?= $this->translate($id) ?><input type="text" name="<?= $id?>" />
您可以使用Zend_Translate_Adapter::getMessageIds()
<?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
希望它对某些人有所帮助,但我有一个问题,这是一个很好的想法,有一个大的翻译文件,或者最好为此目的创建一些数组?谢谢,对不起英语不好。