Php 在何处使用Zend Framework翻译工具
我已经设置了整个MVC模型,并使用HTML视图作为模板。但我有德语字符串,我想在某个时候翻译成其他语言Php 在何处使用Zend Framework翻译工具,php,zend-framework,localization,translation,Php,Zend Framework,Localization,Translation,我已经设置了整个MVC模型,并使用HTML视图作为模板。但我有德语字符串,我想在某个时候翻译成其他语言 最好的方法是什么?我知道我必须使用Zend_Translate,但我是否必须对视图模板中的每个单词执行一次对Translate函数的调用?首先,我建议使用完整的短语作为翻译的基础。对于单词,你总是会遇到这样一个问题:当涉及到句子结构时,语言是不一致的 然后您必须选择一个可用的Zend_Translate适配器:Array、Csv、Gettext、Ini、Tbx、Tmx、Qt、Xliff或Xml
最好的方法是什么?我知道我必须使用Zend_Translate,但我是否必须对视图模板中的每个单词执行一次对Translate函数的调用?首先,我建议使用完整的短语作为翻译的基础。对于单词,你总是会遇到这样一个问题:当涉及到句子结构时,语言是不一致的 然后您必须选择一个可用的Zend_Translate适配器:Array、Csv、Gettext、Ini、Tbx、Tmx、Qt、Xliff或XmlTm。它们中的大多数都是用于存储翻译信息的行业标准的适配器,因此,如果您选择Array、Csv或Ini作为开始,并且为了易于使用,可能就足够了。请参阅Zend框架手册中的
// 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\u View\u Helper\u Translate
可以访问标准化的Zend\u注册表
entryZend\u 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
不能在这里完整描述:
不,你不必翻译每一个单词。从这个意义上讲,翻译的理念更多的是一种信息翻译理念 在我当前的项目中,我们做两种类型的翻译。当它只是一个简短的文本时,为了可读性,我们直接在源代码中键入它 即
但如果信息较长,我们通常会按照标准为翻译系统标记:
<?=$this->translate('controller-action_form-information');?>
这样做的目的是,您可以在翻译工具中用一个很长的文本替换它,从而保持视图脚本整洁。谢谢。所以我总是要调用$this->translate()。非常感谢。
<?=$this->translate('controller-action_form-information');?>