Lokalizacja i internacjonalizacja, jaka jest różnica?

208

Chciałem zadać pytanie dotyczące przygotowania aplikacji komputerowej do obsługi wielu języków w interfejsie użytkownika.

Podczas wyszukiwania istniejących pytań na ten temat myślałem o słowie „Międzynarodowe”, więc wybrałem znacznik internacjonalizacji i przeczytałem kilka pasujących pytań.

W końcu zdałem sobie sprawę, że powinienem raczej szukać pod pytaniami oznaczonymi Lokalizacja. Wygląda jednak na to, że nie jestem sam w pomieszaniu tych dwóch terminów.

Jakie są zatem kluczowe różnice między lokalizacją a internacjonalizacją?

Czy tak naprawdę wyraźne rozróżnienie między nimi jest tak ważne?

Popiół
źródło

Odpowiedzi:

232
Internacjonalizacja (i18n)
proces zmiany oprogramowania w taki sposób, aby nie był podłączony do jednego języka / ustawień regionalnych / kultury.
Lokalizacja (l10n)
proces dodawania odpowiednich zasobów do oprogramowania w celu obsługi określonego języka / ustawień regionalnych. Ma większy zasięg niż tylko ten wpis w Wikipedii , ale to dobry początek.


Wartością rozróżnienia między nimi jest to, że (teoretycznie) po przejściu przez program procesu i18n można iterować wiele procesów L10n, gdy są potrzebne; również miło jest być precyzyjnym w języku.

Hank Gay
źródło
9
Niektóre inne powody, aby myśleć o nich osobno: Kontrola jakości internacjonalizacji i kontrola jakości lokalizacji mają różne przypadki testowe, internacjonalizacja jest kosztem jednorazowym (mniej więcej), a więc im więcej języków lokalizujesz, tym wyższy ROI. i18n jest generalnie droższy niż 1010n dla jednego regionu.
Mike Sickler
@Hank, @Mike, bardzo pomocne odpowiedzi, dzięki. Więc właściwie miałem rację, patrząc najpierw na internacjonalizację. Moim celem jest upewnienie się, że projekt aplikacji będzie przynajmniej obsługiwał wiele języków w przyszłości, nawet jeśli wewnętrznie koncentruję się na języku angielskim.
Ash
Chociaż jest nieco stary, ten wysoki poziom widoku W3C, który w zasadzie się z tym zgadza.
mkobit,
1
Zasadniczo internacjonalizacja (i18n) jest wykonywana przez programistę / inżyniera jeden raz, a jako lokalizacja (1010) jest wykonywana przez odpowiedniego specjalistę ds. Języka / kultury dla każdego rynku.
Chetan
70

Według Apple :

Internacjonalizacja to proces projektowania i budowania aplikacji w celu ułatwienia lokalizacji. Z kolei lokalizacja jest kulturową i językową adaptacją zinternacjonalizowanej aplikacji na dwóch lub więcej odrębnych kulturowo rynkach.

mouviciel
źródło
32

Internacjonalizacja przygotowuje aplikację do lokalizacji. Na przykład możesz kodować znaki przechowywane w bazie danych w standardzie Unicode ( utf8mb4zamiast latin1), przenosząc ciągi znaków do plików zasobów, umożliwiając stosowanie formatów daty, godziny i waluty itp.

Gdy chcesz sprzedać na przykład chińską wersję swojej aplikacji, możesz ją zlokalizować, wynajmując tłumacza do budowy plików zasobów zh-CN i używając nowego formatu daty / godziny / waluty.

Mark Brackett
źródło
13

L10n może czasem pokazywać, gdzie zawiodła twoja i18n - na przykład, gdy słowniki mają pojedynczy wpis dla słowa, które jest używane jako rzeczownik i czasownik w języku angielskim, który nie tłumaczy tego samego słowa w innym języku, lub elementów interfejsu użytkownika / design nie są odpowiednie dla kultury (orientacja L / R).

Więc „ogólnie” 1010 dzieje się po i18n, ale może wrócić do twojego i18n i wymagać dalszego przeprojektowania, więc nie możesz rozważyć swojej aplikacji w pełni internacjonalizowanej, dopóki nie wykonasz kilku lokalizacji.

Cade Roux
źródło
11

Według Wikipedii

Internacjonalizacja to proces projektowania aplikacji, tak aby można ją było potencjalnie dostosować do różnych języków i regionów without engineering changes.

Lokalizacja jest procesem adapting internationalized softwaredla określonego regionu lub języka przez dodanie komponentów specyficznych dla ustawień regionalnych i przetłumaczenie tekstu.

