2010-11-30 48 views
0

开发多语言Web应用程序的步骤是什么?开发多等级Web应用程序的步骤

我应该将语言文本和资源存储在数据库中,还是应该使用属性文件或资源文件?

我明白,我需要单独C#使用的CurrentCulture与CultureFormat等

我想知道你的步骤来建立一个多语言的Web应用程序的意见。

不一定是语言特定的。我只是寻找步骤来建立这个。

回答

2

根据您正在开发的平台,具体机制有所不同。

作为一个粗略的一套工作项目:从内容的代码

  1. 分离。一般来说,资源在资源文件的帮助下(以点网格形式)被编译成程序集,或者被存储在属性文件(在Java中,尽管还有其他选项)或其他位置,并且被ID引用。如果您希望本地化成本合理,则需要避免在发布之间更改ID,因为大多数本地化工具都会将新ID视为新内容。
  2. 确定应用程序中有关用户区域设置的区域,特别是日期/时间,货币,数字格式或输入。
  3. 为特定于语言环境的CSS内容创建一些机制;并非所有字体都适用于所有语言,并非所有字体都适合所有语言。不要让自己陷入强迫泰语文本显示在8点的角落。此外,文本的方向性将至少有两种语言从右到左。
  4. 设计您的页面内容,以便在出现比您预期的内容更多或更少的内容时进行合理回流或调整大小。许多语言的英语短字符串占50-80%,较长的内容占30-40%(这是粗略的经验法则,而不是法律)。
  5. 识别您的UI设计师提出的文化推定,并尝试让它们更加中立,或者,如果您有钱和理智来刻录,可本地化。邮箱在任何地方看起来都不一样,手势不通用,而可爱或聪明的东西或依赖视觉双关的东西不一定会传播良好。
  6. 为您的支持语言选择适当的编码。对于发送到Web浏览器的所有内容,使用UTF-8是合理的,无论语言如何。
  7. 如果要处理数据库中多种语言的内容,请为您的数据库选择适当的排序规则,或者启用备用排序规则。不区分大小写在许多语言中的作用与其在英语中的作用不同,在某些语言中强调不敏感性是可以接受的,而在其他语言中通常不适用。
  8. 如果您尝试支持搜索,请勿假定单词由空格分隔,或者句子由标点符号分隔。

避免:

  1. 存储在数据库中的本地化内容,除非有一个真的,真的,很好的理由。然后,再想一想。如果您的内容有些动态,并且每个地区的代表需要对其进行自定义,则可以合理地将特定类别的内容与关联的区域设置ID一起存储。
  2. 试图聪明的字符串连接。另外,尽量不要为每种文化假设关于复数化或计算工作的规则。至少,确保字符串(和控件)的顺序可以使用通常为您的平台的格式字符串来指定,或者如果您选择由于某种原因推出自己的本地化工具包,请在本地化工具包中详细记录。
  3. 假设代码错误可以由本地化人员修复。这通常是不合理的,至少如果你想在合理的时间内以合理的成本交付你的产品;有时甚至不可能。
+0

很棒的回答。我不会与你一起在数据库上存储内容。我不太清楚.net,但是当你对一个资源文件进行修改并因此编译成卫星程序集或程序集时,应用程序将不得不重新加载等。另外,如果它是门户网站或CMS,我认为它会使更多感觉使用数据库来存储本地化的内容比资源或属性文件。你怎么看? – DarthVader 2010-11-30 06:34:27