我的网站是用 Zend 框架构建的,默认是英文的。我有一个 csv 文件要从英语翻译成法语:fr.csv
但是,我的数据库中的数据是英文的。所以我想将用户前端输入从法语翻译成英语,以便与我的数据库进行交互。如何使用 Zend_translate 进行反向查找,即从法语到英语?或者有没有其他方法可以实现这一目标?
我的网站是用 Zend 框架构建的,默认是英文的。我有一个 csv 文件要从英语翻译成法语:fr.csv
但是,我的数据库中的数据是英文的。所以我想将用户前端输入从法语翻译成英语,以便与我的数据库进行交互。如何使用 Zend_translate 进行反向查找,即从法语到英语?或者有没有其他方法可以实现这一目标?
通常您不会从英语翻译成另一种语言,而是从 ID(包括英语)翻译,即使 ID 是英文的。原因是,ID 不应该是完整的句子或短语,而应该是简短而有意义的陈述,例如Forbidden
(带有英文翻译“You don't have access to this resource”或类似的东西)。使用短键拼写错误的可能性较小。
如果您想显示翻译公式(据我所知,这是您正在尝试做的),我建议仅在内部使用 ID 并将首选/当前翻译显示为标签
<?= $this->translate($id) ?><input type="text" name="<?= $id?>" />
您可以通过以下方式获取当前定义的 IDZend_Translate_Adapter::getMessageIds()
<?php foreach ($adapter->getMessageIds() as $id) : ?>
<?= $this->translate($id) ?><input type="text" name="<?= $id ?>" />
<?php endforeach; ?>
您可以使用该方法访问源数据,然后在他中搜索您需要的内容并进行反向翻译,从消息到 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
希望它对某些人有所帮助,但我有一个问题,使用大翻译文件是个好主意,还是为此目的创建一些数组更好?感谢和抱歉英语不好。