我想问一个关于在UI上支持多种语言的桌面应用程序的问题。
在我搜索关于这个主题的现有问题时,我想到了单词“International”,所以我选择了国际化标签并阅读了一些匹配的问题。
最终,我意识到我可能应该在标记为本地化的问题下寻找。然而,我似乎不是唯一一个把这两个术语混淆的人。
那么,本地化和国际化之间的关键区别是什么?
另外,它们之间的明确区分真的那么重要吗?
我想问一个关于在UI上支持多种语言的桌面应用程序的问题。
在我搜索关于这个主题的现有问题时,我想到了单词“International”,所以我选择了国际化标签并阅读了一些匹配的问题。
最终,我意识到我可能应该在标记为本地化的问题下寻找。然而,我似乎不是唯一一个把这两个术语混淆的人。
那么,本地化和国际化之间的关键区别是什么?
另外,它们之间的明确区分真的那么重要吗?
当前回答
L10n有时可以显示您的i18n失败的地方——例如,您的字典中有一个单词的单一条目,该单词在英语中用作名词和动词,但在另一种语言中不能翻译成相同的单词,或者UI元素/设计不适合某种文化(L/R方向)。
所以l10n“通常”发生在i18n之后,但可以反馈到你的i18n,并需要进一步重新设计,所以你不能认为你的应用程序完全国际化,直到你做了一些本地化。
其他回答
国际化(i18n)改变软件的过程,使其不再局限于一种语言/地区/文化。 本地化(l10n)向软件中添加适当资源以支持特定语言/地区的过程。它的范围比维基百科上的这条条目要大,但这是一个良好的开端。
区别它们的价值在于(理论上)一旦你的程序经过了i18n进程,你就可以根据需要迭代许多l10n进程;此外,语言的精确性也很好。
苹果公司表示:
国际化是一个设计和建设国际化的过程 申请提供便利 本地化。本地化, 转,是文化和语言 适应一个国际化 应用于两个或更多 具有文化独特性的市场。
i18n和l10n有很多定义。我用的是:
国际化(i18n):对应用程序进行特定于语言的调整(翻译)
本地化(l10n):对应用程序进行特定于地区的调整(货币、数字格式、日期格式……)
例如,我们可以在法国和瑞士使用相同的语言发布应用程序(我们都说法语,至少在瑞士的某些地区),但是我们仍然需要进行一些调整,将欧元更改为瑞士法郎。
国际化为应用程序本地化做好准备。例如,您可以使用Unicode (utf8mb4而不是latin1)对存储在数据库中的字符进行编码,将字符串移动到资源文件中,启用日期、时间和货币格式等。
例如,当你想出售你的应用程序的中文版本时,你可以通过雇佣翻译人员来构建zh-CN资源文件,并使用新的日期/时间/货币格式来本地化它。
如果你按照下面的定义,这很简单,
I18n(国际化)是
设计应用程序的过程,使其具有 不需要对应用程序进行编程更改而更改为不同语言的功能。
L10n(本地化)是
创建实际特定于语言的文本和格式的过程。