0

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

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

4

2 回答 2

1

通常您不会从英语翻译成另一种语言,而是从 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; ?>
于 2011-07-30T12:03:10.403 回答
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

希望它对某些人有所帮助,但我有一个问题,使用大翻译文件是个好主意,还是为此目的创建一些数组更好?感谢和抱歉英语不好。

于 2013-08-21T20:25:38.260 回答