我打算提出一个关于准备桌面应用程序以支持UI上的多种语言的问题。
在我搜索关于该主题的现有问题时,我正在考虑“国际”一词,因此我选择了国际化标签并阅读了一些匹配的问题。
最终我意识到我应该在标记为“本地化”的问题下进行查找。然而,似乎我并不是唯一一个让这两个术语混淆的人。
那么,它们在本地化和国际化之间的主要区别是什么?
另外,他们之间有明显的区别吗?
答案 0 :(得分:220)
区分它们的价值在于(理论上)一旦你的程序通过i18n进程,你就可以根据需要迭代许多l10n进程;此外,精确地使用语言也很好。
答案 1 :(得分:70)
根据Apple:
国际化是设计和构建的过程 申请方便 本土化。 本地化,in 转,是文化和语言 适应国际化 申请两个或两个以上 文化独特的市场。
答案 2 :(得分:31)
国际化准备您的本地化应用程序。例如,您可以使用Unicode(utf8mb4
而不是latin1
)对数据库中存储的字符进行编码,将字符串移动到资源文件,启用使用日期,时间和货币格式等。
当您希望销售某个中文版的应用时,您可以通过聘请翻译来构建zh-CN资源文件进行本地化,并使用新的日期/时间/货币格式。 / p>
答案 3 :(得分:13)
L10n有时可以显示你的i18n失败的地方 - 例如,你的词典只有一个单词条目用作一个名词,而一个单词条目用英语不能翻译成另一种语言的同一个单词,或UI元素/设计不适合文化(L / R方向)。
因此l10n“通常”会在i18n之后发生,但可以反馈到您的i18n并需要进一步重新设计,因此在您完成一些本地化之前,您无法将您的应用完全国际化。
答案 4 :(得分:11)
国际化是设计软件应用程序的过程,以便它可以适应各种语言和区域without engineering changes
。
本地化是特定区域或语言adapting internationalized software
的过程,方法是添加特定于区域设置的组件并翻译文本。
同样,本地化(可能针对不同的语言环境多次执行)使用infrastructure or flexibility provided by internationalization
(理想情况下只执行一次,或作为正在进行的开发的一个组成部分)。
答案 5 :(得分:7)
全球化(G11n):是向全球市场开发和营销多语言软件产品的过程。
多语言软件的开发目前分为两个阶段:第一阶段是国际化,第二阶段是本地化。
国际化(I18n):推广产品的过程,使其能够处理多种语言和文化习俗,而无需重新设计(即语言和文化中立)。
本地化(L10n):采用产品并使其在语言和文化上适合目标地区(国家/地区和语言)使用和销售的过程(即语言和文化特定)。< / p>
答案 6 :(得分:5)
如果按照以下定义,这很简单,
i18n(国际化)是
设计应用程序的过程,以便它具有 更改为其他语言的功能,无需借助程序化更改应用程序。
l10n(本地化)是
创建 实际语言特定文本和格式的过程。
答案 7 :(得分:4)
很多答案,很多正确的信息,但我的答案是另一种观点。
国际化 - 当开发人员在某些语言中没有代码直接消息/错误消息/按钮名称/标签字幕/等时,但具有密钥,这是转到翻译功能,
和根据当前用户的语言环境的翻译功能将返回英语/法国/等的最终文本...
翻译功能与存储(db / files / associative array / etc)一起使用。
存储包含用于coode的密钥和值,这是应用程序支持的特定语言的文本。
本地化 - 这是将适用于键的新语言(例如西班牙)中的新值添加到存储中而不涉及此过程中的开发人员的过程。
例如,我们有存储空间:
key | english | italian |
------+------------+-------------------+
title | Welcome | Benvenuto |
agree | I agree | Sono d'accordo |
thank | Thank you | Grazie |
在代码中使用confirm(t(agree));
代替confirm("I agree");
或confirm("Sono d'accordo");
的国际化
本地化 - 它为我们的存储添加了新的语言环境,例如:
key | english | italian | spanish |
------+------------+-------------------+------------------+
title | Welcome | Benvenuto | Bienvenido |
agree | I agree | Sono d'accordo | Estoy de acuerdo |
thank | Thank you | Grazie | Gracias |
这里的开发人员不需要更新代码,翻译功能会正确地携带相应的文本。
答案 8 :(得分:3)
这里有一些非常好的答案,所以我不会回收它们。然而,在某些时候,通常在国际化测试和本地化语言测试之间,国际化和本地化往往会重叠。有人提到l10n反馈国际化,但如果你正在进行高质量的i18n测试,并创建伪本地化内容,那么在本地化期间迭代开发问题应该是例外,而不是规则。界面调整大小,特别是调整页面以支持阿拉伯语和希伯来语等双向语言也倾向于融合本地化问题和国际化工程。
我只想说,国际化涉及对源进行更改以支持基于需求的任何区域设置。如果国际化做得好......
...本地化涉及内容的调整和某些级别的演示(例如粗体标记),以便最好地满足特定目标市场(区域设置)的需求。
很多文章&amp;白皮书供参考:http://www.lingoport.com/software-internationalization-articles
答案 9 :(得分:3)
国际化 - i18n - 从任何特定语言/文化中抽象出一个应用程序。
本地化 - l10n-将特定语言/文化/语言环境的具体支持插入上述i18n框架。
基本上,通过先做i18n,你可以减少l10n的PITA。
相比之下,如果您首先在具体的区域设置中创建应用程序,然后再尝试将其国际化,那么它将是一个庞大的PITA。简单来说,只需更换一个具体的英文字符串就可以向Resource.Global.HelloWorld说“Hello World”。
不同的语言将有不同的空间要求,布局,重点,颜色等。
如果您甚至认为您可能需要支持多个语言环境,那么您需要从头开始实施i18n框架,以便轻松支持区域设置之间的这种切换以实现上述差异。
稍后将其改装到应用程序中真的很难。您将不得不重新审视您(或其他人)第一次进行的一系列架构考虑和约束。
答案 10 :(得分:2)
我觉得本地化可以没有国际化但是...... 不应该进行本地化的国际化......
答案 11 :(得分:2)
答案 12 :(得分:2)
让我们先了解区域设置
区域设置 - 一组参数,用于定义用户希望在其用户界面中查看的用户语言,区域和任何特殊变体首选项。通常,区域设置标识符至少包含语言标识符和区域标识符。
i18n - 设计和开发支持多种语言环境的软件。
l10n - 仅当您的软件支持i18n时才可以这样做。但l10n确保,语言,日期格式,货币格式等在特定区域设置的上下文中显示。
例如,
#1。 1977年6月3日将翻译为西班牙语,作为1977年的3 de junio。
#2。某些国家/地区的货币由&#39;分隔。&#39; vs&#39;,&#39;
#3。根据区域设置的国家/地区显示相应的货币符号
#1,#2和#3是用于本地化的用例。
如果该软件旨在支持基于用户区域设置的#1 OR #2 OR #3,则产品已启用l10n。
如果它支持多个语言环境,则启用其i18n。
答案 13 :(得分:0)
简单地说,
国际化(I18N)是让您的软件能够适应不同语言,地区和文化的过程。
本地化(L10N)是将您的软件翻译成多种语言的过程。但在您将软件本地化之前,请将其国际化。
答案 14 :(得分:-1)
i18n和l10n有很多定义。我使用的是:
国际化(i18n):您的应用程序的语言特定改编(翻译)
本地化(l10n):特定于语言环境的应用程序改编(金钱,数字格式,日期格式......)。
例如,我们可以为在法国和瑞士分发的应用程序使用相同的语言(我们都说法语,至少在瑞士的某些地区),但我们仍需要进行一些调整以将EUR改为CHF。 / p>