关于网站多语言的一些实现方案 (复制文章)

本贴最后更新于 2081 天前,其中的信息可能已经时过境迁

关于网站多语言的一些实现方案(复制文章)

由于全球化的推进,多语言网站开始流行起来,未来的网站可能至少会有双语(中文/英语),对于多语言网站,我给出如下几种方案,希望想要制作多语言网站的人能够从中找到适合自己的。

出处: http://www.ytmp.net/forum.php?mod=viewthread&tid=245&extra=page%3D3

方案一:引入谷歌翻译器
此方案博主早先试过了,翻译成英语还行,其他基本看不懂了,要求不是很高的可以试试,还是挺不错了

谷歌翻译推出了一个在线翻译网站的神器,你可以通过接入谷歌翻译器来实现多语言网站。
但是,目前谷歌被墙,所以此方案可能暂时无法实现,未来谷歌回归中国,还是可以使用此方案的。
推荐指数:❤❤❤

方案二:动态设置模板
即网站使用模板可以动态设置,制作网站的时候,同时制作多个语言版本的模板,栏目和文章都定制(一个中文,一个英文)。原系统模板只能后台设置使用的模板,也就是写入配置文件中,我个人觉得不要修改配置文件为好,所以为了安全,将模板读取修改为读取数据库的数据,这样就可以安全多了。
缺点:工作量比较大。
推荐指数:❤❤❤❤

方案三:制作多语言插件(参考 wordpress 本地化设计)
这个难度有点大,不过应该是最理想的实现多语言网站的方法。
自定义一个翻译方法,比如:_lang()
此方法用于翻译文字,将数据传入_lang 方法里面,此方法读取语言包,如果有对应语言包,那么将翻译成对应的语言,如果没有则返回字符串。
语言包制作:键值对的形式,首选读取网站所有的文字数据,然后对应进行人工翻译,可制作多种语言包,进行相应设定,_lang 方法将读取语言包里对应的翻译语言,这样就实现多语言版本。(说起来比较抽象,下面给出个例子)

模板页面中:{fun _lang('世界你好 <--> hello world!')}//注:doyo中使用_lang方法 Functions.php中: public function _lang($word){ //制作一个表,读取表中设定的语言字段,此字段可以前台传入数据进行修改 $lang=DB('language')->select(xxxxx);//读取当前模板使用的语言 $lanlist=require(xxx);//引入多语言包,键值对的文件,可以是return array($word=>'bbb'); if($lanlist[$word]){ return $lanlist[$word]; }else{ return $word; } }

语言包文件:language.php
return array(‘aa’=>’xxx’,’bb’=>’sada’….);//此为举例,语言包可以制作成其它的,看个人喜好。
多语言包插件制作就介绍到这里,其中有许多简略部分,因为我也没有制作~
推荐指数:❤❤❤

以上,希望对各位有所帮助~

  • 国际化

    i18n(其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数)是“国际化”的简称。对程序来说,国际化是指在不修改代码的情况下,能根据不同语言及地区显示相应的界面。

    8 引用 • 26 回帖 • 3 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • 安全

    安全永远都不是一个小问题。

    203 引用 • 818 回帖 • 2 关注
  • GAE

    Google App Engine(GAE)是 Google 管理的数据中心中用于 WEB 应用程序的开发和托管的平台。2008 年 4 月 发布第一个测试版本。目前支持 Python、Java 和 Go 开发部署。全球已有数十万的开发者在其上开发了众多的应用。

    14 引用 • 42 回帖 • 811 关注
  • BAE

    百度应用引擎(Baidu App Engine)提供了 PHP、Java、Python 的执行环境,以及云存储、消息服务、云数据库等全面的云服务。它可以让开发者实现自动地部署和管理应用,并且提供动态扩容和负载均衡的运行环境,让开发者不用考虑高成本的运维工作,只需专注于业务逻辑,大大降低了开发者学习和迁移的成本。

    19 引用 • 75 回帖 • 666 关注
  • Facebook

    Facebook 是一个联系朋友的社交工具。大家可以通过它和朋友、同事、同学以及周围的人保持互动交流,分享无限上传的图片,发布链接和视频,更可以增进对朋友的了解。

    4 引用 • 15 回帖 • 448 关注
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    239 引用 • 224 回帖
  • Follow
    4 引用 • 12 回帖 • 11 关注
  • 倾城之链
    23 引用 • 66 回帖 • 168 关注
  • BookxNote

    BookxNote 是一款全新的电子书学习工具,助力您的学习与思考,让您的大脑更高效的记忆。

    笔记整理交给我,一心只读圣贤书。

    1 引用 • 1 回帖
  • 印象笔记
    3 引用 • 16 回帖
  • Angular

    AngularAngularJS 的新版本。

    26 引用 • 66 回帖 • 549 关注
  • 微服务

    微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。

    96 引用 • 155 回帖 • 3 关注
  • Gzip

    gzip (GNU zip)是 GNU 自由软件的文件压缩程序。我们在 Linux 中经常会用到后缀为 .gz 的文件,它们就是 Gzip 格式的。现今已经成为互联网上使用非常普遍的一种数据压缩格式,或者说一种文件格式。

    9 引用 • 12 回帖 • 166 关注
  • MongoDB

    MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是一个基于分布式文件存储的数据库,由 C++ 语言编写。旨在为应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。

    91 引用 • 59 回帖 • 2 关注
  • JSON

    JSON (JavaScript Object Notation)是一种轻量级的数据交换格式。易于人类阅读和编写。同时也易于机器解析和生成。

    52 引用 • 190 回帖
  • BND

    BND(Baidu Netdisk Downloader)是一款图形界面的百度网盘不限速下载器,支持 Windows、Linux 和 Mac,详细介绍请看这里

    107 引用 • 1281 回帖 • 32 关注
  • 996
    13 引用 • 200 回帖 • 6 关注
  • 强迫症

    强迫症(OCD)属于焦虑障碍的一种类型,是一组以强迫思维和强迫行为为主要临床表现的神经精神疾病,其特点为有意识的强迫和反强迫并存,一些毫无意义、甚至违背自己意愿的想法或冲动反反复复侵入患者的日常生活。

    15 引用 • 161 回帖 • 1 关注
  • JVM

    JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。

    180 引用 • 120 回帖 • 2 关注
  • 周末

    星期六到星期天晚,实行五天工作制后,指每周的最后两天。再过几年可能就是三天了。

    14 引用 • 297 回帖
  • webpack

    webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。

    42 引用 • 130 回帖 • 250 关注
  • SVN

    SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。

    29 引用 • 98 回帖 • 690 关注
  • Openfire

    Openfire 是开源的、基于可拓展通讯和表示协议 (XMPP)、采用 Java 编程语言开发的实时协作服务器。Openfire 的效率很高,单台服务器可支持上万并发用户。

    6 引用 • 7 回帖 • 107 关注
  • Swagger

    Swagger 是一款非常流行的 API 开发工具,它遵循 OpenAPI Specification(这是一种通用的、和编程语言无关的 API 描述规范)。Swagger 贯穿整个 API 生命周期,如 API 的设计、编写文档、测试和部署。

    26 引用 • 35 回帖 • 1 关注
  • SQLite

    SQLite 是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是全世界使用最为广泛的数据库引擎。

    5 引用 • 7 回帖 • 1 关注
  • TensorFlow

    TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。

    20 引用 • 19 回帖 • 3 关注
  • Visio
    1 引用 • 2 回帖
  • 音乐

    你听到信仰的声音了么?

    62 引用 • 512 回帖 • 2 关注