有没有好的数据库国际化解决方案?

问题描述

有没有好的数据库国际化解决方案?

国际化是软件实现多语言支持的要求。
如果只是界面的一些标题和提示语,很好实现,不多说。
但假如数据库里的字段要实现国际化就犯难了,我一直没有想好一个最佳实践,求大神指教。

解决方案

Android的国际化就实现的挺好,参考文章如下

android国际化(多语言)

  1. 很大程度上,为什么我们能如此方便的实现国际化、分辨率匹配等?

    主要就是得益于 Android 中这种独特的资源管理方式。程序员的代码可以不直接和资源发生关系。Android 中,我们通常通过 R 文件提供的索引来间接的引用某一个资源。而如何维护资源索引和真正的资源之间的关系,这个活,却是 Android 系统来做的。

    这里面就可以大作文章了不是么?

    我说过,最了解用户手机的,不是用户也不是程序员,而是Android操作系统。它最了解用户当前使用的是什么语言,最了解用户当前手机的分辨率是多少,了解电量,了解内存情况...等等。

    既然你对自个的情况这么了解,为什么不自己把所有能完成的事情都做了?不要麻烦程序员好吧?好的,所以 Android 在这方面做得非常优秀。

    基于这个角度,我们要转换的观念为:有可能,R 文件中的索引,并非是和资源一对一的。例如我们以前认为它就一定是对应了一张图片,对应了一个字符串,对应了一个布局文件。

    而很可能,Android 其实会根据用户当前使用的环境对应几套方案:例如本文所讲的主题,从国际化角度,可能对应中文环境方案,英文环境方案?那么,这时候 R 文件对应的这个资源便不确定起来,当我们通过 R 文件调用一个图片资源显示在窗口上时,Android 操作系统会自动根据用户当前的环境,而选用最合适的图片(这个挑选过程却是透明的)。

    程序员可以干预的是:英文环境到底对应哪套方案?中文环境对应到底哪套方案?

    OK。这就简单了。

  2. Android 中要实现国际化比较简单。

    字符串国际化:只要在 res 文件夹下新建对应语言的 values 文件夹就好了,

    如,英语环境下的,文件夹命名为:values-en

    美国英文环境:values-en-rUS

    中文环境为:values-zh

    大陆地区中文环境: values-zh-cn

    在 eclipse 下新建 Android 项目时,会在 res 目录下自动创建一个默认语言环境的文件夹 : values

    当某一个资源没有在语言环境的对应的资源集合中找到时,就会使用 values 下的资源。

    若某一个语言环境没有在项目中定义语言环境,那么也会使用 values 下的资源。

  3. 图片国际化

    同理。

    在 res 下新建 drawable-zh 文件夹,存放中文环境下的图片

    新建 drawable-en 作为英语环境下的图片

    在 eclipse 下新建 Android 项目时,会在 res 目录下自动创建三个默认语言环境的文件夹:

    drawable-hdpi

    drawable-ldpi

    drawable-mdpi 
    
    分别用于存放高、中。低分辨率的图片。Android 系统会根据手机的分辨率,而自动从不同的对应的某一个文件夹下去加载图片。 
    
    同样,它们也可以国际化,命名规则如: 
    
    drawable-zh-hdpi 
    
    drawable-en-ldpi 
    
    drawable-en-rUS-mdpi
    

    使用。在 XML 中需要使用到图片的地方用表达式: @drawable/icon

    代码中使用:R.drawable.icon。因为图片资源同样也会在 R 文件中生成一个索引

android多国语言文件夹文件汇总如下:

中文(中国):values-zh-rCN
中文(台湾):values-zh-rTW
中文(香港):values-zh-rHK
英语(美国):values-en-rUS
英语(英国):values-en-rGB
英文(澳大利亚):values-en-rAU
英文(加拿大):values-en-rCA
英文(爱尔兰):values-en-rIE

