Локалізація та інтернаціоналізація, в чому різниця?


208

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

Під час пошуку існуючих питань по темі я думав про слово "Міжнародний", тому я вибрав тег "Інтернаціоналізація" і прочитав декілька відповідних питань.

Врешті-решт я зрозумів, що, напевно, слід шукати питання, позначені Локалізацією. Однак, здається, я не один в змішуванні цих двох термінів.

Отже, які вони ключові відмінності між Локалізацією та Інтернаціоналізацією?

Крім того, чи справді важлива чітка відмінність між ними?

Відповіді:


232
Інтернаціоналізація (i18n)
процес зміни вашого програмного забезпечення, щоб він не був провідним до однієї мови / мови / культури.
Локалізація (l10n)
процес додавання відповідних ресурсів у ваше програмне забезпечення, щоб підтримувалася певна мова / локаль. Це більше за обсягом, ніж лише ця запис у Вікіпедії , але це хороший початок.


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


9
Деякі інші причини думати про них окремо: Інтернаціоналізація QA та локалізація QA мають різні тестові випадки, інтернаціоналізація - це разова вартість (більш чи менше), і тому чим більше мов ви локалізуєте, тим вище ваша рентабельність. i18n, як правило, дорожче, ніж l10n для будь-якої локалі.
Майк Сіклер

@Hank, @Mike, дуже корисні відповіді, дякую. Тож я справді мав рацію вперше в інтернаціоналізації. Моя мета - переконатися, що дизайн додатку принаймні підтримуватиме декілька мов у майбутньому, навіть якщо в основному я зосереджуюсь лише на англійській мові.
Еш

Незважаючи на те, що він трохи старий, цей вигляд високого рівня W3C високий, що в основному погоджується з цим.
mkobit

1
Взагалі інтернаціоналізація (i18n) проводиться розробником / інженером програмного забезпечення одноразово, де локалізація (l10n) робиться відповідним фахівцем з мови / культури для кожного ринку.
Четан

70

За даними Apple :

Інтернаціоналізація - це процес розробки та побудови програми для полегшення локалізації. Локалізація , в свою чергу, - це культурно-мовна адаптація інтернаціоналізованого додатку до двох чи більше культурно-відрізних ринків.


32

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

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


13

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

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


11

За даними Вікіпедії

Інтернаціоналізація - це процес розробки програмного додатку, який потенційно може бути адаптований до різних мов та регіонів without engineering changes.

Локалізація - це процес adapting internationalized softwareдля певного регіону чи мови шляхом додавання компонентів, що відповідають певній місцевості та перекладу тексту.

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


8

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

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

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

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


8

Багато відповідей, багато правильної інформації, але моя відповідь трохи інша точка зору.

Інтернаціоналізація - це тоді, коли розробник не має в коді прямих повідомлень / повідомлень про помилки / імена кнопок / підписів / тощо на певній мові, але має ключ, який передається функції перекладу, а функція перекладу відповідно до мови поточного користувача поверне остаточний текст англійською / францією / тощо ...
Функція перекладу працює зі зберіганням (db / файли / асоціативний масив / тощо).
Зберігання містить ключі, які використовуються в коде, та значення, тобто тексти певною мовою, яку підтримує програма.

Локалізація - це процес додавання нових значень новою мовою (наприклад, Іспанія), що відповідає клавішам у сховище, не залучаючи розробника до цього процесу.

Наприклад, у нас є сховище:

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

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

Досить сказати, що інтернаціоналізація передбачає внесення змін до джерела для підтримки будь-якої локалі на основі вимог. Якщо інтернаціоналізація буде зроблена добре ...

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

Тут можна прочитати багато статей та довідкових матеріалів: http://www.lingoport.com/software-internationalization-articles


3

Інтернаціоналізація - i18n - абстрагування програми від будь-якої конкретної мови / культури.

Локалізація - l10n- Підключення до конкретної підтримки для певної мови / культури / локалі до вищевказаної рамки i18n.

В основному, зробивши i18n спочатку, ви зробите l10n набагато менше від PITA.

На відміну від цього, якщо спершу створити додаток у конкретному локальному центрі, а потім спробувати його інтернаціоналізувати, це буде масовий PITA. Це не просте питання просто замінити конкретну англійську струну, сказати "Hello World" на Resource.Global.HelloWorld.

Різні мови матимуть різні вимоги до простору, компонування, акценту, кольорів тощо.

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

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


2

Я думаю, що локалізація може пройти без інтернаціоналізації, але .. інтернаціоналізацію з локалізацією не слід робити ...


2

аналогічне pov: Уявіть, що у вашій бібліотеці полиця, яка може займати лише одну книгу розміром 4х4 дюйми. Інтернаціоналізація - це побудова полиці з усіма видами різних відділень, які дозволять їй обробляти будь-який розмір чи форму книги. І локалізацією було б встановлення всіх книг у потрібних розділах. Подумайте про свою Базу даних, ділову логіку та інтерфейс користувача як поличку, а також про різні мови, валюти та орієнтацію тексту як книги.


2

Давайте спочатку розберемося з місцевостями

локаль - це набір параметрів , який визначає мову користувача, область і будь-які спеціальні варіантні переваги , які користувач хоче бачити в своєму інтерфейсі. Зазвичай ідентифікатор локалі складається з щонайменше ідентифікатора мови та ідентифікатора регіону.

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

l10n - це можливо лише тоді, коли ваше програмне забезпечення підтримує i18n. Але l10n переконує, що мова, формат дати, формати валют тощо показані в контексті для конкретної місцевості.

Наприклад,

№1. 3 червня 1977 року на іспанську мову буде переведено як 3 de junio de 1977.

№2. Валюта в деяких країнах розділена символом "." проти ','

№3. Показати відповідний символ валюти залежно від країни, де знаходиться місце

№1, №2 і №3 - випадки використання для локалізації.

Якщо програмне забезпечення призначене для підтримки №1 АБО # 2 АБО # 3 на основі локальної інформації користувача, тоді продукт включений l10n.

Якщо він підтримує кілька локалів, його i18n увімкнено.


1

Просто,

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

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


-1

Існує багато визначень i18n та l10n. Я використовую:

інтернаціоналізація (i18n) : адаптація вашої заявки до конкретної мови (переклад)

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

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.