我有整个MVC模型设置并使用
HTML视图作为模板.但我在那里有德语字符串,我想在某些时候翻译成其他语言.
做这个的最好方式是什么?我知道我必须使用Zend_Translate,但是我必须为我的视图模板中的每个单词实现对translate函数的单个调用吗?
首先,我建议使用完整的短语作为翻译的基础.使用单词时,您总是会遇到语句在句子结构方面不一致的问题.
原文链接:https://www.f2er.com/php/132402.html然后你必须选择一个可用的Zend_Transalate适配器:Array,Csv,Gettext,Ini,Tbx,Tmx,Qt,Xliff或XmlTm.其中大多数是适用于存储翻译信息的行业标准的适配器,因此如果您选择Array,Csv或Ini作为开始和易用性,它可能就足够了.请参阅Zend Framework手册中的49.2.1. How to decide which translation adapter to use.
// setup your translation $translate = new Zend_Translate('csv','/my/path/source-de.csv','de'); $translate->addTranslation('/my/path/source-en.csv','en'); // add the translation adapter to the registry Zend_Registry::set('Zend_Translate',$translate);
由于Zend_View_Helper_Translate访问标准化的Zend_Registry条目Zend_Translate作为默认翻译源,因此您可以在视图中使用以下内容:
[...] <title><?PHP echo this->translate('Title'); ?></title> [...] <p>You can also do <?PHP echo $this->translate('Hello %1$s',$this->userName); ?></p> [...]
请注意,这只是Zend_Translate的简短介绍,绝不是该组件提供的功能的完整演示.例如,关于确定翻译适配器将使用的语言环境,有很多要说的.
我建议你阅读Zend Framework手册中的以下内容,因为本地化可能是一个复杂的问题,Zend_Translate在这里无法完全描述:
> 53.4.1.13. Translate Helper
> @L_404_3@