2009-02-03 5 views
181

Я собирался задать вопрос о подготовке настольного приложения для поддержки нескольких языков в пользовательском интерфейсе.Локализация и интернационализация, какая разница?

В моем поиске существующих вопросов по теме я думал о слове «Международный», поэтому я выбрал тег интернационализации и прочитал некоторые подходящие вопросы.

В конце концов я понял, что, вероятно, я должен искать по темам, помеченным Локализацией. Однако, похоже, я не одинок, когда смешиваю эти два термина.

Итак, каковы основные отличия между локализацией и интернационализацией?

Кроме того, является ли четкое различие между ними действительно важным?

ответ

204
Интернационализация (i18n)
процесс изменения программного обеспечения так, чтобы оно не зашито на один язык/локали/культуры.
Локализация (l10n)
процесс добавления соответствующих ресурсов в ваше программное обеспечение, чтобы поддерживать определенный язык/локаль. Это больше по объему, чем только this Wikipedia entry, но это хорошее начало.


Значение различия между ними в том, что (теоретически), как только ваша программа проходит через процесс i18n, вы можете перебирать многие процессы l10n по мере необходимости; Кроме того, хорошо быть точным с языком.

+9

Некоторые другие причины думать об этом отдельно: интернационализация QA и локализация QA имеют разные тестовые примеры. Интернационализация - это единовременная стоимость (более или менее), и, следовательно, чем больше языков вы локализуете, тем выше ваша рентабельность инвестиций. i18n, как правило, более дорогостоящий, чем l10n для любого локали. –

+0

@Hank, @Mike, очень полезные ответы, спасибо. Поэтому я был прав в том, чтобы сначала взглянуть на интернационализацию. Моя цель - убедиться, что дизайн приложения по крайней мере будет поддерживать несколько языков в будущем, даже если я просто сосредоточусь на английском. – Ash

+0

