- 浏览: 2032898 次
- 来自: 武汉
文章分类
- 全部博客 (415)
- UI设计 (19)
- PHP (26)
- PHP工具类 (23)
- 二次开发 (53)
- phpMVC (28)
- javascript (50)
- JS 组件 (20)
- MYSQL (37)
- 其他 (16)
- xml/flash/flex (6)
- 版本控制 (7)
- 开源 (4)
- bug解决 (5)
- Linux (15)
- NoSQL (14)
- 软件设计 (21)
- C/PHP内核 (5)
- 安全性 (8)
- 面试 (18)
- 设计模式 (4)
- 重构 (6)
- 开发配置 (11)
- SQL SERVER (12)
- 采集 (3)
- SEO (2)
- 维护 (15)
- UML (5)
- 硬件标准 (1)
- 架构 (8)
- JAVA (1)
最新评论
-
carry0987:
求大神分離下X3的模板...不然對於PHP7不友好啊...
分离自Discuz模板类和语法 -
青木得海角:
你好,里面的 Crypt/TripleDES.php 和 Cr ...
POS机算法 -
zohog:
楼主,Mac.php中里面的 Crypt/TripleDES. ...
POS机算法 -
zohog:
楼主,Mac.php中里面的 Crypt/TripleDES. ...
POS机算法 -
q59200182:
能不能给个完整的demo 新手上路不会 求带
AngularJs 指令directive之controller,link,compile
//============================================
文件内容:
/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"; ?>
<?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>
<?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"; } } ?>
<!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>
测试地址为:http://127.0.0.1/multiple_language/chang_language.php
localhost不能使用 ,正式域名及IP地址可以使用。
- multiple_language.rar (89.2 KB)
- 描述: php
- 下载次数: 19
- LocaleChange.rar (1.2 MB)
- 描述: struts1.3 J2EE
- 下载次数: 10
发表评论
-
PHP实现Mysql网站安装程序制作
2012-12-19 13:38 1651其实PHP程序的安装原理无非就是将数据库结构和内容导入到相应的 ... -
php接收邮件类
2011-07-18 16:19 7618通过POP3/IMAP / NNTP连接到邮箱,使用PHP ... -
FTP类
2011-07-18 11:32 1883<?php /** * FTP操作类 * @a ... -
PHP RSS/Feed类库
2011-06-23 14:10 1828通用PHP RSS/Feed 生成类库(支持RSS 1.0/2 ... -
php 生成迅雷快车旋风链接
2011-06-21 16:15 1680<?php function zhuanh ... -
PHP 自动加载对象(以MVC框架为例)
2011-06-20 15:07 5297<?php class autoloader { ... -
php 时间日期工具类 星座/干支/生肖
2011-06-17 17:06 2761如果系统没有设置时区,那么获得的结果是UTC时间,相对中国 ... -
比较全面的php session验证码与防识别
2011-05-17 11:40 3321验证码开发过程中的 3 个误区: 1、 背景干扰: ... -
PHP读取配置文件类(php,ini,yaml,xml)
2011-02-18 11:27 4008https://github.com/dannyhu926/p ... -
php zip pdf word rar类库
2011-01-28 13:33 1923pdf2swf+flexpaper解决pdf在线阅读(类百度 ... -
php取得客户端信息类
2011-01-28 11:04 2021<?php /** * * 根据sina ... -
php文件目录操作类
2011-01-28 10:56 3631https://github.com/dannyhu926/p ... -
PHP文件下载类
2011-01-27 11:17 1951<?php /** $filename = 'i ... -
gettext库 多语言国际化2
2011-01-25 15:22 2757通常人们写程序时都是将文字写死在程序里的,比如:echo &q ... -
数据库操作类mysql/mysqli/pdo
2011-01-20 18:48 2287PDO,MYSQL,MYSQLI的各自不同介绍,PDO,M ... -
php数组工具类
2010-11-25 09:14 2079数组《=》对象 /* * 数 ... -
PHP mysql数据库读写分离
2010-11-16 19:25 1555MYSQL的读写分离实现有2种思路 MySQL中间件 用 ... -
PHP邮件发送类
2010-06-17 20:25 4046Swift Mailer 和前面介绍的PHPMailer一 ... -
比较全面的php分页导航类
2010-06-11 15:33 2159瀑布流分页:当浏览者浏览了当前页面内容后,向下拉动浏览器滚动 ... -
php汉字换转成拼音
2010-05-25 14:40 1995<?php /** * PHP 汉字转拼音 ...
相关推荐
本话题聚焦于“上位机Winform实现多语言国际化”,这涉及到Windows Forms应用程序的开发,以及如何让其支持多种语言,以满足全球用户的使用需求。同时,描述中提到的“与西门子PLC通讯的代码”意味着我们还会讨论...
下面,我将详细阐述这两种技术如何实现多语言国际化。 首先,让我们探讨ASP.NET的多语言国际化。ASP.NET提供了强大的本地化支持,允许开发者创建能够适应不同地区和语言的应用。关键组件包括资源文件(.resx)和 ...
在.NET框架中,C#语言提供了强大的支持来进行多语言国际化和本地化开发。这使得开发者可以构建出能够适应全球不同地区和语言环境的应用程序。以下是对标题和描述中提到的知识点的详细说明: 1. **多语言(Multi-...
下面将详细讨论MVC国际化、MVC多语言以及.NET多语言的实现策略。 1. **MVC国际化基础** - **Resource Files**:MVC国际化的核心是使用资源文件(.resx)来存储不同语言的文本和字符串。每个语言版本都有一个对应的...
本教程将详细介绍如何在Android项目中实现多语言切换,让您的应用具备国际化能力。 首先,我们需要了解Android的资源管理机制。Android系统通过res目录下的values文件夹来存储不同类型的资源,如字符串、颜色、布局...
在SSM框架上实现国际化和多语言功能,可以使得应用程序能够适应不同国家和地区用户的语言需求,提升用户体验。以下将详细介绍如何在SSM框架中实现这一功能。 首先,我们需要理解“国际化”(Internationalization)...
在开发Web应用时,"WEB多语言 国际化 本地化"是一个关键的领域,它使得网站能够适应全球不同地区的用户,提供多种语言的界面和内容。这涉及到.NET框架中的全球化(Globalization)和本地化(Localization)概念。 ...
Visual Studio(VS)与Qt库结合,提供了一种高效的方法来实现多语言国际化。本项目专注于在VS中使用Qt实现动态切换菜单栏标题的语言,使得程序可以根据用户的语言偏好进行适配。 首先,我们需要了解Qt的国际化机制...
基于qt 国际化示例, 实现多语言 在工程中添加想要翻译的语言ts, 然后点击Qtcreator中的《工具》《更新翻译》生成对应的ts文件,然后打开ts文件,将对应的翻译语言填好,再点Qtcreator中的《工具》《发布翻译》生成....
### 国际化多语言系统开发手册 #### 概述 随着全球化进程的加快,越来越多的企业需要面对跨国界的业务挑战,特别是在物流行业中,能够支持多种语言的信息系统变得尤为重要。《国际化多语言系统开发手册》主要介绍...
在前端实现国际化多语言,通常会用到以下关键概念和技术: 1. **资源分离**:将所有需要翻译的文本(如按钮标签、提示信息等)从HTML代码中分离出来,存储在单独的文件中,如JSON文件。这样便于管理和更新,同时也...
本篇文章将深入探讨WPF如何实现国际化和本地化,以及如何创建支持多语言的应用。 **一、WPF中的国际化和本地化概念** 1. **国际化(Internationalization)**:国际化是指设计和开发应用程序时考虑到全球市场的...
PHP的国际化(i18n)和多语言支持是为网站或应用程序提供跨语言体验的关键功能。"PHP 国际化 多语言"这个主题涉及到如何使PHP项目能够适应不同地区的用户,包括中文和日文在内的多种语言切换。 一、PHP的国际化...
在Android开发中,实现应用支持多语言国际化是一个重要的功能,可以让应用吸引全球用户。本教程将详细介绍如何在Android应用内以及通过系统设置实现多语言国际化,涵盖了简体中文、繁体中文和英文的切换。 首先,...
C# 多国语言国际化(Internationalization)是开发支持多种语言的应用程序的关键技术。在WinForms应用程序中,C#提供了一套完整的框架来实现这一功能,使得开发者可以轻松地为不同地区和语言的用户提供定制化的界面...
它也提供了丰富的功能来实现国际化(i18n)和多语言切换。下面我们将深入探讨SpringMVC如何实现这一目标。 首先,国际化的核心在于资源文件。在SpringMVC中,通常我们会创建一个名为`messages.properties`的默认...
html多语言 html谷歌翻译插件 html5国际化
1. **Spring Boot的国际化(i18n)支持** Spring Boot通过`MessageSource`接口提供国际化支持。开发者可以创建`messages.properties`文件,针对不同语言创建对应的子文件,如`messages_en.properties`(英语)和`...
在本文中,我们将深入探讨如何在C# WPF(Windows Presentation Foundation)应用程序中实现多语言支持,即国际化。WPF提供了强大的框架,使得开发者能够轻松地构建能够适应不同语言和地区的应用。 首先,理解“国际...