Answers:
区分它们的价值是(从理论上)一旦程序经过了i18n进程,便可以根据需要迭代许多l10n进程。同样,语言也很精确。
L10n有时可以显示您的i18n失败的地方-例如,您的词典中有一个词的单个词条,该词被用作名词和英语的动词,而英语中的动词不会翻译成另一种语言的同一个词或UI元素/ design不适合文化(左/右方向)。
因此,l10n通常在i18n之后发生,但可以反馈到i18n中,并需要进行进一步的重新设计,因此,在完成一些本地化之前,您不能认为您的应用已完全国际化。
全球化(G11n):是向全球市场开发和销售多语言软件产品的过程。
当前,多语言软件的开发经历两个阶段:第一阶段是国际化,第二阶段是本地化。
国际化(I18n):是对产品进行通用化的过程,以便它可以处理多种语言和文化习俗,而无需重新设计(即语言和文化中立)。
本地化(L10n):是获取产品并使其在语言和文化上与将要使用和销售的目标地区(国家/地区和语言)相适应(即特定于语言和文化)的过程。
很多答案,很多正确的信息,但是我的答案只是另一种观点。
国际化 -当开发人员在代码中没有某些语言的直接消息/错误消息/按钮名称/标签标题/等但具有传递给翻译功能的键时,翻译功能将根据当前用户的语言环境返回最终文本英文/法文/等...
转换功能可与存储一起使用(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 |
而且这里的开发人员不需要更新代码,翻译功能将正确携带适当的文本。
如果遵循以下定义,这非常简单,
i18n(国际化)是
设计应用程序的过程,使其具有更改为其他语言的 功能,而无需诉诸应用程序的程序更改。
l10n(本地化)是
过程产生的实际语言特定的文本和格式。
这里有一些很好的答案,所以我不会回收它们。但是,在某些时候,通常在国际化测试和本地化语言测试之间,国际化和本地化往往会重叠。有人提到过10n会回馈国际化,但是如果您正在进行质量i18n测试,并创建伪本地化内容,那么在本地化期间迭代开发问题应该是一个例外,而不是常规。调整界面大小,特别是调整页面以支持双向语言(例如阿拉伯语和希伯来语),也往往会融合本地化问题和国际化工程。
可以说,国际化涉及根据要求更改源以支持任何语言环境。如果国际化做得好...
...本地化涉及内容的调整和某种程度的表示形式(例如,粗体标记),以便最佳地解决特定目标市场(区域)的需求。
很多文章和白皮书可供参考:http : //www.lingoport.com/software-internationalization-articles
国际化-i18n-从任何特定语言/文化中提取应用程序。
本地化-l10n-将特定语言/文化/语言环境的具体支持插入上述i18n框架。
基本上,通过首先执行i18n,您可以使lITA的PITA大大降低。
相反,如果先在具体的语言环境中创建一个应用程序,然后再尝试对其进行国际化,那将是一个庞大的PITA。仅将一个具体的英语字符串“ Hello World”换成Resource.Global.HelloWorld并不是一件简单的事情。
不同的语言将具有不同的空间要求,布局,重点,颜色等。
如果您甚至认为可能需要支持多个语言环境,则需要从头开始就建立i18n框架,以轻松地支持在语言环境之间进行上述差异的切换。
稍后将其改装到应用程序中确实非常困难。您将不得不重新审查您(或其他人)在第一轮中所做的整个体系结构注意事项和约束。
我觉得本地化可以没有国际化,但是..本地化的国际化不应该...
让我们明白的语言环境第一
语言环境 -一组参数,用于定义用户的语言,区域以及用户希望在其用户界面中看到的任何特殊的变体首选项。通常,语言环境标识符至少由语言标识符和区域标识符组成。
i18n-设计和开发支持多种语言环境的软件。
l10n-仅当您的软件支持i18n时才有可能。但是,l10n可以确保针对特定语言环境在上下文中显示语言,日期格式,货币格式等。
例如,
#1 1977年6月3日将西班牙语翻译为1977年6月3日。
#2。在某些国家/地区,货币之间用“。”分隔。与“,”
#3。根据地区的国家显示相应的货币符号
#1,#2和#3是本地化的用例。
如果该软件旨在基于用户区域设置支持#1 或#2 或#3,则该产品启用了10n。
如果它支持多个语言环境,则启用其i18n。