我想问一个关于在UI上支持多种语言的桌面应用程序的问题。
在我搜索关于这个主题的现有问题时,我想到了单词“International”,所以我选择了国际化标签并阅读了一些匹配的问题。
最终,我意识到我可能应该在标记为本地化的问题下寻找。然而,我似乎不是唯一一个把这两个术语混淆的人。
那么,本地化和国际化之间的关键区别是什么?
另外,它们之间的明确区分真的那么重要吗?
我想问一个关于在UI上支持多种语言的桌面应用程序的问题。
在我搜索关于这个主题的现有问题时,我想到了单词“International”,所以我选择了国际化标签并阅读了一些匹配的问题。
最终,我意识到我可能应该在标记为本地化的问题下寻找。然而,我似乎不是唯一一个把这两个术语混淆的人。
那么,本地化和国际化之间的关键区别是什么?
另外,它们之间的明确区分真的那么重要吗?
当前回答
根据维基百科
国际化是设计软件应用程序的过程,这样它就可以在不进行工程更改的情况下适应各种语言和地区。
本地化是通过添加特定于地区的组件和翻译文本,使国际化软件适应特定地区或语言的过程。
此外,本地化(对于不同的地区可能执行多次)使用国际化提供的基础设施或灵活性(理想情况下只执行一次,或作为正在进行的开发的一个组成部分)。
其他回答
国际化为应用程序本地化做好准备。例如,您可以使用Unicode (utf8mb4而不是latin1)对存储在数据库中的字符进行编码,将字符串移动到资源文件中,启用日期、时间和货币格式等。
例如,当你想出售你的应用程序的中文版本时,你可以通过雇佣翻译人员来构建zh-CN资源文件,并使用新的日期/时间/货币格式来本地化它。
苹果公司表示:
国际化是一个设计和建设国际化的过程 申请提供便利 本地化。本地化, 转,是文化和语言 适应一个国际化 应用于两个或更多 具有文化独特性的市场。
i18n和l10n有很多定义。我用的是:
国际化(i18n):对应用程序进行特定于语言的调整(翻译)
本地化(l10n):对应用程序进行特定于地区的调整(货币、数字格式、日期格式……)
例如,我们可以在法国和瑞士使用相同的语言发布应用程序(我们都说法语,至少在瑞士的某些地区),但是我们仍然需要进行一些调整,将欧元更改为瑞士法郎。
全球化(G11n):是面向全球市场开发和销售多语言软件产品的过程。
目前多语言软件的发展经历了两个阶段:第一阶段是国际化,第二阶段是本地化。
国际化(I18n):泛化一个产品的过程,这样它就可以处理多种语言和文化习俗,而不需要重新设计(即语言和文化中立)。
本地化(L10n):是将产品在语言和文化上适合目标地区(国家/地区和语言)使用和销售的过程(即特定语言和文化)。
国际化-从任何特定的语言/文化中抽象应用程序。
本地化- l10n-在上面的i18n框架中插入对特定语言/文化/地区的具体支持。
基本上通过先做i18n,你得到的l10n比PITA少得多。
相反,如果你先在一个具体的地区创建一个应用程序,然后再尝试国际化它,它将是一个巨大的PITA。这不是简单地将一个具体的英文字符串“HelloWorld”转换为Resource.Global.HelloWorld。
不同的语言有不同的空间要求、布局、重点、颜色等。
如果您甚至认为可能需要支持多个语言环境,那么您需要从一开始就使用i18n框架来轻松地支持针对上述差异的语言环境切换。
稍后将其改造到应用程序中是非常困难的。您将不得不重新审视您(或其他人)在第一次中提出的整个体系结构注意事项和限制条件。