Локализация и интернационализация, какая разница? - PullRequest
195 голосов
/ 03 февраля 2009

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

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

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

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

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

Ответы [ 15 ]

221 голосов
/ 03 февраля 2009
Интернационализация (i18n)
процесс изменения программного обеспечения, чтобы оно не было привязано к одному языку / языку / культуре.
Локализация (l10n)
процесс добавления соответствующих ресурсов в ваше программное обеспечение для поддержки определенного языка / локали. Она больше по объему, чем просто эта запись в Википедии , но это хорошее начало.


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

70 голосов
/ 03 февраля 2009

Согласно Apple :

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

31 голосов
/ 03 февраля 2009

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

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

13 голосов
/ 03 февраля 2009

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

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

11 голосов
/ 24 ноября 2014

Согласно Википедии

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

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

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

7 голосов
/ 09 апреля 2009

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

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

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

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

5 голосов
/ 22 декабря 2015

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

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

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

110n (локализация)

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

4 голосов
/ 28 июля 2017

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

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

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

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

В основном, выполняя сначала i18n, вы получаете на 10n меньше PITA.

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

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

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

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

3 голосов
/ 09 февраля 2009

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...