我正在使用Zend Translate来翻译和本地化视图。因此,我使用诸如en.php和fr.php之类的数组转换文件在整个应用程序范围内设置了转换器。现在,例如在index.phtml中:
假设我想将视图的一部分翻译成另一种语言,这可能吗?来自index.phtml的期望结果将是:
在同一视图内。我尝试在Subject1之前添加我的视图文件
<?php $translate = new Zend_Translate('array', APPLICATION_PATH .'/../language/fr.php', 'fr'); ?>
<?php echo $this->translate('Subject1 in English');?>
但是应用程序范围的翻译是无效的。是否可以在一个视图中从一种翻译更改为另一种翻译,我该如何处理?
它比看起来简单。只需使用您的新翻译器进行翻译:
<?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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句