我有整个MVC模型设置并使用HTML视图作为模板.但我在那里有德语字符串,我想在某些时候翻译成其他语言.
做这个的最好方式是什么?我知道我必须使用Zend_Translate,但是我必须为我的视图模板中的每个单词实现对translate函数的单个调用吗?
首先,我建议使用完整的短语作为翻译的基础.使用单词时,您总是会遇到语句在句子结构方面不一致的问题.
然后你必须选择一个可用的Zend_Transalate适配器:Array,Csv,Gettext,Ini,Tbx,Tmx,Qt,Xliff或XmlTm.其中大多数是适用于存储翻译信息的行业标准的适配器,因此如果您选择Array,Csv或Ini作为开始和易用性,它可能就足够了.请参见49.2.1.如何确定 Zend Framework手册中使用的转换适配器.
// 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
作为默认翻译源,您可以在视图中使用以下内容:
[...]translate('Title'); ?> [...]You can also do translate('Hello %1$s', $this->userName); ?>
[...]
请注意,这只是Zend_Translate
对该组件提供的功能的完整介绍,但并非完整介绍.例如,关于确定翻译适配器将使用的语言环境,有很多要说的.
我建议您阅读Zend Framework手册中的以下内容,因为本地化可能是一个复杂的问题,Zend_Translate
在此不能完全描述:
53.4.1.13.翻译助手
第49章.Zend_Translate