Хотя он немного стар, этот [высокий уровень высокого уровня W3C] (http://www.w3.org/International/questions/qa-i18n), который в основном согласен с этим. – mkobit

64

По Apple:

Интернационализация является процесс проектирования и построения приложения для облегчения локализации. Локализация, in turn, является культурной и лингвистической. адаптация интернационализированного приложения к двум или более культурам.

-1

Существует множество определений i18n и l10n. Один я использую это:

интернационализация (i18n): конкретного языка адаптация приложения (перевод)

локализации (l10n): локаль конкретная адаптация вашего приложения (деньги, формат чисел, дата формат ...).

Например, у нас может быть один и тот же язык для приложения, распространяемого во Франции и Швейцарии (мы оба говорим по-французски, по крайней мере, в некоторых частях Швейцарии), но нам по-прежнему потребуется адаптация для изменения EUR до CHF.

28

Интернационализация готовит вашу заявку на локализацию.Например, вы можете кодировать символы, хранящиеся в базе данных в Unicode (utf8mb4 вместо latin1), перемещение строк в файлы ресурсов, позволяющие использование даты, времени и валюты форматов и т.д.

Если вы хотите продать , например, китайскую версию вашего приложения, вы затем локализуете ее, найдя переводчика для создания файлов ресурсов zh-CN и используйте новый формат даты/времени/валюты.

13

L10n может иногда показывать, где ваш i18n потерпел неудачу - например, где ваши словари имеют единственную запись для слова, которое используется как существительное и глагол на английском языке, который не переводится на одно и то же слово на другом языке , или элементы/дизайн пользовательского интерфейса непригодны для культуры (ориентация L/R).

Таким образом, l10n «вообще» происходит после i18n, но может возвращаться в ваш i18n и требовать дальнейшей реорганизации, поэтому вы не можете считать ваше приложение полностью интернационализированным, пока не сделаете несколько локализаций.

3

Здесь есть несколько очень хороших ответов, поэтому я не буду их перерабатывать. Однако в какой-то момент, как правило, между тестированием интернационализации и локализацией лингвистического тестирования, интернационализация и локализация имеют тенденцию перекрываться. Один человек упоминает о возвращении к интернационализации, но если вы выполняете качественное тестирование i18n и создаете псевдо-локализованный контент, то повторение вопросов развития во время локализации должно быть исключением, а не правилом. Изменение размера интерфейса и, в частности, адаптация страниц для поддержки двунаправленных языков, таких как арабский и иврит, также имеют тенденцию сочетать как проблемы локализации, так и интернационализацию.

Достаточно сказать, интернационализация предполагает внесение изменений в источник для поддержки любого языка, основанного на требованиях. Если интернационализация выполнена хорошо ...

... Локализация включает в себя адаптацию содержимого и некоторые уровни представления (например, жирный тег), чтобы он наилучшим образом отвечал потребностям конкретных целевых рынков (локалей).

Много статей & белых бумаги для справки здесь: http://www.lingoport.com/software-internationalization-articles

2

Я чувствую локализация может идти без интернационализации, но .. интернационализации с локализацией не должно быть сделана ...

7

Глобализация (G11n) является процесс разработки и маркетинга многоязычных программных продуктов на глобальном рынке.

Разработка многоязычного программного обеспечения в настоящее время проходит через две фазы: первая фаза - интернационализация, а вторая фаза - локализация.

Интернационализация (I18n): это процесс обобщения продукта, чтобы он мог обрабатывать несколько языков и культурные соглашения без необходимости перепроектирования (т. Е. Язык & культура нейтральная).

Локализация (L10n): это процесс взятия продукта и его лингвистическое и культурное соответствие целевому языку (стране/региону и языку), где он будет использоваться и продаваться (т. Е. Язык &).

2

аналогичный pov: Представьте себе полку вашей библиотеки, которая может взять только одну книгу размером 4x4 дюймов. Интернационализация создавала бы полку со всеми различными отделениями, которая позволяла бы ей обрабатывать любой размер или форму книги. И локализация будет устанавливать все книги в правильных разделах.Подумайте о своей базе данных, бизнес-логике и пользовательском интерфейсе как полке и разных языках, валютах и ​​текстовой ориентации в качестве книг.

3

Интернационализация - i18n - Абстракции заявки от любого конкретного языка/культуры.

Локализация - l10n- Подключение конкретной опоры для конкретного языка/культуры/локали к вышеуказанной структуре i18n.

В основном, сделав i18n, вы сначала сделаете l10n намного меньше PITA.

В отличие от этого, если вы сначала создадите приложение в конкретной локали, а затем попытаетесь интернационализировать его, это будет массивный PITA. Это не просто вопрос просто замены конкретной английской строки на «Hello World» на Resource.Global.HelloWorld.

Различных языков будут иметь различные требования к площадям, расположение, диакритическому, цвет и т.д.

Вам нужны рамки i18n в месте с нуля легко поддерживать это переключение между локалями для указанных выше различий, если вы даже думать вам может потребоваться поддержка нескольких языков.

Модифицировать его в приложение позже очень просто. Вам придется пересмотреть целый ряд архитектурных соображений и ограничений, которые вы (или кто-то еще) сделали в первый раз.

10

Согласно Wikipedia

Интернационализация это процесс проектирования программного приложения таким образом, что она потенциально может быть адаптирована к различным языкам и регионам without engineering changes.

Локализация - это процесс adapting internationalized software для определенного региона или языка путем добавления компонентов, относящихся к языку и перевод текста.

Кроме, локализация (которая потенциально выполняются несколько раз, для разных районов) использует infrastructure or flexibility provided by internationalization (который в идеале выполняется только один раз, или в качестве составной части непрерывного развития).

4

Это очень просто, если вы идете ниже определениями,

i18n (интернационализация) процесс

из проектирования приложения так, что он имеет функциональности изменения на другой язык, не прибегая к программной смене приложения.

l10n (локализация) это процесс создания фактические тексты конкретного языка и форматирования

.

1

Позволяет понять локали первый

локаль - набор параметров, который определяет язык пользователя, область и любые специальные вариантные предпочтения, которые пользователь хочет видеть в своем пользовательском интерфейсе. Обычно идентификатор локали состоит из, по меньшей мере, идентификатора языка и идентификатора региона.

i18n - Разработка и разработка программного обеспечения для поддержки нескольких локалей.

l10n - Это возможно, только если ваше программное обеспечение поддерживает i18n. Но l10n гарантирует, что язык, формат даты, форматы валют и т. Д. Отображаются в контексте для конкретной локали.

Например,

# 1. 3 июня 1977 года будет переведен на испанский язык как 3 de junio de 1977.

# 2. Валюта в некоторых странах разделена «.». vs ','

# 3. Показать соответствующий символ валюты, основанный на стране региона

# 1, # 2 и # 3 являются прецедентами для локализации.

Если программное обеспечение предназначено для поддержки # 1 ИЛИ # 2 ИЛИ # 3, основанный на пользовательском локали, то продукт l10n включен.

Если он поддерживает несколько локалей, то его i18n включен.

0

Просто

Интернационализация (I18N) является процесс создания вашего программного обеспечения в состоянии адаптироваться к различным языкам, регионов и культур.

Локализация (L10N) - это процесс перевода вашего программного обеспечения на несколько языков. Но прежде чем вы сможете локализовать свое программное обеспечение, вы интернационализируете его.

+0

Как это добавляет что-либо к уже существующим ответам? –

3

Множество ответов, много правильной информации, но мой ответ - немного другая точка зрения.

Интернационализация - это когда разработчик не в коде прямых сообщений/сообщений об ошибках/кнопки имен/метки подписи/и т.д. в определенном языке, но есть ключ который передается функции перевода, и перевод функции в соответствии с текущей локалью пользователя вернет окончательный текст на английском/французском/и т.д. ...
Функция перевода работает с хранилищем (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   | 

и здесь разработчику не нужен код обновления, функция перевода будет правильно переносить соответствующие тексты.

+1

Очень легко понять. –

Смежные вопросы