codecamp

为模板添加多语言能力

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 是如何编写的。
ModPHP 中的 MVC
交互式控制台
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

挂钩机制

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }