阅读(3749) (8)

为模板添加多语言能力

2017-06-13 16:57:45 更新

ModPHP 模板的多语言功能是通过使用 lang() 函数实现的。这有两方面的含义,一是为 lang() 函数设置运行时配置,二是在模版中使用 lang() 函数进行输出。示例如下:

在模板函数文件中为 lang() 设置运行时配置:

<?php
$lang = strtolower(config('mod.language')).'.php';
/** 推荐在模板文件夹下使用一个独立的文件夹存放语言包,如 lang/ */
$file = template_dir('lang/'.$lang);
if(file_exists($file)){
 lang(include($file));
}
/** 为了确保你的语言包能够被 CMS 系统发现并启用,你还应该这样做 */
$file2 = __ROOT__.'user/lang/'.$lang;
if(!file_exists($file2)){
 export(include($file), $file2);
}

然后在模板中使用 lang() 函数进行输出:

```<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <!-- 例如这样 --> 该网站正在使用的语言是 <?php echo lang('name'); ?>。 <!-- 或者使用模板编译引擎 --><br> 该网站正在使用的语言是 {lang('name')}。 </body> </html>




##如何制作制作语言包?


ModPHP 的语言包制作起来非常简单,只需要参考默认的语言包文件即可。你可以自由添加消息项目,但默认语言包中所有的项目都应该被翻译,并且,你必需为语言包设置一个 ***name => 语言名称*** 键值对,来让使用者和 CMS 系统辨识该语言包所使用的语言。在保存为文件时,尽量保存为和语言名称相对应的英文名称,例如 **中文(简体)** 应该保存问 **zh_cn.php** 或者**chinese_simpfied.php**。


你可以[点击此处](http://modphp.hyurl.com/viewcode/mod/lang/zh-cn.php)查看默认语言包 zh-cn.php 是如何编写的。