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?
Według Apple :
źródło
Internacjonalizacja przygotowuje aplikację do lokalizacji. Na przykład możesz kodować znaki przechowywane w bazie danych w standardzie Unicode (
utf8mb4
zamiastlatin1
), 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.
źródło
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.
źródło
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 software
dla 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).źródło
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
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ęć:
Internacjonalizacja wykorzystuje w kodzie coś takiego jak
confirm(t(agree));
zamiastconfirm("I agree");
lubconfirm("Sono d'accordo");
Lokalizacja - dodaje nowe ustawienia regionalne do naszej pamięci, takie jak:
a tutaj programista nie potrzebuje kodu aktualizacji, funkcja tłumaczenia poprawnie przeniesie odpowiednie teksty.
źródło
To bardzo proste, jeśli zastosujesz się do poniższych definicji,
i18n (internacjonalizacja) to
l10n (lokalizacja) to
źródło
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
źródło
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.
źródło
Wydaje mi się, że lokalizacja może przebiegać bez internacjonalizacji, ale .. internacjonalizacji z lokalizacją nie należy robić ...
źródło
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.
źródło
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.
źródło
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ć.
źródło
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.
źródło