你现在的位置:首页 > PHP网站建设知识库 > phpcms > 正文

PHPCMS多语言网站解决方案

一般的建站都用php,其中phpcms感觉比较好用,列出一些自己的多语言经验。

1. 根栏目建立语言种类,如 cn,en等。

2. 根栏目分类中模板的“模板设置”,中的“栏目首页模板”,我们需要设定一个语言主页配置,名字如“category_index.html”

3. 模板目录“\phpcms\templates\en” 也按语言分类名字也区分开来。

4. 建立对应数量站点配置,在模板开头输入 {php $SEO = seo(SITE_ID)} 区分,SITE_ID为站点id,最好再建立当前语言根类id,模板中定义变量  {php $langcatid = 77}。

5. 添加语言配置文件自定义的属性 ,这样写{php $GLOBALS['DYNAMIC_SYSTEM_LANG']='en'} ,

其中en我定义的文件名,对应目录为 \phpcms\languages\en,而属性中的变量名为自定义名字,下一点会用得到。

6. 到/phpcms/libs/functions/global.func.php 查找 function L(,找到语言函数,对以下代码进行修改以实现我们自行重新配置语言文件


if(defined('IN_ADMIN')) {  
    $lang = SYS_STYLE ? SYS_STYLE : 'zh-cn';  
} else {  
    $lang = pc_base::load_config('system','lang');  
}  

改为

global $DYNAMIC_SYSTEM_LANG;  
if(isset($DYNAMIC_SYSTEM_LANG) && $DYNAMIC_SYSTEM_LANG != NULL){  
    $lang = $DYNAMIC_SYSTEM_LANG;  
    $DYNAMIC_SYSTEM_LANG = NULL;  
  
    require_once PC_PATH.'languages'.DIRECTORY_SEPARATOR.$lang.DIRECTORY_SEPARATOR.'system.lang.php';  
    if(defined('IN_ADMIN')) require_once PC_PATH.'languages'.DIRECTORY_SEPARATOR.$lang.DIRECTORY_SEPARATOR.'system_menu.lang.php';  
    if(file_exists(PC_PATH.'languages'.DIRECTORY_SEPARATOR.$lang.DIRECTORY_SEPARATOR.ROUTE_M.'.lang.php')) require PC_PATH.'languages'.DIRECTORY_SEPARATOR.$lang.DIRECTORY_SEPARATOR.ROUTE_M.'.lang.php';  
  
    $modules = explode(',',$modules);  
    foreach($modules AS $m) {  
        if(!isset($LANG_MODULES[$m])) require PC_PATH.'languages'.DIRECTORY_SEPARATOR.$lang.DIRECTORY_SEPARATOR.$m.'.lang.php';  
    }  
  
}elseif(defined('IN_ADMIN')) {  
    $lang = SYS_STYLE ? SYS_STYLE : 'zh-cn';  
} else {  
    $lang = pc_base::load_config('system','lang');  
}