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数组
Oct 09 PHP
php中的MVC模式运用技巧
May 03 PHP
PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
May 07 PHP
php登陆页的密码处理方式分享
Oct 14 PHP
PHP类继承 extends使用介绍
Jan 14 PHP
PHP PDO fetch 模式各种参数的输出结果一览
Jan 07 PHP
Composer设置忽略版本匹配的方法
Apr 27 PHP
php实现URL加密解密的方法
Nov 17 PHP
php实现购物车产品删除功能(2)
Jul 23 PHP
PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
Feb 20 PHP
thinkPHP5.1框架路由::get、post请求简单用法示例
May 06 PHP
php源码的使用方法讲解
Sep 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一些常用的正则表达式字符的一些转换
2008/07/29 PHP
如何突破PHP程序员的技术瓶颈分析
2011/07/17 PHP
Notice: Trying to get property of non-object problem(PHP)解决办法
2012/03/11 PHP
php中$_POST与php://input的区别实例分析
2015/01/07 PHP
PHP实现批量修改文件后缀名的方法
2015/07/30 PHP
PHP 下载文件时如何自动添加bom头及解释BOM头和去掉bom头的方法
2016/01/04 PHP
Laravel中unique和exists验证规则的优化详解
2018/01/28 PHP
jquery 可拖拽的窗体控件实现代码
2010/03/21 Javascript
js 获取Listbox选择的值的代码
2010/04/15 Javascript
kmock javascript 单元测试代码
2011/02/06 Javascript
javaScript让文本框内的最后一个文字的后面获得焦点实现代码
2013/01/06 Javascript
JS、CSS以及img对DOMContentLoaded事件的影响
2014/08/12 Javascript
JS获取IMG图片高宽的简单实例
2016/05/17 Javascript
浅谈Javascript中的Label语句
2016/12/14 Javascript
AngularJS基于provider实现全局变量的读取和赋值方法
2017/06/28 Javascript
使用FormData实现上传多个文件
2018/12/04 Javascript
JavaScript生成一个不重复的ID的方法示例
2019/09/16 Javascript
JS代码触发事件代码实例
2020/01/02 Javascript
浅谈JavaScript节流和防抖函数
2020/08/25 Javascript
[00:20]TI9观赛名额抽取Ⅱ
2019/07/24 DOTA
用python实现批量重命名文件的代码
2012/05/25 Python
Python http接口自动化测试框架实现方法示例
2018/12/06 Python
Python可迭代对象操作示例
2019/05/07 Python
python 获取sqlite3数据库的表名和表字段名的实例
2019/07/17 Python
Python class的继承方法代码实例
2020/02/14 Python
仓库门卫岗位职责
2013/12/22 职场文书
祖国在我心中演讲稿
2014/01/15 职场文书
代理协议书范本
2014/04/22 职场文书
事业单位考核材料
2014/05/21 职场文书
李白故里导游词
2015/02/12 职场文书
大专护理专业自荐信
2015/03/25 职场文书
新闻通讯稿模板
2015/07/22 职场文书
2016护理专业求职自荐书
2016/01/28 职场文书
导游词之云南丽江-泸沽湖
2019/09/26 职场文书
PC版《死亡搁浅导剪版》现已发售 展开全新的探险
2022/04/03 其他游戏
MySQL数据库之内置函数和自定义函数 function
2022/06/16 MySQL