- 浏览: 1529036 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (516)
- Java (49)
- Java/Struts 2.0 (25)
- Java/Spring、Spring MVC (11)
- Java/Quartz (3)
- Java/Lucene (6)
- Java/Hibernate (19)
- Java/openJPA (7)
- Java/DWR (7)
- Java/Security、Spring Security/OAuth2 (6)
- Java/Threading (9)
- Java/XML (22)
- java/design pattern (4)
- Android (2)
- JavaScript (46)
- jquery (3)
- DB/MySQL (23)
- DB/Oracle (16)
- PHP (25)
- CSS (20)
- Linux (38)
- C/C++、DLL、Makefile、VC++ (31)
- 正则 (9)
- Eclipse (4)
- 安全、网络等概念 (25)
- 集群 (7)
- 网页 (5)
- 视频\音频 (1)
- HTML (6)
- 计算机数学/算法 (3)
- Virtualbox (1)
- LDAP (2)
- 数据挖掘 (6)
- 工具破解 (1)
- 其他 (13)
- Mail (1)
- 药材 (3)
- 游戏 (2)
- hadoop (13)
- 压力测试 (3)
- 设计模式 (3)
- java/Swing (2)
- 缓存/Memcache (0)
- 缓存/Redis (1)
- OSGI (2)
- OSGI/Gemini (0)
- 文档写作 (0)
- java/Servlet (3)
- MQ/RabbitMQ (2)
- MQ/RocketMQ (0)
- MQ/Kafka (1)
- maven (0)
- SYS/linux (1)
- cache/redis (1)
- DB/Mongodb (2)
- nginx (1)
- postman (1)
- 操作系统/ubuntu (1)
- golang (1)
- dubbo (1)
- 技术管理岗位 (0)
- mybatis-plus (0)
最新评论
-
pgx89112:
大神,请赐我一份这个示例的项目代码吧,万分感谢,1530259 ...
spring的rabbitmq配置 -
string2020:
不使用增强器 怎么弄?
OpenJPA的增强器 -
孟江波:
学习了,楼主,能否提供一份源代码啊,学习一下,十分感谢!!!4 ...
spring的rabbitmq配置 -
eachgray:
...
spring-data-redis配置事务 -
qljoeli:
学习了,楼主,能否提供一份源代码啊,学习一下,十分感谢!!!1 ...
spring的rabbitmq配置
目录结构:
//============================================
文件内容:
/include/language.php
<?php $languages = array (); $languages ['zh-cn'] ["name"] = "china"; $languages ["zh-cn"] ["image"] = "flag1.jpg"; $languages ["en"] ["name"] = "english"; $languages ["en"] ["image"] = "flag2.jpg"; class Language { public $language_area; public $language_country; public $language_dir; public $dir; public function __construct() { $this->dir = str_replace ( "\\", "/", dirname ( __FILE__ ) ) . "/language/"; $this->initDefaultLanguage (); if (empty ( $this->language_country ) && ! empty ( $this->language_area )) { $this->language_country = substr ( $this->language_area, 0, strpos ( $this->language_area, "-" ) ); } $this->initLanguageDir (); } /* 取得语言文件的绝对路径 */ public function getFileDir($file) { $dir = $this->dir; if (file_exists ( $this->getLanguageDir () . $file )) { return $this->getLanguageDir () . $file; } else if (file_exists ( $dir . $this->language_area . "/" . $file )) { return $dir . $this->language_area . "/" . $file; } else if (file_exists ( $dir . $this->language_country . "/" . $file )) { return $dir . $this->language_country . "/" . $file; } else if (file_exists ( $dir . "en/" . $file )) { return $dir . "en/" . $file; } else { return false; } } /* 取得当前使用语言的文件夹 */ public function getLanguageDir() { return $this->language_dir; } /* 初始化语言文件夹 */ private function initLanguageDir() { $dir = $this->dir; if (file_exists ( $dir . $this->language_area ) && ! empty ( $this->language_area )) { $this->language_dir = $dir . $this->language_area . "/"; } else if (file_exists ( $dir . $this->language_country ) && ! empty ( $this->language_country )) { $this->language_dir = $dir . $this->language_country . "/"; } else { $this->language_dir = $dir . "en/"; } } /* 初始化默认语言 */ public function initDefaultLanguage() { if ($this->getCookieLanguage ()) { return; } $language = $_SERVER ['HTTP_ACCEPT_LANGUAGE']; preg_match_all ( "/[\w-]+/", $language, $language ); $this->language_area = $language [0] [0]; @$this->language_country = $language [0] [1]; $this->setCookieLanguage (); } /* 从cookie中导入语言种类 */ public function getCookieLanguage() { if (! @empty ( $_COOKIE ['lang'] )) { $language = $_COOKIE ['lang']; if (strpos ( $language, "-" )) { $this->language_area = $language; } else { $this->language_country = $language; } return true; } return false; } /* 把当前的语言种类放到cookie中 */ public function setCookieLanguage($lang = "") { if (empty ( $lang )) { $lang = $this->language_area; } if (empty ( $lang )) { $lang = $this->language_country; } if (empty ( $lang )) { return false; } setcookie ( "lang", $lang, time () + 365 * 24 * 3600, "/", $this->getDomain () ); return true; } public function getDomain() { if (empty ( $this->domain )) { $domain = $_SERVER ['SERVER_NAME']; if (strcasecmp ( $domain, "localhost" ) === 0) { $this->domain = $domain; return $this->domain; } if (preg_match ( "/^(\d+\.){3}\d+$/", $domain, $domain_temp )) { $this->domain = $domain_temp [0]; return $this->domain; } preg_match_all ( "/\w+\.\w+$/", $domain, $domain ); $this->domain = $domain [0] [0]; return $this->domain; } else { return $this->domain; } } } ?>
/include/language/zh-cn/language.php
<?php $language_message["china"]="中文"; $language_message["english"]="英文"; ?>
/include/language/en/language.php
<?php $language_message["china"]="china"; $language_message["english"]="english"; ?>
/chang_language.php
<?php include_once 'header.php'; include_once 'header.tpl'; $language_file=$lang->getFileDir("language.php"); include($language_file); ?> <script language="javascript"> var domain="<?php echo $lang->getDomain();?>"; var cur_language="<?php echo $current_language;?>"; function change_language(lan) { alert("lan"); setCookie("lang",lan,1,"/",domain,false); if(cur_language==lan) { return ; } <?php if(!$_POST){ ?> document.location.reload(); <?php } ?> } // writeCookie("myCookie", "my name", 24); // Stores the string "my name" in the cookie "myCookie" which expires after 24 hours. function setCookie( name, value, expires, path, domain, secure ) { var today = new Date(); today.setTime( today.getTime() ); if ( expires ) { expires = expires * 1000 * 60 * 60 * 24; } var expires_date = new Date( today.getTime() + (expires) ); document.cookie = name+'='+escape( value ) + ( ( expires ) ? ';expires='+expires_date.toGMTString() : '' ) + //expires.toGMTString() ( ( path ) ? ';path=' + path : '' ) + ( ( domain ) ? ';domain=' + domain : '' ) + ( ( secure ) ? ';secure' : '' ); } </script> <ul> <?php foreach($languages as $key=>$value) { echo '<li><a href="javascript://" onclick="change_language(\'',$key,'\')"'; echo '>',$language_message[$languages[$key]["name"]],' <img src="images/',$languages[$key]["image"],'" border="0"/></a></li>'; } ?> </ul>
/header.php
<?php include_once (dirname ( __FILE__ ) . "/include/language.php"); $lang = new Language ( ); //print_r($lang->language_area); $current_language = getCurrentLanguage (); //print_r($current_language); function getCurrentLanguage() { global $lang, $languages; if (array_key_exists ( $lang->language_area, $languages )) { return $lang->language_area; } else if (array_key_exists ( $lang->language_country, $languages )) { return $lang->language_country; } else { return "en"; } } ?>
/header.tpl
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>多语言测试</title> <link href="css/css.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="javascript/prototype_1_6.js"></script> </head>
/test_language.php
<?php include_once 'header.php'; include_once 'header.tpl'; $language_file = $lang->getFileDir ( "speak_language.php" ); require_once ($language_file); print_r($speak_language_message); ?>
测试地址为:http://127.0.0.1/multiple_language/chang_language.php
localhost不能使用,正式域名及IP地址可以使用。
发表评论
-
mysql_query()防止掉链的数据库查询
2011-03-24 14:00 1741// ---------------------------- ... -
Windows下的Memcache安装
2011-03-22 10:06 2120转自:http://www.ccvita.com/258.ht ... -
PHP 解决采集乱码问题mb_convert_encoding和iconv使用比较
2011-02-11 13:27 3011转自:http://hi.baidu.com/ ... -
采集数据
2011-01-28 17:27 932<? // 连接数据库的配置 $config = a ... -
eclipse xdebug 配置手册
2010-10-22 14:12 1261XDebug Support In PDT 1.0 :htt ... -
file_get_contents的超时处理
2010-08-17 14:57 2154转自:http://www.neatstudio.com/sh ... -
在php 5.2版本之前使用的json_encode和json_decode函数
2010-08-13 09:33 1844http://mike.teczno.com/JSON/JSO ... -
月份处理函数
2010-08-11 22:00 1022function period_diff($in_dateLo ... -
配置xdebug
2010-08-10 09:19 983zend_extension = "D:/xampp ... -
判断在linux以命令行执行的文件是否还在执行
2010-06-03 10:37 2147// 取得当前程序进程,用来判断是否可以执行 $gather ... -
PHP分页
2010-05-05 07:15 1139<?php header("content- ... -
JavaBridge
2010-02-10 16:11 878中文翻译及使用手册 http://programfan.co ... -
How to implement COMET with PHP
2009-12-07 13:17 3030http://www.zeitoun.net/articles ... -
PHP 压缩网站上的文件,并返回下载
2009-08-27 20:51 2723<?php $zipFileName = " ... -
递归删除目录及目录中的文件
2009-08-27 20:24 1237<?php /** * 递归删除目录及目录中的文件 ... -
PHP验证码程序:session生成图片
2009-08-07 15:39 3891昨天捣鼓了一下PHP验证码并生成图片程序,采用了sessi ... -
Apache的rewrite规则详细介绍
2009-06-01 22:52 1363rewrite标志 R [=code](for ... -
php mail 支持UTF-8,附件
2009-03-06 14:19 2897<?php class mime_mail { var ... -
包含其他目录的文件
2009-02-02 16:57 996<?php include_once dirname(_ ... -
时区表 Territory Containment
2008-11-11 11:44 1131时区表 http://unicode.org/cldr/dat ...
相关推荐
PHPWEB中英多语言切换插件是为了解决这个问题而设计的,它允许用户轻松地在中文和英文之间切换,从而扩大网站的受众范围,提升用户体验。 首先,我们需要了解PHPWEB自助建站程序。PHPWEB是一个基于PHP和MySQL的开源...
多语言切换功能是ECSHOP为满足全球用户需求而设计的重要特性,使得商家能够轻松地将网站内容转化为不同语言,吸引不同国家和地区的消费者。以下是如何在ECSHOP中实现多语言切换的详细步骤: 1. 修改`init.php`文件...
在PHP中实现多语言切换是构建国际化网站的关键步骤,它允许你的网站内容适应不同国家和地区用户的语言需求。以下是一个简单的实现方法,分为几个关键部分: 1. **主程序代码**: 主程序代码中首先引入了`function....
本文将详细介绍如何在ECShop中实现多语言切换功能。 首先,理解ECShop的结构至关重要。ECShop的核心组成部分包括`themes`目录,这是存放主题和模板的地方;`includes`目录,包含了系统的主要配置文件和函数库。在...
首先,多语言切换功能的实现是通过语言包来完成的。在CRMEB系统中,每种语言都有对应的语言包,包含了所有用户界面的文本资源。这些语言包通常包含一系列的翻译文件,如`.json`或`.php`文件,用于存储各种界面元素的...
#### 多语言自动识别与切换 ThinkPHP具备自动识别用户浏览器语言的功能,并据此加载相应的语言包。这意味着,当用户访问应用时,系统会自动检测用户的浏览器设置,并尝试加载匹配的语言包。 如果需要手动测试语言...
php简单实现多语言切换的方法.doc
【PHP多语言版】是一个专为全球用户设计的版本,它包含了多种语言支持,使得非英语国家的用户也能轻松地理解和使用PHP环境。这个版本旨在消除语言障碍,为开发者提供更加便捷的编程体验,无论他们来自何处,都能无...
5. **多语言支持**:实现多语言功能通常会使用语言文件(如lang.php)存储不同语言的文本,通过检测用户浏览器设置或用户选择来切换语言环境。 6. **路由系统**:网站的URL管理,可能使用自定义路由规则,通过解析...
在PHP开发中,实现多语言功能是常见的需求,特别是在构建具有全球用户基础的网站或应用时。虽然`gettext`是一个广泛使用的多语言支持工具,但并非唯一的选择。本实例将探讨如何在不依赖`gettext`的情况下,通过...
在PHP中实现多语言切换是一种常见的需求,特别是在构建全球化网站时。以下是一个简洁的方法,通过使用会话(Session)和语言包来实现这一功能。 首先,我们来看一下主程序代码: ```php <?php include "lib/...
一个简单,功能强大且易于使用的插件,它将为WordPress安装增加多语言支持,即多个子域或文件夹(如果您需要跨多个域设置多个站点,则您还需要使用插件-只要这些域都托管在同一服务器上即可。) 多站点语言切换器使...
盲盒抽奖活动在全球范围内越来越受欢迎,因此,此源码的设计考虑了不同国家和地区用户的语言需求,支持一键切换多语言功能,确保全球用户能够无障碍地参与。 UI(用户界面)设计采用了现代简洁的国际风格,旨在吸引...
三、多语言切换 实现语言切换通常需要一个界面元素,如下拉菜单或按钮,供用户选择不同的语言。点击后,应更新用户的会话或Cookie,以便服务器知道用户的新语言偏好。然后,重新加载页面,显示相应语言的文本。 四...
在这个项目中,可能采用了类似的方法,通过动态读取并应用语言包,实现多语言的快速切换。 其次,语言包自动生成是提高开发效率的重要工具。这通常涉及到文本提取和翻译过程。开发者可以通过分析源代码中的字符串,...
使用tp5.0.10之前的版本的,进行多语言切换会出现问题,具体的解决问题的办法 ,应先正确的配置对多语言的配置文件 (略过),正确的话应该会取用cookie('think_var')中的值进行语言的切换,但问题就出在取cookie('...
这个压缩包文件包含的是关于CAS单点登录的多语言整合文档和源码,特别提到了PHP客户端和Java客户端的整合。 首先,我们来深入理解一下CAS的基本工作原理。当用户尝试访问受CAS保护的应用时,会被重定向到CAS服务器...