Локализация и интернационализация, какая разница?

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

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

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

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

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

Ответ 1

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


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

Ответ 2

Согласно Apple:

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

Ответ 3

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

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

Ответ 4

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

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

Ответ 5

Согласно Wikipedia

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

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

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

Ответ 6

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

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

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

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

Ответ 7

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

i18n (интернационализация) - это

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

l10n (локализация) - это

процесс создания фактических текстов, специфичных для языка, и форматирования.

Ответ 8

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

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

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

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

Ответ 10

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

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

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

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

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

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

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

Ответ 11

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

Ответ 12

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

Ответ 13

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

Интернационализация - это когда разработчик не имеет в коде прямых сообщений/сообщений об ошибках/названий кнопок/надписи меток /etc на определенном языке, но имеет ключ, который передается функции перевода, и функция перевода в соответствии с текущим пользовательским языком вернет окончательный текст на английском/французском/и т.д.... Функция перевода работает с хранилищем (db/files/ассоциативный массив /etc ).
Хранение содержит ключи, который используется в coode и значениях, которые являются текстами на определенном языке, которое поддерживает приложение.

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

Например, у нас есть хранилище:

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          |

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

Ответ 14

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

i10n - это возможно только тогда, когда i18n на месте. но i10n гарантирует, что язык, формат даты, форматы валют и т.д. переключаются в контексте для определенного языка/языка.

Например,

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

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

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

# 1, # 2 и # 3 используются для локализации.

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

Ответ 15

Просто,

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

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

Ответ 16

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

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

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

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