细谈PHP多语种建站

news/2024/5/20 0:50:32/文章来源:https://blog.csdn.net/weixin_33973600/article/details/92670011

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

    公司产品网站不可能局限于中文,因为你的网站注册客户也许是美国人,韩国人,西班牙人等,你不得不面临网站多语种解决问题。

  其实多语言网站很多,如谷歌网站,Facebook,code.org等

   基于PHP语言建站的CMS,如WordPress,Joomla等都配有有多语言插件,你只需安装即可。

  多语种网站应该考虑的问题?

  页面多语言
  需要考虑的问题:
  用户登陆时候,自动识别字符,调用不同的语言包?
  用户切换不同语言时候,调用不同的语言包?
  .增加多语言后的目录结构?
  
  页面多语言也就是外观的多语言化,这里可以采用静态的语言包的方式。
  设计时候就应该包括language的目录,针对不同语言有独立的子目录。
  如英文language/en  ,简体中文language/gb,繁体中文language/b5 (可以扩展其他语言)
  每个目录下就包含了对每个页面的语言版本。选择语言版本时候就可以调用相应版本的语言包。
  
  具体做法:
   0.利用JavaScript语言,识别浏览器语言,在调用不同的语言包.
   language/en/global.ln是针对英文版的全局语言包。
  
   2.global.ln 内容为:
          $title = "English webstie";
          $charset = "UTF-8";
  
   3.index.php调用:
   <?php 
   require_once()
   ?>;
   <html>;
   <head>;
   <title>;$title<title>;
   <meta http-equiv="content-type" content="text/html;charset=$charset">;
   </head>;
   <body>;</body>;
   </html>;
   
   这样通过扩展就可以实现页面的多语言化.
      
2.数据库多语言
  这个考虑的问题:
  A.后台录入数据的多语言化?
  B.用户在不同版本下,提交的内容,如何保存?
  C.提供三种语言包,还是提供英文和简体,简体通过转化提供繁体?
  
  数据库多语言就是达到多语言在数据库里面的统一。就需要采用utf-8统一编码。
  无论什么语言的文字,都统一使用utf-8来存放到数据库里面。采用表字段来表识
  属于什么语言版本的文字。
  
  具体:
  
  A.对于后台添加的问题:
  
  1.后台添加时候,就需要多语言化的录入。先建立一个以utf-8编码的数据库,录入英文/简体,简体在通过转化为繁体,
  再以utf-8编码方式存于数据库中。
  
  2.建立以utf-8为编码的表结构,importlanguage标识属于什么语言版本
    但在某个版本下,就搜索属于这个版本的文字来显示。其他文字不显示。
        DROP TABLE IF EXISTS `zz_importer`;
        CREATE TABLE IF NOT EXISTS `zz_importer` (
          `importID` int(11) NOT NULL auto_increment,
          `importTime` date NOT NULL default '0000-00-00',
          `improtfile` varchar(100) NOT NULL default '',
          `importlanguage` varchar(100) NOT NULL default ''
          PRIMARY KEY  (`importID`)
        ) ENGINE=MyISAM DEFAULT CHARSET=uft-8;
  
  3.简体转化的繁体。
    利用php的iconv.此过程对于linux/unix有效,对于windows无效。
    iconv("GB2312","BIG5",$text);
     
  4.因为,charset = "utf-8",数据就都是以utf-8编码方式存在,
    添加数据时候,要分别用en/gb/big5来标识语言版本.
    INSERT INTO `zz_importer` VALUES (,'', '', 'en');
    INSERT INTO `zz_importer` VALUES (,'', '', 'gb');
    INSERT INTO `zz_importer` VALUES (,'', '', 'big5');
     
  B.对于用户添加的问题:
   1.假设下简体中文下.用户因为页面头为UTF-8.则用户浏览器会以utf-8编码
   方式浏览页面。
   
   2.添加的数据库本身以utf-8方式存在。
   
   3.添加数据时候,要分别用gb来标识语言版本
   INSERT INTO `zz_importer` VALUES (,'', '', 'gb');
   
   C.对于简体和繁体是单独提供还是转化问题
    
    单独提供 - 比较符合多语言的标准,灵活性大,对ISP没有特别的要求。
    
    转化提供 - 提交速度会受影响,同时要ISP提供iconv的函数支持。 
   
