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模板引擎Smarty的缓存使用总结
Apr 24 PHP
php+mysql实现无限级分类
Nov 11 PHP
yii2.0使用Plupload实现带缩放功能的多图上传
Dec 22 PHP
Thinkphp自定义代码生成工具及用法说明(附下载地址)
May 27 PHP
PHP中overload与override的区别
Feb 13 PHP
php读取本地json文件的实例
Mar 07 PHP
浅谈PHP各环境下的伪静态配置
Mar 13 PHP
thinkPHP+LayUI 流加载实现功能
Sep 27 PHP
使用laravel和ajax实现整个页面无刷新的操作方法
Oct 03 PHP
Laravel 5.1 框架Blade模板引擎用法实例分析
Jan 04 PHP
laravel入门知识点整理
Sep 15 PHP
如何在Mac上通过docker配置PHP开发环境
May 29 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 管理系统程序中的后门
2009/08/05 PHP
php操作路径的经典方法(必看篇)
2016/10/04 PHP
PHP面向对象五大原则之依赖倒置原则(DIP)详解
2018/04/08 PHP
php实现微信支付之退款功能
2018/05/30 PHP
PHP时间处理类操作示例
2018/09/05 PHP
两种方法实现文本框输入内容提示消失
2013/03/17 Javascript
简述AngularJS相关的一些编程思想
2015/06/23 Javascript
jquery实现弹出层登录和全屏层注册特效
2015/08/28 Javascript
Bootstrap3学习笔记(二)之排版
2016/05/20 Javascript
深入理解JavaScript中为什么string可以拥有方法
2016/05/24 Javascript
利用transition实现文字上下抖动的效果
2017/01/21 Javascript
canvas的神奇用法
2017/02/03 Javascript
node 使用 async 控制并发的方法
2018/05/07 Javascript
一篇文章弄懂javascript中的执行栈与执行上下文
2019/08/09 Javascript
React实现评论的添加和删除
2020/10/20 Javascript
python教程之用py2exe将PY文件转成EXE文件
2014/06/12 Python
Python访问MySQL封装的常用类实例
2014/11/11 Python
python私有属性和方法实例分析
2015/01/15 Python
python获取目录下所有文件的方法
2015/06/01 Python
Python列表list解析操作示例【整数操作、字符操作、矩阵操作】
2017/07/25 Python
Pandas探索之高性能函数eval和query解析
2017/10/28 Python
Python 3.6 读取并操作文件内容的实例
2018/04/23 Python
python控制nao机器人身体动作实例详解
2019/04/29 Python
Python Web框架之Django框架cookie和session用法分析
2019/08/16 Python
pytorch 获取层权重,对特定层注入hook, 提取中间层输出的方法
2019/08/17 Python
python数据化运营的重要意义
2019/11/25 Python
Python实现井字棋小游戏
2020/03/09 Python
使用jupyter notebook运行python和R的步骤
2020/08/13 Python
HTML5的结构和语义(5):交互
2008/10/17 HTML / CSS
html5新增的属性和废除的属性简要概述
2013/02/20 HTML / CSS
html5自定义video标签的海报与播放按钮功能
2019/12/04 HTML / CSS
AmazeUi Tree(树形结构) 应用小结
2020/08/17 HTML / CSS
Blank NYC官网:夹克、牛仔裤等
2020/12/16 全球购物
建筑人员岗位职责
2013/12/25 职场文书
开学第一周总结
2015/07/16 职场文书
Java 死锁解决方案
2022/05/11 Java/Android