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

前端技术 2023/09/09 PHP

本文实例讲述了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数组(Array)操作技巧大全》、《PHP数据结构与算法教程》、《PHP数学运算技巧总结》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

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

本文地址:https://www.stayed.cn/item/25942

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。