我正在使用Zend Translate翻译和本地化视图。因此,我使用像en.php和fr.php这样的数组翻译文件来设置翻译器应用范围。 现在我有例如index.phtml:
如果我想要用另一种语言翻译视图的一部分,这可能吗? index.phtml的期望结果是:
在同一视图中。 我尝试在Subject1
之前添加我的viewfile<?php $translate = new Zend_Translate('array', APPLICATION_PATH .'/../language/fr.php', 'fr'); ?>
<?php echo $this->translate('Subject1 in English');?>
但是应用程序范围的翻译否决了。是否有可能在一个视图中从一个翻译改为另一个翻译,我该怎么做?
答案 0 :(得分:3)
它看起来比它简单。只需翻译使用您的新翻译:
<?php $translate = new Zend_Translate('array', APPLICATION_PATH .'/../language/fr.php', 'fr'); ?>
<?php echo $this->translate('SUBJECT1');?>//this will be in English
<?php echo $translate->translate('SUBJECT1');?>//this will be in French
<?php echo $translate->_('SUBJECT1');?>//same as above, just shorter
您还可以尝试一些更永久的解决方案,也不需要您更改标准的翻译方式:
<?= $this->translate('SUBJECT');?> //this will be in standard language
<?php
$old = $this->translate()->getTranslator(); //save current translator
$this->translate()->setTranslator($newTranslator); //set new translator
?>
<?= $this->translate('SUBJECT');?> //this will be in new language
$this->translate()->setTranslator($old); //restore original translator
<?= $this->translate('SUBJECT');?> //this again will be in original language