现在的位置: 首页 > 综合 > 正文

Zend Framework国际化

2018年05月19日 ⁄ 综合 ⁄ 共 1954字 ⁄ 字号 评论关闭

 

Zend Framework国际化用到的是Zend_Translate组建

 

一、用数据的形式来国际化

建立一个ZF的项目中application中建立languages的文件夹,在文件夹中添加en.php和zh_cn.php文件

en.php中的文件内容如下:

<?php 

return array(
'showList'=>'DataListShow',
'addData'=>'addData',
'serial_number'=> 'NO.',
'title'  => 'Title',
'content'  => 'content',
'opt'  => 'operate',


'get_lg'  => 'zh_CN',
'language'  => '简体中文',

);

?>

 

zh_cn.php中文件的内容如下:

 

<?php 

return array(

'showList'=>'数据列表显示',
'addData'=>'增加数据',
'serial_number'=>'编号',
'title'=>'标题',
'content'=>'内容',
'opt'=>'操作',

'get_lg'=>'en_US',
'language'=>'English',

);

?>

在pulibc下的index.php文件中添加代码:

//设置自动加载
require_once 'Zend/Loader/Autoloader.php';
$loader = Zend_Loader_Autoloader::getInstance();
$loader->setFallbackAutoloader(true);
//国家化
$translate = new Zend_Translate('array',APPLICATION_PATH.'/languages/zh_cn.php','zh_ch');
print '中文的:';
print $translate->_('hello_world');
print_r('<br/>');
$translate->addTranslation(APPLICATION_PATH.'/languages/en.php','en');
$translate->setLocale('en');
print '英文的国际化:';
print $translate->_('hello_world');
print_r('<br/>');

$application->bootstrap()
            ->run();

 

就可以看到国际的实例了

 

 


 

二、gettext来实现国际化

你可以在zf的项目中的index.php文件中添加如下代码

//设置自动加载
require_once 'Zend/Loader/Autoloader.php';
$loader = Zend_Loader_Autoloader::getInstance();
$loader->setFallbackAutoloader(true);

$translate = new Zend_Translate('gettext',APPLICATION_PATH.'/languages/gettext','zh_CN',
                                array('scan'=>Zend_Translate::LOCALE_DIRECTORY));
$translate->setLocale('auto');
print $translate->_('hello_world');
Zend_Registry::set('zendTranslate',$translate);

 

在IndexController.php控制器重的indexAction中添加如下代码:

$zendTranslate = Zend_Registry::get('zendTranslate');
echo $zendTranslate->_('hello_world').'<br/>';
echo $zendTranslate->_('myName').'<br/>';
echo $zendTranslate->_('php').'<br/>';

 

在项目中的添加文件路劲与index.php中的路径对应如下:

languages

    gettext

        zh_CN.mo

 

这个zh_CN.mo的文件生成可以看哈子我写的这篇文章:

http://blog.csdn.net/ycb1689/article/details/7575005

随便生成一个po的文件之后,将名字修改为zh_CN即可.

然后就可以到po文件中添加对应的

msgid "hello_world"
msgstr "你好我的世界"

msgid "myName"
msgstr "我的名字"

msgid "php"
msgstr "我在学习php"

 

再用gettext来生成对应的mo文件即可

 

抱歉!评论已关闭.