Ponadto w lokalizacji (która jest potencjalnie wykonywana wiele razy, dla różnych ustawień narodowych) wykorzystuje się infrastructure or flexibility provided by internationalization(która jest idealnie wykonywana tylko raz lub jako integralna część ciągłego rozwoju).

Asik
źródło
8

Globalizacja (G11n): to proces opracowywania i wprowadzania na rynek wielojęzycznego oprogramowania na rynku globalnym.

Rozwój wielojęzycznego oprogramowania przebiega obecnie w dwóch etapach: pierwszym etapem jest internacjonalizacja, a drugim etapem jest lokalizacja.

Internacjonalizacja (I18n): jest procesem uogólnienia produktu, aby mógł obsługiwać wiele języków i konwencji kulturowych bez potrzeby ponownego projektowania (tj. Neutralny pod względem językowym i kulturowym).

Lokalizacja (L10n): jest procesem przyjmowania produktu i dostosowywania go pod względem językowym i kulturowym do docelowych ustawień regionalnych (kraju / regionu i języka), w których będzie on używany i sprzedawany (tj. Specyficzny dla języka i kultury).


źródło
8

Wiele odpowiedzi, wiele poprawnych informacji, ale moja odpowiedź to trochę inny punkt widzenia.

Internacjonalizacja - to wtedy, gdy programista nie ma w kodzie bezpośrednich komunikatów / komunikatów o błędach / nazw przycisków / podpisów etykiet itp. W określonym języku, ale ma klucz, który jest przekazywany do funkcji tłumaczenia, a funkcja tłumaczenia zgodnie z ustawieniami bieżącego użytkownika zwróci końcowy tekst w języku angielskim / francji / etc ...
Funkcja tłumaczenia działa z pamięcią masową (db / pliki / tablica asocjacyjna / etc).
Pamięć zawiera klucze używane w coode oraz wartości, czyli teksty w pewnym języku obsługiwanym przez aplikację.

Lokalizacja - jest to proces dodawania nowych wartości w nowym języku (na przykład hiszpania) odpowiednim dla kluczy do pamięci bez angażowania programisty w ten proces.

Na przykład mamy pamięć:

key   | english    | italian           |
------+------------+-------------------+
title | Welcome    | Benvenuto         |
agree | I agree    | Sono d'accordo    |
thank | Thank you  | Grazie            |

Internacjonalizacja wykorzystuje w kodzie coś takiego jak confirm(t(agree));zamiast confirm("I agree");lub confirm("Sono d'accordo");
Lokalizacja - dodaje nowe ustawienia regionalne do naszej pamięci, takie jak:

key   | english    | italian           | spanish          |
------+------------+-------------------+------------------+
title | Welcome    | Benvenuto         | Bienvenido       |
agree | I agree    | Sono d'accordo    | Estoy de acuerdo |
thank | Thank you  | Grazie            | Gracias          |

a tutaj programista nie potrzebuje kodu aktualizacji, funkcja tłumaczenia poprawnie przeniesie odpowiednie teksty.

V. Kovpak
źródło
3
Bardzo łatwy do zrozumienia.
Vinh Nguyen,
1
Świetne przykłady!
Jinjinov,
6

To bardzo proste, jeśli zastosujesz się do poniższych definicji,

i18n (internacjonalizacja) to

proces projektowania aplikacji w taki sposób, aby miał funkcjonalność umożliwiającą zmianę na inny język bez uciekania się do programowej zmiany aplikacji.

l10n (lokalizacja) to

proces tworzenia się rzeczywiste teksty język specyficzne i formatowania .

Prateek Joshi
źródło
3

Jest tu kilka bardzo dobrych odpowiedzi, więc nie będę ich przetwarzać. Jednak w pewnym momencie, zwykle między testami internacjonalizacji i testami językowymi, internacjonalizacja i lokalizacja zwykle się pokrywają. Jedna osoba wspomina, że ​​l10n powraca do internacjonalizacji, ale jeśli wykonujesz wysokiej jakości testy i18n i tworzysz pseudolokalizowane treści, to iteracja problemów programistycznych podczas lokalizacji powinna być wyjątkiem, a nie regułą. Zmiana rozmiaru interfejsu, a zwłaszcza dostosowanie stron do obsługi języków dwukierunkowych, takich jak arabski i hebrajski, mają tendencję do łączenia zarówno problemów związanych z lokalizacją, jak i inżynierii internacjonalizacji.

Wystarczy powiedzieć, że internacjonalizacja obejmuje dokonywanie zmian w źródle w celu obsługi dowolnego ustawienia narodowego w oparciu o wymagania. Jeśli internacjonalizacja zostanie wykonana dobrze ...

... Lokalizacja obejmuje dostosowanie treści i niektórych poziomów prezentacji (np. Pogrubiony tag), aby najlepiej odpowiadała potrzebom określonych rynków docelowych (lokalizacji).