英文(印度):values-en-rIN
英文(新西兰):values-en-rNZ
英文(新加坡):values-en-rSG
英文(南非):values-en-rZA

阿拉伯文(埃及):values-ar-rEG
阿拉伯文(以色列):values-ar-rIL
保加利亚文: values-bg-rBG
加泰罗尼亚文:values-ca-rES
捷克文:values-cs-rCZ
丹麦文:values-da-rDK
德文(奥地利):values-de-rAT
德文(瑞士):values-de-rCH
德文(德国):values-de-rDE
德文(列支敦士登):values-de-rLI
希腊文:values-el-rGR
西班牙文(西班牙):values-es-rES
西班牙文(美国):values-es-rUS
芬兰文(芬兰):values-fi-rFI
法文(比利时):values-fr-rBE
法文(加拿大):values-fr-rCA
法文(瑞士):values-fr-rCH
法文(法国):values-fr-rFR
希伯来文:values-iw-rIL
印地文:values-hi-rIN
克罗里亚文:values-hr-rHR
匈牙利文:values-hu-rHU
印度尼西亚文:values-in-rID
意大利文(瑞士):values-it-rCH
意大利文(意大利):values-it-rIT
日文:values-ja-rJP
韩文:values-ko-rKR
立陶宛文:valueslt-rLT
拉脱维亚文:values-lv-rLV
挪威博克马尔文:values-nb-rNO
荷兰文(比利时):values-nl-BE
荷兰文(荷兰):values-nl-rNL
波兰文:values-pl-rPL
葡萄牙文(巴西):values-pt-rBR
葡萄牙文(葡萄牙):values-pt-rPT
罗马尼亚文:values-ro-rRO
俄文:values-ru-rRU
斯洛伐克文:values-sk-rSK
斯洛文尼亚文:values-sl-rSI
塞尔维亚文:values-sr-rRS
瑞典文:values-sv-rSE
泰文:values-th-rTH
塔加洛语:values-tl-rPH
土耳其文:values--r-rTR
乌克兰文:values-uk-rUA
越南文:values-vi-rVN

解决方案二:

谢谢你的回答,可是没答到点子上啊,我问的是数剧库实现国际化。。。,我从数据库取出来的数据有多个国家的版本。

问题: 数据库如何设计

解决方案三:

这个跟数据库设计无关,我觉得是一个数据模型,不同的示例,数据结构完全相同,只是存储的内容不同,或者存储的内容也是标准的,但是输出的环节有了不同的解析和翻译

时间: 2024-12-30 03:06:35

有没有好的数据库国际化解决方案?的相关文章

数据库进程间通信解决方案

数据库进程间通信解决方案 数据库与其他第三方应用程序进程间通信解决方案 Mr. Neo Chen (netkiller), 陈景峰(BG7NYT) 中国广东省深圳市龙华新区民治街道溪山美地518131+86 13113668890+86 755 29812080<netkiller@msn.com> $Id: MySQL-plugin.xml 587 2013-12-16 14:00:00Z netkiller $ 版权 2011, 2012, 2013 http://netkiller.gi

Window Mobile RDA数据库操作解决方案研究

Window Mobile RDA数据库操作解决方案研究 一.RDA (Remote Data Access ) 远程数据访问     简单介绍:远程数据访问 (RDA) 使移动应用程序能够访问远程 SQL Server 数据库表中的数据,并将这些数据存储在本地 SQL Server Mobile 数据库表中.随后,该应用程序就可以读取和更新本地 SQL Server Mobile 数据库表.SQL Server Mobile 可以选择跟踪对本地表所做的所有更改.之后,应用程序可以将本地表中更改

云计算的时代,出现分布式存储和分布式数据库的解决方案

