本地化和国际化有什么区别?


208

我要问一个有关准备桌面应用程序以支持UI上多种语言的问题。

在搜索有关该主题的现有问题时,我想到的是“国际”一词,因此我选择了国际化标签并通读了一些匹配的问题。

最终,我意识到我应该去找标记为Localization的问题。但是,似乎我并不孤单地把这两个词混在一起。

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

另外,两者之间的明显区别真的那么重要吗?

Answers:


232
国际化(i18n)
更改软件的过程,这样就不会硬连接到一种语言/地区/文化。
本地化(l10n)
将适当的资源添加到软件中以支持特定语言/语言环境的过程。它的作用范围不仅限于此Wikipedia条目,但这是一个好的开始。


区分它们的价值是(从理​​论上)一旦程序经过了i18n进程,便可以根据需要迭代许多l10n进程。同样,语言也很精确。


9
分别考虑它们的其他一些原因:国际化质量保证和本地化质量保证具有不同的测试用例,国际化是一次性成本(或多或少),因此,您本地化的语言越多,您的投资回报率就越高。在任何一种语言环境中,i18n通常比l10n花费更高。
Mike Sickler,2009年

@ Hank,@ Mike,非常有用的答案,谢谢。因此,实际上我首先看国际化是正确的。我的目标是确保应用程序设计将来至少会支持多种语言,即使我最初只是专注于英语。
Ash Ash

尽管它有些陈旧,但基本上与此相符的W3C高级视图高
mkobit

1
通常,国际化(i18n)由软件开发人员/工程师一次完成,而本地化(l10n)由相应的语言/文化专家针对每个市场进行。
Chetan 2015年

70

根据苹果的说法:

国际化是设计和构建应用程序以促进本地化的过程。反过来,本地化是国际化应用程序在文化和语言上对两个或更多个文化截然不同的市场的适应。


32

国际化将为本地化准备您的应用程序。例如,您可以使用Unicode(utf8mb4而不是latin1)对存储在数据库中的字符进行编码,将字符串移动到资源文件,启用日期,时间和货币格式等。

例如,当您希望出售自己的应用程序的中文版本时,可以聘请翻译人员来构建zh-CN资源文件,并使用新的日期/时间/货币格式来对它进行本地化。


13

L10n有时可以显示您的i18n失败的地方-例如,您的词典中有一个词的单个词条,该词被用作名词和英语的动词,而英语中的动词不会翻译成另一种语言的同一个词或UI元素/ design不适合文化(左/右方向)。

因此,l10n通常在i18n之后发生,但可以反馈到i18n中,并需要进行进一步的重新设计,因此,在完成一些本地化之前,您不能认为您的应用已完全国际化。


11

根据维基百科

国际化是设计软件应用程序的过程,以便可以潜在地适应各种语言和地区without engineering changes

本地化adapting internationalized software通过添加特定于语言环境的组件并翻译文本来针对特定区域或语言的过程。

同样,本地化(可能针对不同的区域执行多次)使用infrastructure or flexibility provided by internationalization(理想情况下仅执行一次,或者作为正在进行的开发的组成部分)。


8

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

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

国际化(I18n):是对产品进行通用化的过程,以便它可以处理多种语言和文化习俗,而无需重新设计(即语言和文化中立)。

本地化(L10n):是获取产品并使其在语言和文化上与将要使用和销售的目标地区(国家/地区和语言)相适应(即特定于语言和文化)的过程。


8

很多答案,很多正确的信息,但是我的答案只是另一种观点。

国际化 -当开发人员在代码中没有某些语言的直接消息/错误消息/按钮名称/标签标题/等但具有传递给翻译功能的键时,翻译功能将根据当前用户的语言环境返回最终文本英文/法文/等...
转换功能可与存储一起使用(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          |

而且这里的开发人员不需要更新代码,翻译功能将正确携带适当的文本。


3
很容易理解。
Vinh Nguyen

1
很好的例子!
金吉诺夫

6

如果遵循以下定义,这非常简单,

i18n(国际化)

设计应用程序的过程,使其具有更改为其他语言功能,而无需诉诸应用程序的程序更改。

l10n(本地化)

过程产生实际语言特定的文本和格式


3

这里有一些很好的答案,所以我不会回收它们。但是,在某些时候,通常在国际化测试和本地化语言测试之间,国际化和本地化往往会重叠。有人提到过10n会回馈国际化,但是如果您正在进行质量i18n测试,并创建伪本地化内容,那么在本地化期间迭代开发问题应该是一个例外,而不是常规。调整界面大小,特别是调整页面以支持双向语言(例如阿拉伯语和希伯来语),也往往会融合本地化问题和国际化工程。

可以说,国际化涉及根据要求更改源以支持任何语言环境。如果国际化做得好...

...本地化涉及内容的调整和某种程度的表示形式(例如,粗体标记),以便最佳地解决特定目标市场(区域)的需求。

很多文章和白皮书可供参考:http : //www.lingoport.com/software-internationalization-articles


3

国际化-i18n-从任何特定语言/文化中提取应用程序。

本地化-l10n-将特定语言/文化/语言环境的具体支持插入上述i18n框架。

基本上,通过首先执行i18n,您可以使lITA的PITA大大降低。

相反,如果先在具体的语言环境中创建一个应用程序,然后再尝试对其进行国际化,那将是一个庞大的PITA。仅将一个具体的英语字符串“ Hello World”换成Resource.Global.HelloWorld并不是一件简单的事情。

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

如果您甚至认为可能需要支持多个语言环境,则需要从头开始就建立i18n框架,以轻松地支持在语言环境之间进行上述差异的切换。

稍后将其改装到应用程序中确实非常困难。您将不得不重新审查您(或其他人)在第一轮中所做的整个体系结构注意事项和约束。


2

我觉得本地化可以没有国际化,但是..本地化的国际化不应该...


2

类似的观点:假设您的书架上只能放一本4x4英寸尺寸的书架。国际化将用各种不同的隔层来构建书架,使它可以处理任何尺寸或形状的书本。本地化将使所有书籍都放在正确的部分。将您的数据库,业务逻辑和用户界面视为书架,并将不同的语言,货币和文本方向作为书本。


2

让我们明白的语言环境第一

语言环境 -一组参数,用于定义用户的语言,区域以及用户希望在其用户界面中看到的任何特殊的变体首选项。通常,语言环境标识符至少由语言标识符和区域标识符组成。

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

l10n-仅当您的软件支持i18n时才有可能。但是,l10n可以确保针对特定语言环境在上下文中显示语言,日期格式,货币格式等。

例如,

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

#2。在某些国家/地区,货币之间用“。”分隔。与“,”

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

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

如果该软件旨在基于用户区域设置支持#1 #2 #3,则该产品启用了10n。

如果它支持多个语言环境,则启用其i18n。


1

只是,

国际化(I18N)是使您的软件能够适应不同语言,地区和文化的过程。

本地化(L10N)是将您的软件翻译成多种语言的过程。但是在本地化软件之前,先对其进行国际化。


-1

i18n和l10n有很多定义。我使用的是:

国际化(i18n):您的应用程序对语言的适应性(翻译)

本地化(l10n):您的应用程序的特定于语言环境的设置(货币,数字格式,日期格式...)。

例如,对于在法国和瑞士发行的应用程序,我们可以使用相同的语言(至少在瑞士的某些地区,我们都说法语),但是我们仍然需要进行一些更改才能将EUR更改为CHF。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.