Wiele artykułów i oficjalnych dokumentów w celach informacyjnych tutaj: http://www.lingoport.com/software-internationalization-articles

Adam
źródło
3

Internacjonalizacja - i18n - Abstrakcja aplikacji z dowolnego określonego języka / kultury.

Lokalizacja - l10n - Podłączenie konkretnego wsparcia dla określonego języka / kultury / ustawień regionalnych do powyższego frameworku i18n.

Zasadniczo, robiąc najpierw i18n, czynisz l10n znacznie mniejszą PITA.

W przeciwieństwie do tego, jeśli najpierw utworzysz aplikację w konkretnym miejscu, a następnie spróbujesz ją umiędzynarodowić, będzie to ogromna PITA. To nie jest prosta sprawa po prostu zamieniając konkretny angielski ciąg powiedz „Hello World” na Resource.Global.HelloWorld.

Różne języki będą miały różne wymagania dotyczące miejsca, układu, nacisku, kolorów itp.

Potrzebujesz szkieletu i18n od podstaw, aby łatwo obsługiwać przełączanie między lokalizacjami dla powyższych różnic, jeśli nawet pomyślisz , możesz potrzebować obsługi więcej niż jednego ustawienia narodowego.

Późniejsze dostosowanie go do aplikacji jest po prostu bardzo trudne. Będziesz musiał ponownie zapoznać się z całym szeregiem rozważań architektonicznych i ograniczeń, które zrobiłeś (lub ktoś inny) po raz pierwszy.

rism
źródło
2

Wydaje mi się, że lokalizacja może przebiegać bez internacjonalizacji, ale .. internacjonalizacji z lokalizacją nie należy robić ...


źródło
2

analogiczne pov: Wyobraź sobie półkę w swojej bibliotece, która może pomieścić tylko jeden rozmiar 4x4 cali. Internacjonalizacja polegałaby na zbudowaniu półki z różnego rodzaju przegródkami, które pozwolą na obsługę dowolnego rozmiaru lub kształtu książki. A lokalizacja ustawiałaby wszystkie książki we właściwych sekcjach. Pomyśl o swojej bazie danych, logice biznesowej i interfejsie użytkownika jako o półce, a o różnych językach, walutach i orientacji tekstu - o książkach.

Izz
źródło
2

Pozwala zrozumieć lokalizację pierwszy

widownia - zestaw parametrów określających język użytkownika, region i wszelkie specjalne preferencje wariantów, które użytkownik chce zobaczyć w interfejsie użytkownika. Zwykle identyfikator ustawień regionalnych składa się co najmniej z identyfikatora języka i identyfikatora regionu.

i18n - Projektowanie i rozwijanie oprogramowania do obsługi wielu lokalizacji.

l10n - Jest to możliwe tylko wtedy, gdy twoje oprogramowanie obsługuje i18n. Ale l10n zapewnia, że ​​język, format daty, formaty walut itp. Są wyświetlane w kontekście dla określonych ustawień regionalnych.

Na przykład,

# 1. 3 czerwca 1977 roku zostanie przetłumaczony na hiszpański jako 3 de junio de 1977.

# 2. Waluta w niektórych krajach jest oddzielona „.” vs ','

# 3. Pokaż odpowiedni symbol waluty w zależności od kraju lokalizacji

# 1, # 2 i # 3 to przypadki użycia do lokalizacji.

Jeśli oprogramowanie jest zaprojektowane do obsługi nr 1 LUB nr 2 LUB nr 3 w oparciu o ustawienia regionalne użytkownika, to produkt jest włączony 10n.

Jeśli obsługuje wiele ustawień regionalnych, oznacza to, że jest włączony i18n.

Faiz Mohamed Haneef
źródło
1

Po prostu,

Internacjonalizacja (I18N) to proces umożliwiający dostosowanie oprogramowania do różnych języków, regionów i kultur.

Lokalizacja (L10N) to proces tłumaczenia oprogramowania na wiele języków. Ale zanim będzie można zlokalizować oprogramowanie, należy je umiędzynarodowić.

Sagar Thummar
źródło
-1

Istnieje wiele definicji i18n i l10n. Te, których używam to:

internacjonalizacja (i18n) : dostosowanie aplikacji do konkretnego języka (tłumaczenie)

lokalizacja (l10n) : dostosowanie aplikacji do ustawień regionalnych (pieniądze, format liczb, format daty ...).

Na przykład możemy mieć ten sam język dla aplikacji dystrybuowanej we Francji i Szwajcarii (oboje mówimy po francusku, przynajmniej w niektórych częściach Szwajcarii), ale nadal będziemy potrzebować pewnych dostosowań, aby zmienić EUR na CHF.

Guillaume
źródło