php简单实现多语言切换的方法


Posted in PHP onMay 09, 2016

本文实例讲述了php简单实现多语言切换的方法。分享给大家供大家参考,具体如下:

1.主程序代码:

<?php
include "lib/function.php";
?>
<script src="js/language.js"></script>
<?php
if(isset($_GET["language"])){
  $_SESSION["language"] = $_GET["language"];
}else{
  $_SESSION["language"] = getDefalutlanguage();
}
$language_name = getLanguageName($_SESSION["language"]);
include "lang/".$language_name.".inc";
?>
<SELECT NAME="language" id="language" onchange="changeLanguage(this)">
<?php
  $language_array = array_language();
  foreach($language_array as $key => $value){
    if($_SESSION["language"] == $value){
      $selected = "selected = 'selected' ";
    }else{
      $selected = "";
    }
?>
<OPTION VALUE="<?php echo $value;?>" <?php echo $selected;?>><?php echo getLanguageName($value);?></OPTION>;
<?
  }
?>
</SELECT>
<?php
  if($_GET["language"] == $value){
      //$selected = "selected = 'selected' ";
    }
echo "语言:".$_SESSION["language"];
echo "测试:".$name;
?>

2. 所包含的语言包:English.inc

<?php
$name = "name";
?>
Chinese.inc
<?php
$name = "名字";
?>

3. 所包含的function.php

<?php
 function getVailableLanguage() {
    $language = array(
      'af'     => 'Afrikaans',
      'az'     => 'Azerbaijani',
      'eu'     => 'Basque',
      'be'     => 'Belarusian',
      'be-lat'   => 'Belarusian latin',
      'bg'     => 'Bulgarian',
      'bs'     => 'Bosnian',
      'ca'     => 'Catalan',
      'zh'     => 'Chinese',
      //'zh-TW'     => 'Chinese traditional',
      //'zh-CN'     => 'Chinese simplified',
      'cs'     => 'Czech',
      'da'     => 'Danish',
      'de'     => 'German',
      'el'     => 'Greek',
      'en'     => 'English',
      'es'     => 'Spanish',
      'et'     => 'Estonian',
      'fa'     => 'Persian',
      'fi'     => 'Finnish',
      'fr'     => 'French',
      'gl'     => 'Galician',
      'he'     => 'Hebrew',
      'hi'     => 'Hindi',
      'hr'     => 'Croatian',
      'hu'     => 'Hungarian',
      'id'     => 'Indonesian',
      'it'     => 'Italian',
      'ja'     => 'Japanese',
      'ko'     => 'Korean',
      'ka'     => 'Georgian',
      'lt'     => 'Lithuanian',
      'lv'     => 'Latvian',
      'mk'     => 'Macedonian',
      'mn'     => 'Mongolian',
      'ms'     => 'Malay',
      'nl'     => 'Dutch',
      'no'     => 'Norwegian',
      'pl'     => 'Polish',
      'pt-BR'    => 'Brazilian portuguese',
      'pt'     => 'Portuguese',
      'ro'     => 'Romanian',
      'ru'     => 'Russian',
      'si'     => 'Sinhala',
      'sk'     => 'Slovak',
      'sl'     => 'Slovenian',
      'sq'     => 'Albanian',
      'sr-lat'   => 'Serbian latin',
      'sr'     => 'Serbian',
      'sv'     => 'Swedish',
      'th'     => 'Thai',
      'tr'     => 'Turkish',
      'tt'     => 'Tatarish',
      'uk'     => 'Ukrainian',
    );
    return $language;
  }
 function getLanguageName($language) {
    $languages = getVailableLanguage();
    return $languages[$language];
  }
 function array_language(){
  $array_language = array("en","zh");
  return $array_language;
 }
 function getDefalutlanguage(){
    return "zh";
 }
?>

4.所包含的language.js