3.用户访问语言统一
  
  A.假设用户简体中文版时候:
  <meta http-equiv="content-type" content="text/html;charset=UTF-8">;
  所有语言版本都是这样。
  
  B.调用language/gb的语言包。
  
  C.搜索数据库有语言字段为gb的数据,并显示
  
  D.当用户提交信息,参照上面数据库多语言的B问题。

最后就是对多语言网站的管理,后台管理员最好掌握对多国语言更好。

第二种方法,直接写JavaScript代码

自定义多语言网站

程序代码用JavaScript做的,

代码如下:

  1. <?php
  2. include "lib/function.php";
  3. ?>
  4. <script src="js/language.js"></script>
  5. <?php
  6. if(isset($_GET["language"])){
  7.     $_SESSION["language"] = $_GET["language"];
  8. }else{
  9.     $_SESSION["language"] = getDefalutlanguage();
  10. }
  11. $language_name = getLanguageName($_SESSION["language"]);
  12. include "lang/".$language_name.".inc";
  13. ?>
  14. <SELECT NAME="language" id="language" οnchange="changeLanguage(this)">
  15. <?php
  16.     $language_array = array_language();
  17.     foreach($language_array as $key => $value){
  18.         if($_SESSION["language"] == $value){
  19.             $selected = "selected = 'selected' ";
  20.         }else{
  21.             $selected = "";
  22.         }
  23.         
  24. ?>
  25. <OPTION VALUE="<?php echo $value;?>" <?php echo $selected;?>><?php echo getLanguageName($value);?></OPTION>;
  26. <?
  27.     }
  28. ?>
  29.     
  30. </SELECT>
  31. <?php 
  32.     if($_GET["language"] == $value){
  33.             //$selected = "selected = 'selected' ";
  34.         }
  35. echo "语言:".$_SESSION["language"];
  36. echo "测试:".$name;
  37. ?>
        
2. 所包含的语言包:English.inc
  1. <?php
  2. $name = "name";
  3. ?>
Chinese.inc
  1. <?php
  2. $name = "名字";
  3. ?>
3. 所包含的function.php
  1. <?php
  2.   function getVailableLanguage() {
  3.         
  4.         $language = array(
  5.             'af'          => 'Afrikaans',
  6.             'az'          => 'Azerbaijani',
  7.             'eu'          => 'Basque',
  8.             'be'          => 'Belarusian',
  9.             'be-lat'      => 'Belarusian latin',
  10.             'bg'          => 'Bulgarian',
  11.             'bs'          => 'Bosnian',
  12.             'ca'          => 'Catalan',
  13.             'zh'          => 'Chinese',
  14.             //'zh-TW'         => 'Chinese traditional',
  15.             //'zh-CN'         => 'Chinese simplified',
  16.             'cs'          => 'Czech',
  17.             'da'          => 'Danish',
  18.             'de'          => 'German',
  19.             'el'          => 'Greek',
  20.             'en'          => 'English',
  21.             'es'          => 'Spanish',
  22.             'et'          => 'Estonian',
  23.             'fa'          => 'Persian',
  24.             'fi'          => 'Finnish',
  25.             'fr'          => 'French',
  26.             'gl'          => 'Galician',
  27.             'he'          => 'Hebrew',
  28.             'hi'          => 'Hindi',
  29.             'hr'          => 'Croatian',
  30.             'hu'          => 'Hungarian',
  31.             'id'          => 'Indonesian',
  32.             'it'          => 'Italian',
  33.             'ja'          => 'Japanese',
  34.             'ko'          => 'Korean',
  35.             'ka'          => 'Georgian',
  36.             'lt'          => 'Lithuanian',
  37.             'lv'          => 'Latvian',
  38.             'mk'          => 'Macedonian',
  39.             'mn'          => 'Mongolian',
  40.             'ms'          => 'Malay',
  41.             'nl'          => 'Dutch',
  42.             'no'          => 'Norwegian',
  43.             'pl'          => 'Polish',
  44.             'pt-BR'       => 'Brazilian portuguese',
  45.             'pt'          => 'Portuguese',
  46.             'ro'          => 'Romanian',
  47.             'ru'          => 'Russian',
  48.             'si'          => 'Sinhala',
  49.             'sk'          => 'Slovak',
  50.             'sl'          => 'Slovenian',
  51.             'sq'          => 'Albanian',
  52.             'sr-lat'      => 'Serbian latin',
  53.             'sr'          => 'Serbian',
  54.             'sv'          => 'Swedish',
  55.             'th'          => 'Thai',
  56.             'tr'          => 'Turkish',
  57.             'tt'          => 'Tatarish',
  58.             'uk'          => 'Ukrainian',
  59.         );
  60.         return $language;
  61.     }
  62.   function getLanguageName($language) {
  63.         $languages = getVailableLanguage();
  64.         return $languages[$language];
  65.     }
  66.   function array_language(){
  67.     $array_language = array("en","zh");
  68.     return $array_language;
  69.   }
  70.   function getDefalutlanguage(){
  71.         return "zh";
  72.   } 
  73.     
  74. ?>
