Zend framework 可以翻译部分视图吗?
我正在使用Zend Translate来翻译和本地化视图。因此,我使用数组translationfile(如en.php和fr.php)在应用程序范围内设置translator。 现在我在index.phtml中有一个例子:Zend framework 可以翻译部分视图吗?,zend-framework,translation,Zend Framework,Translation,我正在使用Zend Translate来翻译和本地化视图。因此,我使用数组translationfile(如en.php和fr.php)在应用程序范围内设置translator。 现在我在index.phtml中有一个例子: 英文标题 英语第1科目 英语第二科目 如果我想将视图的一部分翻译成另一种语言,这可能吗?index.phtml的预期结果是: 英文标题 Sujet1法语版 英语第二科目 在同一视图中。 我尝试在Subject1之前添加我的viewfile <?php $tra
- 英文标题
- 英语第1科目
- 英语第二科目
- 英文标题
- Sujet1法语版
- 英语第二科目
<?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
//这将使用标准语言
//这将是一种新的语言
$this->translate()->setTranslator($old)//还原原始翻译器
//这将再次使用原始语言
它比看起来更简单。只需使用新的翻译器进行翻译:
<?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
//这将使用标准语言
//这将是一种新的语言
$this->translate()->setTranslator($old)//还原原始翻译器
//这将再次使用原始语言
它比看起来更简单。只需使用新的翻译器进行翻译:
<?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
//这将使用标准语言
//这将是一种新的语言
$this->translate()->setTranslator($old)//还原原始翻译器
//这将再次使用原始语言
它比看起来更简单。只需使用新的翻译器进行翻译:
<?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
//这将使用标准语言
//这将是一种新的语言
$this->translate()->setTranslator($old)//还原原始翻译器
//这将再次使用原始语言
就这么简单。这很好用,谢谢你的帮助!就这么简单。这很好用,谢谢你的帮助!就这么简单。这很好用,谢谢你的帮助!就这么简单。这很好用,谢谢你的帮助!