function changeLanguage(obj) {
  var url = document.URL;
  var re = re = /[?&]language=[^&]*/;
  url = url.replace(re, "");
  if (url.indexOf("?") > -1) {
    url += "&language=" + obj.value;
  } else {
    url += "?language=" + obj.value;
  }
  location.href = url;
}

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
过滤掉PHP数组中的重复值的实现代码
Jul 17 PHP
php中日期加减法运算实现代码
Dec 08 PHP
PHP通过session id 实现session共享和登录验证的代码
Jun 03 PHP
解析php入库和出库
Jun 25 PHP
浅析php fwrite写入txt文件的时候用 \r\n不能换行的问题
Aug 06 PHP
PHP中使用Imagick操作PSD文件实例
Jan 26 PHP
php简单smarty入门程序实例
Jun 11 PHP
PHP加密解密函数详解
Oct 28 PHP
图文详解phpstorm配置Xdebug进行调试PHP教程
Jun 13 PHP
PHP实现删除多重数组对象属性并重新赋值的方法
Jun 07 PHP
Laravel5.7 数据库操作迁移的实现方法
Apr 12 PHP
50个优秀经典PHP算法大集合 附源码
Aug 26 PHP
深入浅析PHP无限极分类的案例教程
May 09 #PHP
实例讲解php数据访问
May 09 #PHP
php查询操作实现投票功能
May 09 #PHP
解决yii2左侧菜单子级无法高亮问题的方法
May 08 #PHP
php面向对象编程self和static的区别
May 08 #PHP
Laravel与CI框架中截取字符串函数
May 08 #PHP
PHP框架性能测试报告
May 08 #PHP
You might like
PHP超级全局变量数组小结
2012/10/04 PHP
PHP中类的自动加载的方法
2017/03/17 PHP
浅谈PHP面向对象之访问者模式+组合模式
2017/05/22 PHP
laravel 时间格式转时间戳的例子
2019/10/11 PHP
jQuery的一些注意
2006/12/06 Javascript
lyhucSelect基于Jquery的Select数据联动插件
2011/03/29 Javascript
一个简单的JS时间控件示例代码(JS时分秒时间控件)
2013/11/22 Javascript
jquery 获取dom固定元素 添加样式的简单实例
2014/02/04 Javascript
javascript实现的平方米、亩、公顷单位换算小程序
2014/08/11 Javascript
jquery中post方法用法实例
2014/10/21 Javascript
PHP+jQuery实现随意拖动层并即时保存拖动位置
2015/04/30 Javascript
D3.js中data(), enter() 和 exit()的问题详解
2015/08/17 Javascript
JavaScript+html5 canvas制作的圆中圆效果实例
2016/01/27 Javascript
理解javascript正则表达式
2016/03/08 Javascript
JS中dom0级事件和dom2级事件的区别介绍
2016/05/05 Javascript
javascript日期比较方法实例分析
2016/06/17 Javascript
JS中的hasOwnProperty()和isPrototypeOf()属性实例详解
2016/08/11 Javascript
浅谈jQuery中事情的动态绑定
2017/02/12 Javascript
vue2笔记 — vue-router路由懒加载的实现
2017/03/03 Javascript
10道典型的JavaScript面试题
2017/03/22 Javascript
手把手教你vue-cli单页到多页应用的方法
2018/05/31 Javascript
Vue Router的手写实现方法实现
2020/03/02 Javascript
微信小程序点击按钮动态切换input的disabled禁用/启用状态功能
2020/03/07 Javascript
python在命令行下使用google翻译(带语音)
2014/01/16 Python
python读取文件名称生成list的方法
2018/04/27 Python
Python操作Jira库常用方法解析
2020/04/10 Python
python 深度学习中的4种激活函数
2020/09/18 Python
英国最大的LED专业零售商:Led Hut
2018/03/16 全球购物
关于VPN
2012/06/10 面试题
药学专业大学生自荐信
2013/09/28 职场文书
会计专业毕业生自我鉴定
2013/10/29 职场文书
省文明单位申报材料
2014/05/08 职场文书
2014年党员承诺书范文
2014/05/20 职场文书
信息技术远程培训心得体会
2016/01/09 职场文书
2016年师德先进个人事迹材料
2016/02/29 职场文书
详解Vue项目的打包方式(生成dist文件)
2022/01/18 Vue.js