Zend framework 可以翻译部分视图吗?

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

我正在使用Zend Translate来翻译和本地化视图。因此,我使用数组translationfile(如en.php和fr.php)在应用程序范围内设置translator。 现在我在index.phtml中有一个例子:

  • 英文标题
  • 英语第1科目
  • 英语第二科目
如果我想将视图的一部分翻译成另一种语言,这可能吗?index.phtml的预期结果是:

  • 英文标题
  • Sujet1法语版
  • 英语第二科目
在同一视图中。 我尝试在Subject1之前添加我的viewfile

<?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)//还原原始翻译器
//这将再次使用原始语言

就这么简单。这很好用,谢谢你的帮助!就这么简单。这很好用,谢谢你的帮助!就这么简单。这很好用,谢谢你的帮助!就这么简单。这很好用,谢谢你的帮助!