`
tomkoo
  • 浏览: 186246 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

如何实现双(多)语种网站内容的国际化?

阅读更多
如何实现双(多)语种网站,应该也是一个国际化问题中必须要解决的一个问题。

现在用Java都很容易实现国际化,比如中Struts中,如果要实现国际化,我们会配置不同的资源文件,类似如下这般:


    ApplicationResources.properties
    ApplicationResources_zh.properties


这样我们就可以解决国际化的问题,但是有一个问题。这样应该说只是解决了“软件”本生的国际化的问题,而并没有解决用户的国际化问题。也就是说,我们这一套软件可以给中国人,美国人,甚至小日本用,但是用这套软件的客户,如果想这套系统既给中国人用,也给其他国家的人用,那就出问题了。

问题就是:我们现在的国际化只是做到了“软件”本身的国际化,但是“内容”的国际化却没有做到。

现在正在给深圳雅利达公司做他们的中英文网站,于是想到了这个问题。传统的解决方案是做两(N)套一样的系统,用来连接不同语种的数据库。但是这样会不会太麻烦了点?那要是是Microsoft这样的企业,岂不是要做死人?

我想,数据库应该是要多套的,但是应用程序就一套吧,这样,至少我们开发牛要轻松点吧。

不过现在还没有太多的思路。
分享到:
评论
19 楼 BingJetMa 2006-11-04  
tomkoo 写道


对不起各位,可能是我说的不过清楚,我在这里说明一下。

我说的并不是因为编码保存的问题,而是一个系统同时可以支持多种文字,简单说,同一个网站,既有中文版,英文版,法文版......

那么这里就存在一个语言选择的问题,软件本身的语言选择就是我们耳熟能详的“国际化”,根据用户的区域,或者设置选择对应的语言。但是软件中有很多内容是靠用户维护进取的,比如网站首页的“公司新闻”,这样的“内容”要做到选择相应的语言显示就不是前面说的软件“国际化”可以做到的了。

根据各位兄弟的意见,我总结了一下,主要分两类解决方法:

1。 使用智能翻译。根据用户的设置,把内容翻译成对应的语言
2。 为每个语种设计一套数据库,维护“内容”时,每种语言都维护进去
3。 设计一套适用多种语言的数据库。例如使用一个数据字典来定义每一种语言,然后在维护每一种语言进去

我个人比较倾向第3种方案,因为我是比较怕麻烦的人,hoho,第一种比较困难,第二种工作量也太大了点吧。

我的方案大致如下:

建立两张表,Language和Content,Language相当于一个数据字典,列出系统用到的所有语种。Content表就是维护的内容——也就是我们想解决的多语种显示的东西。两张表表样如下:

Language

  id---- |---langeuage----|---description----
  1-----|---------zh---------|------中文---------
  2-----|---------en---------|------英文---------
  3-----|---------fr---------|------法文---------


Content


id----|---content------------------|---languageId------
1-----|----你好!-------------------|------1------------
2-----|----How are you!----------|------2------------
3-----|----fa wen bu hui---------|------3------------


这样Content表中就保存了需要语种的所有的语言信息(当然要维护进去),然后再根据用户的需要,对应Language表选择出对应语种的Content内容。

不知道大家意见如何?


大家讨论的其实是CMS(内容管理发布系统),支持多语言的CMS。

假定要发布中,英,法三种语言的网站,国际化用来解决的是后台管理界面,时间,货币本地化的问题,而不是网站内容的国际化。

网站的内容,不是一个content字段可以涵盖的,要对整个网站进行抽象,一般由首页,栏目,专题,新闻这些实体或对象组成,不同实体的属性也不太一样,以新闻为例,标题,内容,摘要,媒体……,做多语言的话这些属性都要有对应的其他语言的翻译,对于语言来说在实际的发布系统中用频道的概念替代,如中文,英文,法文频道,从属关系如下 频道 - 首页 - 栏目/专题 - 新闻

所以对于实际的内容发布系统,没有必要记录每个实体的语言是那种,网站的结构是一棵树,多语言网站是平行的几棵树,只要在根上区分就可以了,属于哪个频道。对于实体和实体之间的对应关系是需要额外的表来记录,multilan_relative(china,english,france)
18 楼 tomkoo 2006-11-04  
bigpanda 写道
1. language code是ISO标准,用来做主键就够了。

2. language code和content id和起来做复合主键,没有必要外加个没有任何信息的id


在这个Id我倒是并不这样认为,虽然 language code 和 content id 都符合做主键的要求,但是都属于“业务主键”,而用业务主键如果以后改动将非常麻烦,使用我还是认为加一个Id作为“逻辑主键”比较好。不过这个好像不是我们这里要讨论的了,哈哈。

关于“业务主键”和“逻辑主键”的讨论,在很久以前,robbin和庄表伟等大牛就发起了一阵讨论狂潮,可以在论讨搜索一下这个帖子。
17 楼 bigpanda 2006-11-04  
1. language code是ISO标准,用来做主键就够了。

2. language code和content id和起来做复合主键,没有必要外加个没有任何信息的id
16 楼 LucasLee 2006-11-03  
buaawhl 写道

如何识别 content  1, 2, 3 这三条记录属于同一条信息的不同语言版本?


没错,看来还要加一个字段,标识属于同一条逻辑信息.
15 楼 buaawhl 2006-11-03  

如何识别 content  1, 2, 3 这三条记录属于同一条信息的不同语言版本?

14 楼 tomkoo 2006-11-02  
Lucas Lee 写道
我觉得楼主说的不清楚,似乎说到是每个语种的数据库因为有各自的编码而需要分别做?

如果是这样,那么数据库里采用Unicode编码即可。

任何编码的问题,在国际化问题里应该都容易解决的。


对不起各位,可能是我说的不过清楚,我在这里说明一下。

我说的并不是因为编码保存的问题,而是一个系统同时可以支持多种文字,简单说,同一个网站,既有中文版,英文版,法文版......

那么这里就存在一个语言选择的问题,软件本身的语言选择就是我们耳熟能详的“国际化”,根据用户的区域,或者设置选择对应的语言。但是软件中有很多内容是靠用户维护进取的,比如网站首页的“公司新闻”,这样的“内容”要做到选择相应的语言显示就不是前面说的软件“国际化”可以做到的了。

根据各位兄弟的意见,我总结了一下,主要分两类解决方法:

1。 使用智能翻译。根据用户的设置,把内容翻译成对应的语言
2。 为每个语种设计一套数据库,维护“内容”时,每种语言都维护进去
3。 设计一套适用多种语言的数据库。例如使用一个数据字典来定义每一种语言,然后在维护每一种语言进去

我个人比较倾向第3种方案,因为我是比较怕麻烦的人,hoho,第一种比较困难,第二种工作量也太大了点吧。

我的方案大致如下:

建立两张表,Language和Content,Language相当于一个数据字典,列出系统用到的所有语种。Content表就是维护的内容——也就是我们想解决的多语种显示的东西。两张表表样如下:

Language

  id---- |---langeuage----|---description----
  1-----|---------zh---------|------中文---------
  2-----|---------en---------|------英文---------
  3-----|---------fr---------|------法文---------


Content


id----|---content------------------|---languageId------
1-----|----你好!-------------------|------1------------
2-----|----How are you!----------|------2------------
3-----|----fa wen bu hui---------|------3------------


这样Content表中就保存了需要语种的所有的语言信息(当然要维护进去),然后再根据用户的需要,对应Language表选择出对应语种的Content内容。

不知道大家意见如何?


13 楼 bigpanda 2006-11-02  
刚刚完工一个多语的项目,基本上是按布娃娃写的设计的。

系统支持n种语言,对任意一个内容项,都有n种语言。用户在编辑内容的时候,也必须提供n种语言。

不过那个系统要求在任何一页都可以在语言间切换,所以要把每个内容项的语言都缓存在session里面,这样写SQL和对Java对象的映射特麻烦。用alter table来扩充表可能还简单些。
12 楼 ouspec 2006-11-02  
以前我做的一个多语项目也是用数据字段来判断的
11 楼 buaawhl 2006-11-02  
hgq0011 写道
"但是“内容”的国际化却没有做到。"你的意思"内容"是指:比如中国人用,那么它的用中文来描叙自己的内容,小日本就用日文来描叙,,,,然后大家都来看,所有的内容显示的语言有中文,日文,,,,,?
这个确实也是个问题.:(
我所设计过的一个系统这样来处理的.
数据库对应的表的每个字段(已知可能中文用户要看到中文,英文用户要看到英文,,,,,)对应有*CN,*EN类似的字段来表示.
页面采用你所说的I18来处理,中文用户那么它看到的是中文界面,E文用户那么它看到的是E文界面,那么通常他们都会用自己的语言(中文用户用中文)来填写内容.
业务处理:可以在应用的上下文中得到用户使用的语言.如果是CN用户那么把对应的值填写到*CN字段中,那么对应的其它的字段如*EN就由数据库管理员把他们翻译成E文.在显示的时候也是根据客户端的区域选择它所要获取的是那个字段值.

不知道,有没有更好的办法.



我也觉得应该在 db schema design 上解决。

初步想法。

text table 包括如下子段
text_id, topic_id, language_id, the_text

topic 和 text 之间的对应关系是 1 对 多。

比如, topic 1001,对应的 en, cn, jp text如下。

text_id, topic_id, language_id, the_text
1, 1001, en, hello
2, 1001, cn, 你好
3, 1001, jp, xxxx

10 楼 eason007 2006-11-02  
如果单单是内容的保存,utf-8即可。
9 楼 eason007 2006-11-02  
如果单单是内容的保存,utf-8即可。
8 楼 eason007 2006-11-02  
我认为楼主的意思是,内容只需输入一次。但呈现的时候,自动把内容转换为当前操作用户的语种。

即内容只需输入一次,如输入中文,当日文用户浏览的时候,显示对应日文内容;当英文用户浏览时,对应显示英文内容。

应该是指自动翻译的技术?
7 楼 dengyin2000 2006-11-02  
指定数据库字符集是utf不就是了。 难道utf不能保存日文?
6 楼 LucasLee 2006-11-02  
我觉得楼主说的不清楚,似乎说到是每个语种的数据库因为有各自的编码而需要分别做?

如果是这样,那么数据库里采用Unicode编码即可。

任何编码的问题,在国际化问题里应该都容易解决的。
5 楼 xiaoyu 2006-11-01  
java的资源库不单单指字符串。或者properties文件。

扩展应该会容易一些
4 楼 wzgme 2006-11-01  
用户自己选择语言版本。
3 楼 tomkoo 2006-11-01  
用翻译软件肯定不能保证准确性,肯定是不可行的。设计多个语种的数据库是可行的。关键在如何优美的切换到不同语种的数据库。
2 楼 抛出异常的爱 2006-11-01  
数据库存的信息还要用软件给翻译一遍么?
1 楼 hgq0011 2006-11-01  
"但是“内容”的国际化却没有做到。"你的意思"内容"是指:比如中国人用,那么它的用中文来描叙自己的内容,小日本就用日文来描叙,,,,然后大家都来看,所有的内容显示的语言有中文,日文,,,,,?
这个确实也是个问题.:(
我所设计过的一个系统这样来处理的.
数据库对应的表的每个字段(已知可能中文用户要看到中文,英文用户要看到英文,,,,,)对应有*CN,*EN类似的字段来表示.
页面采用你所说的I18来处理,中文用户那么它看到的是中文界面,E文用户那么它看到的是E文界面,那么通常他们都会用自己的语言(中文用户用中文)来填写内容.
业务处理:可以在应用的上下文中得到用户使用的语言.如果是CN用户那么把对应的值填写到*CN字段中,那么对应的其它的字段如*EN就由数据库管理员把他们翻译成E文.在显示的时候也是根据客户端的区域选择它所要获取的是那个字段值.

不知道,有没有更好的办法.

相关推荐

    超简单web页面国际化多语言

    在现代Web开发中,为了让网站或应用能够适应全球不同地区的用户,实现“国际化”(Internationalization,简称i18n)变得越来越重要。本主题主要关注如何通过纯前端技术实现Web页面的多语言切换,让内容能够以用户...

    基于红旗Linux的多语种操作系统的设计.pdf

    在实现多语种Linux操作系统时,我们需要解决许多技术问题,包括国际化框架的设计、输入法和复杂文本层的实现技术等。这些技术问题的解决将有助于提高Linux操作系统的可用性和普及性。 本文的研究结果可以满足新疆...

    精美双语网站源码

    为了实现双语功能,源码可能使用了i18n(国际化)标准,将文本内容与代码分离,便于翻译和维护。 页面结构方面,源码可能包含了首页、产品页、服务页、关于我们页等多种常见的网页模板,每个页面都有对应的中文和...

    上海繁易HMI软件 多语种切换功能介绍.zip

    在国际化的企业环境中,HMI软件的多语种支持能力对于提升用户体验、简化跨国项目沟通具有重要意义。 繁易HMI的多语种切换功能主要体现在以下几个方面: 1. **语言配置**:繁易HMI软件允许开发者根据需求预先设置...

    京津冀协同发展背景下河北省多语种外语人才培养研究.docx

    4. 完善评价体系:构建多元化、国际化的教学质量评估体系,不仅关注学生的语言能力,还要重视跨文化交际能力、专业素养和创新能力的培养。定期进行教学质量反馈和改进,确保培养效果。 5. 加强国际合作:积极与海外...

    Vue.js项目实战之多语种网站的功能实现(租车)

    总结来看,使用Vue.js实现多语种网站是一个结合了前端技术栈多个方面的复杂过程,但通过上述步骤的分解和详细说明,即便不是经验丰富的开发者也能够掌握并实现它。随着现代互联网应用国际化趋势的加剧,这类技能对于...

    joomlafish2.0

    **正文** Joomla!...无论是内容创建、链接管理、语言切换还是后台设置,都得到了完善的处理,提升了网站的国际化水平。对于需要建立多语言网站的用户来说,"joomlafish2.0" 是一个值得考虑的解决方案。

    易语言源码简单的菜单双语转换.7z

    "简单的菜单双语转换"源码是一个易语言编写的程序,主要用于实现软件菜单的中英文切换,这对于开发具有国际化功能的应用程序来说是非常重要的。 在易语言中,菜单通常是通过创建菜单项对象来实现的。每个菜单项可以...

    国际语言环境指南(SUN)

    关于 Solaris 国际化体系结构 当前 Solaris 发行版包含了许多新特性,包括对 UTF-8 语言环境的 Unicode 4.0 支持, 增强了键盘支持并改进了 mp 打印过滤器的几项功能。 Solaris 国际化体系结构简化了世界范围内的...

    双一流建设背景下外语人才培养模式探究.docx

    为了培养出复合型、复语型和国际化拔尖创新人才,北京外国语大学等高校已经在探索新的选拔方式,旨在挑选出有潜力并且对国际事务有浓厚兴趣的学生。这样的改革可以确保学生不仅掌握语言技能,还能在多学科交叉中发展...

    商务网站项目策划书范文.doc

    - **内容**:创建多语种网站,发布西部资源、投资环境等信息,提供定制报告和广告服务。 - **目标**:成为中国西部的宣传窗口和国际投资平台,通过增值服务获得回报。 7. **项目执行**:包括开发多语言网站,重点...

    电缆公司双语版(asp整站)

    这通常涉及到国际化的概念,如使用UTF-8编码以支持多种语言,以及对页面元素进行本地化处理。 【压缩包子文件的文件名称列表】"web"可能代表压缩包内包含的是整个网站的源代码和相关资源文件。这些文件通常包括以下...

    智能化系统设计要求.pdf

    语音导览系统(无线播放系统)采用数字无线传输技术,具有超强抗干扰能力,音质清晰,支持多语种语音讲解,讲解点之间进行切换时,声音淡入淡出,平稳过渡、不间断;保证每个讲解点位都是独立的小系统,如有陈展或...

    楼宇智能化系统解决方案.pdf

    4. 同声传译系统:对于多语种国际会议,同声传译系统能快速便捷地促进交流,提高会议效率。 5. CCTV/CATV 系统和会议电视系统:闭路电视监控用于安全保障,有线电视系统提供娱乐和信息传播,而会议电视系统则支持...

    千博2010多语中英最新升级版

    千博企业网站管理系统是专为企业打造的一款高效、易用的网站管理工具,其2010年发布的多语种版本,特别是中英双语的升级版,进一步提升了系统的国际化能力,适应了全球化的市场环境。这个最新升级版,即“千博2010多...

    国际传播视野下的ChatGPT:应用场景、风险隐忧与走向省思.pdf

    3. **跨国传播模式的重塑**:ChatGPT的多语种适应能力使得它成为跨国信息流通的重要工具。它能够有效地减少语言障碍,加速信息在全球范围内的传播,从而可能改变现有的国际传播格局,促进不同国家间的信息平等和文化...

    6-1+火山翻译:工业级应用与研究.pdf

    为了应对有限的平行语料库和丰富的资源,研究者提出了从单语到双语再到多语种的知识转移策略,以及利用多模态信息(如语音和视觉)引导的翻译方法,以实现简单、快速且准确的翻译。 预训练方法在知识传递中也扮演着...

    多语言翻译

    在现代信息化社会,多语言翻译已经成为了不可或缺的一部分。无论是在国际商务交流、学术研究,还是日常生活中的信息获取,我们都需要依赖各种工具来跨越语言障碍。本文将深入探讨多语言翻译的相关知识点,以及如何...

    浅谈高等教育跨文化管理.docx

    总之,高等教育的跨文化管理是推动教育国际化不可或缺的部分,它涉及到教育理念、管理实践和文化融合等多个层面。有效的跨文化管理策略能够促进留学生教育的健康发展,同时也为高等教育机构的国际化进程注入活力,为...

Global site tag (gtag.js) - Google Analytics