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+MySQL 手工注入语句大全 推荐
Oct 30 PHP
PHP 截取字符串专题集合
Aug 19 PHP
使用 PHPMAILER 发送邮件实例应用
Nov 07 PHP
使用PHP如何实现高效安全的ftp服务器(二)
Dec 30 PHP
php array_walk_recursive 使用自定的函数处理数组中的每一个元素
Nov 16 PHP
PHP实现的Redis多库选择功能单例类
Jul 27 PHP
PHP实现执行外部程序的方法详解
Aug 17 PHP
PHP实现求两个字符串最长公共子串的方法示例
Nov 17 PHP
thinkPHP5框架auth权限控制类与用法示例
Jun 12 PHP
thinkphp5.1框架模板布局与模板继承用法分析
Jul 19 PHP
ThinkPHP3.1.2 使用cli命令行模式运行的方法
Apr 14 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 url地址栏传中文乱码解决方法集合
2010/06/25 PHP
php-fpm添加service服务的例子
2018/04/27 PHP
详解PHP 二维数组排序保持键名不变
2019/03/06 PHP
JQuery 无废话系列教程(二) jquery实战篇上
2009/06/23 Javascript
jQuery.getScript加载同域JS的代码
2012/02/13 Javascript
jQuery-onload让第一次页面加载时图片是淡入方式显示
2012/05/23 Javascript
图片Slider 带左右按钮的js示例
2013/08/30 Javascript
JavaScript的六种继承方式(推荐)
2017/06/26 Javascript
vue 简单自动补全的输入框的示例
2018/03/12 Javascript
JS获取当前时间的实例代码(昨天、今天、明天)
2018/11/13 Javascript
详解vue中axios请求的封装
2019/04/08 Javascript
在 Vue 中使用 JSX 及使用它的原因浅析
2020/02/10 Javascript
vue 需求 data中的数据之间的调用操作
2020/08/05 Javascript
JS使用setInterval计时器实现挑战10秒
2020/11/08 Javascript
[01:39]2014DOTA2国际邀请赛 Newbee经理CU专访队伍火力全开
2014/07/15 DOTA
numpy数组拼接简单示例
2017/12/15 Python
Python中实现变量赋值传递时的引用和拷贝方法
2018/04/29 Python
python的格式化输出(format,%)实例详解
2018/06/01 Python
Python  unittest单元测试框架的使用
2018/09/08 Python
Python反爬虫技术之防止IP地址被封杀的讲解
2019/01/09 Python
Python文本处理简单易懂方法解析
2019/12/19 Python
使用python自动追踪你的快递(物流推送邮箱)
2020/03/17 Python
给ubuntu18安装python3.7的详细教程
2020/06/08 Python
appium+python自动化配置(adk、jdk、node.js)
2020/11/17 Python
美丽的现代设计家具:2Modern
2018/07/26 全球购物
世界上最全面的草药补充剂和顶级品牌维生素网站:HerbsPro
2019/01/20 全球购物
亚马逊新加坡官方网站:Amazon.sg
2020/03/25 全球购物
机械专业应届生求职信
2013/12/12 职场文书
自我评价200字分享
2013/12/17 职场文书
预备党员思想汇报
2014/01/08 职场文书
食品安全承诺书
2014/05/22 职场文书
暑期培训心得体会
2014/09/02 职场文书
党的群众路线教育实践活动心得体会范文
2014/11/05 职场文书
2015年环境整治工作总结
2015/05/22 职场文书
联谊会开场白
2015/06/01 职场文书
教你使用VS Code的MySQL扩展管理数据库的方法
2022/01/22 MySQL