我想问一个关于在UI上支持多种语言的桌面应用程序的问题。

在我搜索关于这个主题的现有问题时,我想到了单词“International”,所以我选择了国际化标签并阅读了一些匹配的问题。

最终,我意识到我可能应该在标记为本地化的问题下寻找。然而,我似乎不是唯一一个把这两个术语混淆的人。

那么,本地化和国际化之间的关键区别是什么?

另外,它们之间的明确区分真的那么重要吗?


当前回答

L10n有时可以显示您的i18n失败的地方——例如,您的字典中有一个单词的单一条目,该单词在英语中用作名词和动词,但在另一种语言中不能翻译成相同的单词,或者UI元素/设计不适合某种文化(L/R方向)。

所以l10n“通常”发生在i18n之后,但可以反馈到你的i18n,并需要进一步重新设计,所以你不能认为你的应用程序完全国际化,直到你做了一些本地化。

其他回答

国际化(i18n)改变软件的过程,使其不再局限于一种语言/地区/文化。 本地化(l10n)向软件中添加适当资源以支持特定语言/地区的过程。它的范围比维基百科上的这条条目要大,但这是一个良好的开端。

区别它们的价值在于(理论上)一旦你的程序经过了i18n进程,你就可以根据需要迭代许多l10n进程;此外,语言的精确性也很好。

让我们先了解语言环境

区域设置——一组参数,用于定义用户的语言、区域以及用户希望在用户界面中看到的任何特殊变量首选项。通常,区域设置标识符至少包含一个语言标识符和一个区域标识符。

i18n -设计和开发支持多种语言环境的软件。

l10n—只有当您的软件支持i18n时才有可能。但是l10n确保语言、日期格式、货币格式等在特定地区的上下文中显示。

例如,

# 1。1977年6月3日将被翻译成西班牙语为3 de junio de 1977。

# 2。一些国家的货币以'。' vs ','

# 3。根据地区的国家显示各自的货币符号

#1、#2和#3是本地化用例。

如果软件被设计为基于用户语言环境支持#1、#2或#3,那么product启用了l10n。

如果它支持多个地区,则启用了i18n。

全球化(G11n):是面向全球市场开发和销售多语言软件产品的过程。

目前多语言软件的发展经历了两个阶段:第一阶段是国际化,第二阶段是本地化。

国际化(I18n):泛化一个产品的过程,这样它就可以处理多种语言和文化习俗,而不需要重新设计(即语言和文化中立)。

本地化(L10n):是将产品在语言和文化上适合目标地区(国家/地区和语言)使用和销售的过程(即特定语言和文化)。

国际化-从任何特定的语言/文化中抽象应用程序。

本地化- l10n-在上面的i18n框架中插入对特定语言/文化/地区的具体支持。

基本上通过先做i18n,你得到的l10n比PITA少得多。

相反,如果你先在一个具体的地区创建一个应用程序,然后再尝试国际化它,它将是一个巨大的PITA。这不是简单地将一个具体的英文字符串“HelloWorld”转换为Resource.Global.HelloWorld。

不同的语言有不同的空间要求、布局、重点、颜色等。

如果您甚至认为可能需要支持多个语言环境,那么您需要从一开始就使用i18n框架来轻松地支持针对上述差异的语言环境切换。

稍后将其改造到应用程序中是非常困难的。您将不得不重新审视您(或其他人)在第一次中提出的整个体系结构注意事项和限制条件。

如果你按照下面的定义,这很简单,

I18n(国际化)是

设计应用程序的过程,使其具有 不需要对应用程序进行编程更改而更改为不同语言的功能。

L10n(本地化)是

创建实际特定于语言的文本和格式的过程。