4.所包含的language.js
  1. function changeLanguage(obj) {
  2.     var url = document.URL;
  3.     var re = re = /[?&]language=[^&]*/;
  4.     url = url.replace(re, "");
  5.     if (url.indexOf("?") > -1) {
  6.         url += "&language=" + obj.value;
  7.     } else {
  8.         url += "?language=" + obj.value;
  9.     }
  10.     location.href = url;
  11. }

转载于:https://my.oschina.net/bigfool007139/blog/552535

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_780287.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站性能构建

网页性能管理详解 你遇到过性能很差的网页吗&#xff1f; 这种网页响应非常缓慢&#xff0c;占用大量的CPU和内存&#xff0c;浏览起来常常有卡顿&#xff0c;页面的动画效果也不流畅。 你会有什么反应&#xff1f;我猜想&#xff0c;大多数用户会关闭这个页面&#xff0c;改为…

招聘网站需求分析

网站定位&#xff1a;建筑行业专业性盈利性招聘网站。 一、主页设计 用户明确要求以下三点&#xff1a; 1、主色调&#xff1a;蓝色。 2、有不同尺寸的广告位。 3、自动刷新。 其余参照以下网站&#xff1a; 4&#xff0c;个人用户注册页面 5&#xff0c;企业注册页面 二、求职…

php签入html出来的影响seo吗_黑帽seo盈利-黑帽seo转型-seo优化黑帽

大家好&#xff0c;我是逆冬&#xff0c;今天来分享一下实战SEO需要掌握什么样的技能以及SEO知识误区&#xff0c;本篇文章仅代表逆冬本人几年的经验、不见得适合每一个SEOer!下面就让逆冬本人来分析一下实战型SEO到底需要掌握什么技能。第1点&#xff1a;SEO需要不需要熟练掌握…

iis网站根目录不为只读_搭建网站使用香港虚拟主机怎么样?

1. 香港虚拟主机一般是环境已经搭建好了&#xff0c;只需要将网站文件上传至根目录下&#xff0c;目前虚拟主机提供两种网站运行环境&#xff0c;asp.netIISplesk面板&#xff0c;这就需要将网站文件asp程序上传至httpdoc目录下&#xff0c;另外一个运行环境phpapachecpanel面板…

网站被黑检测与网站被黑处理方法

看到此文后&#xff0c;我认为你应该试着通过此文的方法检测一下你的网站是否被黑&#xff0c;因为有可能你的网站被黑了&#xff0c;连你自己都不知道&#xff0c;从下面的图片可以明显的看得出&#xff0c;我的网站也曾被黑过&#xff0c;但这位大神并没有打算处理我的网站&a…

测评网站源码 php,PiPiCMS影视建站程序评测:PHP版的MAXCMS

PiPiCMS皮皮影视采集程序&#xff0c;是一款基于PHPMySQL的影视建站程序&#xff0c;也是一款全新的PHP影视建站程序&#xff0c;作为一个刚推出1个月不到的程序&#xff0c;其功能已经较为完善&#xff0c;更新发布和漏洞修复速度也很快。不足之处是模板和自定义规则还不够充足…

网站性能优化

网站前端的优化还是很重要的&#xff0c;减少请求数&#xff0c;减少页面打开时间都能对页面访问性能提升不少&#xff0c;最近公司就在全站做优化。 由于公司的站已经有两三年的历史了&#xff0c;平时pm提的需求会分给不同的前端人员做&#xff0c;对插件引入和请求外部资源也…

frameset框架在.net网站中的小实现。

一般我们生成网页&#xff0c;为减少代码的开发量&#xff0c;通常将不变的网页部分进行重用。通用为三种方法&#xff1a; 1.frameset框架 2.用户自定义控件 3.母版页&#xff08;消耗资源大&#xff0c;不追叙&#xff09; 通常1&#xff0c;2两种方法常用。 1.frameset框架 …

