php 后台 PHPCMS 多语言网站解决方案

编程知识 更新时间:2023-04-04 06:09:28

一般的建站都用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');
	}



其中就是要求配置项,在得到自定义变量的时候,重新加载语言库,以达到目标。





更多推荐

php 后台 PHPCMS 多语言网站解决方案

本文发布于:2023-04-04 06:09:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/ec98aa7ea3c7b9d5474ad7748bee948f.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:多语言   后台   网站解决方案   php   PHPCMS

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 41447文章数
  • 14阅读数
  • 0评论数