我想问一个关于在UI上支持多种语言的桌面应用程序的问题。
在我搜索关于这个主题的现有问题时,我想到了单词“International”,所以我选择了国际化标签并阅读了一些匹配的问题。
最终,我意识到我可能应该在标记为本地化的问题下寻找。然而,我似乎不是唯一一个把这两个术语混淆的人。
那么,本地化和国际化之间的关键区别是什么?
另外,它们之间的明确区分真的那么重要吗?
我想问一个关于在UI上支持多种语言的桌面应用程序的问题。
在我搜索关于这个主题的现有问题时,我想到了单词“International”,所以我选择了国际化标签并阅读了一些匹配的问题。
最终,我意识到我可能应该在标记为本地化的问题下寻找。然而,我似乎不是唯一一个把这两个术语混淆的人。
那么,本地化和国际化之间的关键区别是什么?
另外,它们之间的明确区分真的那么重要吗?
当前回答
全球化(G11n):是面向全球市场开发和销售多语言软件产品的过程。
目前多语言软件的发展经历了两个阶段:第一阶段是国际化,第二阶段是本地化。
国际化(I18n):泛化一个产品的过程,这样它就可以处理多种语言和文化习俗,而不需要重新设计(即语言和文化中立)。
本地化(L10n):是将产品在语言和文化上适合目标地区(国家/地区和语言)使用和销售的过程(即特定语言和文化)。
其他回答
i18n和l10n有很多定义。我用的是:
国际化(i18n):对应用程序进行特定于语言的调整(翻译)
本地化(l10n):对应用程序进行特定于地区的调整(货币、数字格式、日期格式……)
例如,我们可以在法国和瑞士使用相同的语言发布应用程序(我们都说法语,至少在瑞士的某些地区),但是我们仍然需要进行一些调整,将欧元更改为瑞士法郎。
There are a few very good answers here, so I won't recycle them. However at some point, typically between internationalization testing and localization linguistic testing, internationalization and localization tend to overlap. One person mentions l10n feeding back to internationalization, but if you are doing quality i18n testing, and creating pseudo-localized content, then iterating on development issues during localization should be the exception, not the rule. Interface resizing, and particularly adapting pages to support bi-directional languages like Arabic and Hebrew also tend to blend both localization issues and internationalization engineering.
可以说,国际化涉及对源代码进行更改,以根据需求支持任何语言环境。如果国际化做得好……
...本地化涉及内容和某些层次的表示(例如粗体标签)的调整,以便最好地满足特定目标市场(地区)的需求。
很多文章和白皮书供参考:http://www.lingoport.com/software-internationalization-articles
类比pov:想象一下,在你的图书馆里,一个书架只能放4x4英寸的一本书。国际化就是用各种不同的隔层来建造书架,这样可以容纳任何大小或形状的书。本地化就是把所有的书都放在正确的位置。把你的数据库、业务逻辑和UI想象成书架,把不同的语言、货币和文本方向想象成书籍。
国际化-从任何特定的语言/文化中抽象应用程序。
本地化- l10n-在上面的i18n框架中插入对特定语言/文化/地区的具体支持。
基本上通过先做i18n,你得到的l10n比PITA少得多。
相反,如果你先在一个具体的地区创建一个应用程序,然后再尝试国际化它,它将是一个巨大的PITA。这不是简单地将一个具体的英文字符串“HelloWorld”转换为Resource.Global.HelloWorld。
不同的语言有不同的空间要求、布局、重点、颜色等。
如果您甚至认为可能需要支持多个语言环境,那么您需要从一开始就使用i18n框架来轻松地支持针对上述差异的语言环境切换。
稍后将其改造到应用程序中是非常困难的。您将不得不重新审视您(或其他人)在第一次中提出的整个体系结构注意事项和限制条件。
根据维基百科
国际化是设计软件应用程序的过程,这样它就可以在不进行工程更改的情况下适应各种语言和地区。
本地化是通过添加特定于地区的组件和翻译文本,使国际化软件适应特定地区或语言的过程。
此外,本地化(对于不同的地区可能执行多次)使用国际化提供的基础设施或灵活性(理想情况下只执行一次,或作为正在进行的开发的一个组成部分)。