《大型网站技术架构》学习笔记-01概述

李智慧老师的大型网站架构已经买了两年了&#xff0c;之前大体看过一次&#xff0c;不过还未内化为自己的本领&#xff0c;最近项目空闲&#xff0c;决定尽力掌握这部分的知识&#xff0c;以跟上大师的节奏。今天是儿童节&#xff0c;祝自己和大家心态永远年轻&#xff0c;即使…

网站搭建之PHP环境配置!

不知道是不是今日头条进行了系统升级&#xff0c;标题居然可以写这么长一串文字&#xff1a;“对于一个想在阿里云ECS服务器上搭建网站的小白&#xff1f;解决环境配置成了首要问题&#xff0c;手把手教会PHP环境配置&#xff01;” 不知道有没有和我一样&#xff0c;同在网站建…

一个可以免费去除图片背景的网站

https://www.remove.bg/zh/upload&#xff1a;

网站开启cdn加速的最简单步骤

https://jingyan.baidu.com/article/fedf0737ac414f35ac897704.html https://su.baidu.com/console/website-nosite.html cdn加速是通过一个服务器集群对网站内容建立缓存和镜像&#xff0c;并且通过对网页静态资源的压缩来加快网站的最终访问速度&#xff0c;但是对于大部分的…

如何快速修改,网站优化常见的几个错误?

SEO优化是一项复杂的系统工程&#xff0c;它需要花费大量的时间&#xff0c;才能够完成一个阶段的小目标&#xff0c;但是对一些标准性的搜索引擎优化必备因素&#xff0c;却可以快速的调整&#xff0c;俗语说&#xff1a;万丈高楼平地起&#xff0c;打好坚实的基础才能走的长远…

网页数据库管理php,用数据库管理网站内容,PHP写一个网站小案例——2019年7月25日23时38分...

1.用database.php return数据库信息&#xff1b;2.用connect.php 导入database.php文件&#xff0c;PDO连接数据库&#xff1b;3.在公共头文件header.php导入connect.php文件连接数据库&#xff0c;获取来自数据表的网站内容4.用select来查询数据表的网站内容&#xff0c;然后进…

大型网站技术架构读书笔记

2019独角兽企业重金招聘Python工程师标准>>> 网站架构要素 性能 现象 网站慢解决办法&#xff1a; 浏览器&#xff1a; 浏览器缓存、页面压缩、减少cookie传输&#xff0c;减少http请求&#xff0c;合并CSS,图片&#xff0c;JS&#xff0c;启用压缩 网络&#xff1a…

网易云易盾亮相2018软博会 政企网站安全监测服务受关注

探寻新时代软件产业发展新路径&#xff0c;聚焦数字经济发展方向&#xff0c;把脉“深度融合”前景&#xff0c;解析人工智能未来发展趋势&#xff0c;6月29日至7月2日&#xff0c;2018软博会在北京盛大召开&#xff0c;多位部委级、省市级等多位领导&#xff0c;两位“两院”院…

跟我一起数据挖掘(20)——网站日志挖掘

收集web日志的目的 Web日志挖掘是指采用数据挖掘技术&#xff0c;对站点用户访问Web服务器过程中产生的日志数据进行分析处理&#xff0c;从而发现Web用户的访问模式和兴趣爱好等&#xff0c;这些信息对站点建设潜在有用的可理解的未知信息和知识&#xff0c;用于分析站点的被访…

Ubuntu 安装php环境 lamp 搭建网站

1.Apache安装 首先安装apache服务器&#xff0c;ubuntu下面使用apt-get来下载安装软件。 sudo apt-get install apache2 输入密码后&#xff0c;便开始下载安装了&#xff0c;安装好后打开浏览器&#xff0c;输入localhost查看是否安装成功 如果如上显示的话&#xff0c;说明安…

《大型网站技术架构》-读书笔记一:大型网站架构演化

大型网站的技术挑战主要来自于庞大的用户&#xff0c;高并发的访问和海量的数据 1、使用缓存改善网站性能 网站使用的缓存可以分为两种&#xff1a;缓存在应用服务器上的本地缓存和缓存在专门的分布式缓存服务器上的远程缓存 2、使用应用服务器集群改善网站的并发处理能力 使用…

个人网站项目截图

项目源码:https://gitee.com/wuhan1/park-parent PC端效果图 小程序段效果(持续开发中)