数据存储主要有两种方式:Database和FileSystem,后面发展出了Object-oriented storage,但是总的来看就是存储结构化和非结构化数据两种. DB开始是为了结构化数据存储和共享而服务的.FileSystem存储和共享的是大文件,非结构的数据,像图片,文档,影音等.随着数据量的增大,单机存储已经不能满足结构化和非结构化数据的需求,那么在云计算的时代,就出现了分布式存储和分布式数据库的解决方案. 1,File System, Object-oriented storag

c#-多余千个客户端访问数据库的解决方案

问题描述 多余千个客户端访问数据库的解决方案 老大昨天让我想一个解决方案出来,但是我还在实习不是特别懂希望有人能帮助我. 没有C币了谢谢 解决方案 几千个单台服务器肯定吃不消,需要用多个服务器,读写分离,分库分表 参考:http://www.mamicode.com/info-detail-252110.htmlhttp://blog.csdn.net/kobejayandy/article/details/8775255http://m.blog.csdn.net/blog/xiaohan19

DSG企业数据库迁移解决方案

随着业务的不断拓展,我们经常需要对系统进行调整,比如:存储系统升级.服务器升级.平台的迁移.数据库版本升级等等,这些情况我们都需要借助数据迁移工作来完成. 在迁移过程中,我们经常会遇到一些很难解决的问题.因为,如果是在相同的操作系统平台.或相同的数据库平台之间做数据库的迁移,会有较多解决方案能够实现:但是,如果在异构环境下,做操作系统的升级或变更.数据库的升级.存储设备的升级等等,都大幅度地提高了迁移的复杂程度. 数据库数据迁移的具体需求往往是: 1.数据库版本异构版本升级:如Oralce 8i

共享一劳永逸的数据库编码解决方案

问题提出 现在几乎所有的应用系统都无法避免使用数据库系统.在JAVA世界里访问数据库是一件非常轻松的事情,JDBC为JAVA应用程序访问数据库提供了一个统一的接口,通过使用JDBC接口开发者无需关心系统最终采用哪种数据库,因为JDBC仅仅是定义了访问几个JAVA的接口类,具体的实现是由数据库厂商提供的,这种做法其实与其他数据库连接方式例如ODBC是类似的.但是在实际的应用过程中,开发者发现离JDBC设计的初衷还是有一定距离,就比如说在存储字符串时的编码问题,我想很多开发者都会遇见这个问题,倒不是

企业网站数据库安全管理解决方案?

问题描述 随着企业的不断壮大,庞大的数据积累使得数据库越来越难管理,对企业而言数据库的管理和维护付出了许多人力财力等等效果并不是很理想,现在好了!中国数据为企业提供了服务器租用及托管服务,这就使得企业在这个方面省了很多心,中国数据是专业的服务器租用托管提供商,在机房每天都有专业技术人员24小时值班,保障机器24小正常运行,节假日均有人值班!这样使得我们的企业能更好的进行日常工作,企业能够专心的在自己的领域发展壮大!再也不用担心服务器会出问题影响工作开展了!中国数据是江苏电信总代理,在南京.北京.

数据库乱码解决方案

解决|数据|数据库 你插入数据的时候,用/*** 转变字符串的乱码函数* @param str* @return*/public String getStr(String str){try{String temp_p = str;byte [] temp_t = temp_p.getBytes("ISO8859-1");String temp = new String(temp_t);return temp;}catch(Exception e){return "null&q

个人主页的数据库ASP解决方案

个人主页|解决|数据|数据库       如今,CGI日渐衰落,ASP大行其道,大有取而代之之势.对个人主页制作者而言,CGI也确实太复杂了,尤其是在数据库的操作上,繁复无比让人望而生畏.相较而言, ASP则简单得多.其面向对象的思想,将复杂的底层操作掩盖,只留下简单的调用接口.对数据库的操作更是将它的优点体现得淋漓尽致. 本文将简单介绍在个人主页中运用ASP连接数据库,实现动态网页.相信您在读完本文后,您的主页将更加精彩. 1.在ASP中查询ACCESS 数据库 ASP能让我们用简单的方法在网