Internationalization 开发多语言web应用程序的步骤

Internationalization 开发多语言web应用程序的步骤,internationalization,globalization,Internationalization,Globalization,开发多语言web应用程序的步骤是什么 我应该在数据库中存储语言文本和资源,还是应该使用属性文件或资源文件 我知道我需要将CurrentCulture与C#单独与CultureFormat等一起使用 我想知道您对构建多语言web应用程序步骤的看法 不必是特定于语言的。我只是在寻找构建这个的步骤。第一步是。第二步是完成。第三步是。具体的机制因您开发的平台而异 作为一组粗略的工作项: 代码与内容的分离。通常,资源在资源文件(在dot中)的帮助下编译成程序集,或存储在属性文件(在java中,尽管有其他选

开发多语言web应用程序的步骤是什么

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

我知道我需要将CurrentCulture与C#单独与CultureFormat等一起使用

我想知道您对构建多语言web应用程序步骤的看法


不必是特定于语言的。我只是在寻找构建这个的步骤。

第一步是。第二步是完成。第三步是。

具体的机制因您开发的平台而异

作为一组粗略的工作项:

  • 代码与内容的分离。通常,资源在资源文件(在dot中)的帮助下编译成程序集,或存储在属性文件(在java中,尽管有其他选项)或其他位置,并由ID引用。如果您希望本地化成本合理,则需要避免在发布之间更改ID,因为大多数本地化工具将新ID视为新内容
  • 识别应用程序中对用户的区域设置做出假设的区域,特别是日期/时间、货币、数字格式或输入
  • 为特定于语言环境的CSS内容创建一些机制;并非所有字体都适用于所有语言,也并非所有字体大小都适用于所有语言。不要把自己画成一个角落,强迫泰语文本显示在8磅。另外,对于至少两种语言,文本方向性将是从右向左的
  • 设计页面内容,使其在出现比预期内容更多或更少的内容时能够合理地回流或调整大小。对于短字符串,许多语言从英语扩展到50-80%,对于较长的内容,扩展到30-40%(这是一个粗略的经验法则,不是法律)
  • 确定你的用户界面设计师所做的文化假设,并尝试使它们更加中性,或者,如果你有足够的钱和理智,可以本地化。邮箱在任何地方看起来都不一样,手势也不是通用的,可爱、聪明或依赖视觉双关语的东西也不一定能很好地传播
  • 为支持的语言选择适当的编码。现在,对发送到web浏览器的所有内容使用UTF-8是合理的,而不考虑语言
  • 如果要处理数据库中多种语言的内容,请为数据库选择适当的排序规则,或启用备用排序规则。不区分大小写在许多语言中的作用与在英语中的不同,重音不区分在某些语言中是可以接受的,而在其他语言中通常是不合适的
  • 如果您试图支持搜索,请不要假设单词由空格分隔,或者句子由标点符号分隔
  • 避免:

  • 在数据库中存储本地化内容,除非有非常非常好的理由。然后,再想想。如果您的内容有些动态,并且每个区域的代表都需要对其进行自定义,那么使用关联的区域设置ID存储某些类别的内容可能是合理的
  • 试图巧妙地使用字符串连接。此外,不要认为多元化或计数的规则对每种文化都是一样的。至少要确保字符串(和控件)的顺序可以用平台上典型的格式字符串指定,或者如果出于某种原因选择使用自己的格式字符串,则可以在本地化工具包中详细记录
  • 假设本地化程序可以修复代码错误。这通常是不合理的,至少如果你想在合理的时间内以合理的成本交付你的产品;有时甚至不可能

  • 回答得很好。我并不反对你们在数据库中存储内容。我对.net不太确定,但当你对资源文件进行更改,从而编译到附属程序集或程序集时,应用程序将不得不重新加载等。此外,如果是门户或CMS,我认为使用数据库存储本地化内容比资源或属性文件更有意义。你怎么想?我基本上就是这么说的;如果您的内容是动态的,那么将数据库中的内容标记为区域设置ID可能是合理的。但是,我实际上看到了存储在数据库中的“所有”UI内容,甚至是不打算动态更改的菜单和项目,这就导致了相当可观的资源利用率,除了升级应用程序外,这些资源基本上不应该改变。