我现在想做一个国际化网站,国际化部分的要求如下:
1,页面部分都是独立的,不同语言用不同的静态页面(这部分己完成)。
2,根据当前系统语言来选择不同的语言页面(这个怎么做???)
3,DB中的数据字典(如地区级连表,产品表)应该怎么存放,是一种语言一个表呢,还是说放在一个里面用不同的标志位来区分?主要是第三点,我想用一个名存不同的语言不知道可以不????大家帮给出个方案!!兄弟在这里先谢谢了。。

解决方案 »

  1.   

    用不同的数据表,通过主键关联。问题并不复杂。
    另外问一下,为什么非得要保存在数据库中呢?用xml式的配置文件不好吗?可以参考struts。
      

  2.   

    1.可以考虑使用struts的国际化功能(我的做法是根据客户选择的语言来读不同properties里的内容,我没用struts)
    2.同上,该功能可以自动获取浏览器默认语言来选择显示哪种语言
    3.我的做法是使用两个字段相同表结构相同的两个database,并根据客户的语言选择来选择具体建立哪个database/url的数据库连接,但在这之上的dao层与servlet层是不用变的
      

  3.   

    我做个一件同样的事情.我们做法是把他们放在了同一个表中.
     id   cid    string  
      1   zh_CN   中国
      2   en_US   china查询的时候读下local信息 由查询条件+local信息联合查询.struts再厉害也不能把动态信息,随时翻译成不同的语言啊!楼主的意思是数据库里面的动态信息怎么国际化的问题.
      

  4.   

    同意16楼,放在一个表里。
    KEY     LANGUAGE    VALUE
    key_CN  zh_CN       中国 
    key_CN  en_US       China 
      

  5.   

    把需要国际化的数据字段分Zh,En分别建在同一张表里面
    例如:table people
    1 chinaName varchar(20) 中文
    2 englishName varchar(20) 英文 struts中bean类
    class People{
    private String languageKey;//语言的种类
    private String chinaName ;
    private String englishName ; //bean类属性字段和数据库列相对应,关联。可以用hibernate等实现
    }建2个xml文件 实现信息国际化 xx_zh.properties(存中文信息),xx_en.properties(存英文信息)jsp叶面建个checkbox存放languageKey,选择中文还是英文action业务逻辑
    通过获取jsp叶面的languageKey的值,来存或取数据库中相应的是中文还是英文信息
    简单说了下流成,希望对你有帮助
      

  6.   

    用资源文件做
    struts.custom.i18n.resources=ch2.reg.globalMessages ,struts 框架可以根据这个找到游览器或系统语言来确定语言globalMessages_en_US.properties
    globalMessages_zh_CN.properties
    两个资源文件,需要将其保存到WEB-INF/classes
    struts2 加载资源文件是通过配置文件来实现,struts2 的全局属性文件是struts.properties,也要保存到classes文件目录下
    struts2 会根据basename,按照"basename_语言代码_国家代码.properties"的定义规则加载相应的资源文件
      

  7.   

    中文
    HelloWorld=\u4f60\u597d\uff0c\u4e16\u754c
    name=\u7528\u6237\u540d\u79f0
    pass=\u7528\u6237\u5bc6\u7801
    username=\u7528\u6237\u540d
    password1=\u5bc6\u7801
    password2=\u786e\u8ba4\u5bc6\u7801
    birthday=\u751f\u65e5
    struts.messages.error.file.too.large=\u4e0a\u4f20\u6587\u4ef6\u8fc7\u5927
    struts.messages.error.content.type.not.allowed=\u4e0a\u4f20\u7684\u6587\u4ef6\u5fc5\u987b\u662f\u56fe\u50cf\u6587\u4ef6
    struts.messages.error.uploading=\u4e0a\u4f20\u6587\u4ef6\u8fc7\u7a0b\u4e2d\u51fa\u73b0\u5f02\u5e38
      

  8.   

    英文
    HelloWorld=Hello World!!!!!!!!!!!!!
    name=userName
    pass=password
    username=Your Name
    password1=Password
    password2=confirm Password
    birthday=Birthday自己的一些例子,互相学习
      

  9.   

    java的国际化方式决定了你不是用不同的页面,而是在页面里面引用在不同的messages文件里面定义好的不同语言的键所对应的属性值。具体这个国际化环境的搭建,好像有很多工具都有配套的messagesouce实现。
      

  10.   

    首先做一个标准的数据表。以英语的为标准。再建立一张表,字段为每一种语言。每条信息就是网站各文字。如下:
    Word      Japanese    Chinese   Korean
    Create     创建       创建      创建这样,到时再取出来。生成静态页面。这样可以一一对应。
      

  11.   


    赞同!!
    id  cid    string 
      1  zh_CN  中国
      2  en_US  chin
      

  12.   

    1、尽量使用resourceBundle
    2、本地化资源要存入数据库时,最好将对应各种语言的资源存放到一个表里,添加locale字段标识其属于哪种语言。
      

  13.   

    还是放在property文件里比较好
      

  14.   

    那些类似于放在property文件里之类的方法,只是针对页面静态显示的,楼主的第1点已经解决了这个问题,大家就不要再提啦数据库里面的:
    A   多语言要求简单的,直接在同一个表里多加个字段:比如 id  name_cn  name_en name_jp,根据本地语言操作对应字段。
    B   如果要求的语言比较多,可以考虑表切换,或数据库切换;
      

  15.   

    数据库表里存国际化的key就行吧