代码之家  ›  专栏  ›  技术社区  ›  bmdhacks

国际化Web应用程序的最佳实践?

  •  33
  • bmdhacks  · 技术社区  · 16 年前

    将web应用程序国际化似乎总是件麻烦事。不管你对可插入语言做了多大的计划,编码、不适合你的模板的时髦措辞和其他问题总是会有问题。

    我认为,在决定将其web应用程序国际化时,获得so社区对一组程序员应该注意的事情的输入是很有用的。

    4 回复  |  直到 9 年前
        1
  •  49
  •   Ryan Doherty    16 年前

    国际化是很难的,以下是我在与两个使用20多种语言的网站合作时学到的一些东西:

    • 在任何地方都使用UTF-8。没有例外。html、服务器端语言(特别注意php)、数据库等。
    • 图片中没有文本,除非你需要大量的工作。如果需要,使用css将文本放到图像上。
    • 将配置与本地化分开。这样,本地化器可以翻译文本,并且可以处理每个区域(特征、布局等)的不同配置。你不希望本地化程序能够干扰你的应用程序。
    • 确保你的布局能处理比英语长2-3倍的文本。也比英语少50%(日语和汉语通常更短)。
    • 有些语言需要更大的字体大小(日语、中文)
    • 颜色也是特定于地区的。红色和绿色在任何地方都不是同一个意思!
    • 在文档的主体标记中添加一个作为区域设置名称的类名。这样你就可以很容易地在CSS文件中指定一个特定的区域布局。
    • 注意变量替换。不要拆线。把它们整成这样:“您有x条新消息”,并用替换“x”。
    • 不同的语言有不同的复数形式。0,1,2-4,5-7,7-无穷大。很难处理。
    • 上下文很难理解。有时本地化程序需要知道字符串的使用位置/方式,以确保它被正确翻译。

    资源:

        2
  •  9
  •   Kip    9 年前

    在我的公司中,所有字符串都存储在*.properties文件中。我们的生成工具生成属性文件的“test language”副本,该副本替换如下字符串:

    Click here
    

    像这样的:

    [~~ Çļïčк н∑ѓё ~~ タウ ~~]
    

    现在,当我们在配置文件中将语言设置为“test”时,将使用这些属性文件。(当然,我们不提供测试语言文件)。

    这使我们能够:

    1. 确保Unicode字符正确显示,包括日语/中文/韩语。
    2. 确保布局比例适合于单词较长的语言(尤其是德语的单词平均比英语长)。
    3. 找出任何硬编码字符串(因为它们将是纯英语的)。

    至于实际的翻译,这是由专业翻译,而不是开发人员完成的。

        3
  •  1
  •   planetjones    10 年前

    作为一个生活在国外的英国人,我对许多web应用程序的国际化方法感到沮丧,并且 blogged about my frustrations .

    我的建议是:

    • 想一想如何展示一个国际版的页面
    • 使用地理定位可能对很多用户都有效,但正如我的示例所示
    • 为什么不使用accept language头来确定要服务的语言
    • 如果用户通过搜索引擎访问某个页面,则不要将其重定向到其他地方,例如指向不同语言的主页
    • 更改语言并重新加载不同的页面是非常烦人的-要么为同一个页面提供服务,要么在重定向之前警告用户当前内容不能使用不同的语言
    • 英语是一种很常见的语言,所以也许默认了
    • 但是要确保gui上的change language选项是清晰的(我喜欢google地图所做的,如本文所示)

    我在网上看到的只是公司内部化的错误。从用户的角度正确地理解它确实很棘手。

        4
  •  0
  •   WACM161    16 年前

    我有几个“双语”应用程序 我在asp.net1.1中使用了资源文件

    还有一种叫做字符串资源工具 基本上,您将所有字符串放在两种语言的.res文件中,然后根据区域性确定要从哪个文件中读取,或者是否有人单击了该语言的链接

    最大的问题是确保翻译是正确的