Ve vývoji softwaru je internacionalizace (zkráceně i18n , kde 18 představuje počet znaků mezi i a n ve slově) vytvoření systému umožňujícího regionalizaci softwaru, tj. - řekněme jeho adaptaci na různé jazyky a kultur. Cílem internacionalizace je proto vytvoření jediného programu, který může pro rozhraní obsahovat několik jazyků .
Internacionalizace je předpokladem regionalizace. Spočívá v oddělení, ve zdrojovém kódu programu, toho, co je nezávislé na jazyce a kultuře, od toho, co je na něm závislé (obecně v souborech zvaných překladové tabulky ).
Internacionalizace však nevyžaduje jen práci na textových zprávách. Někdy je také nutné povolit barevné kódy (jejichž význam se může lišit v závislosti na kultuře), grafiku (včetně názvů ikon, některé ikony, které mohou obsahovat přeložený text), formát dat nebo čísel, která mají být změněna. směr psaní (například zprava doleva v arabštině ), velikost grafických prvků (text v němčině je často delší než jeho ekvivalent v angličtině , což může upravit rozvržení atd. . ), až do způsobu udělování slov v množném čísle za číslem (napíšeme „0 task fille“ ve francouzštině, ale „0 child ren process es “ v angličtině).
Internacionalizace je tedy soubor technických mechanismů, které vedou k jazykově přijatelnému výsledku v jazyce, který si zvolil koncový uživatel. Zpracování „jakéhokoli jazyka“ však nemusí stačit, protože program používá omezenou znakovou sadu nebo některá konkrétní písma, nebo protože uživatel k tomu nemá správné klávesnice. Zadávání dat v konkrétním jazyce.
K dosažení univerzální internacionalizace může být nezbytná migrace nebo zvážení větší znakové sady. Rozšířené sady jsou nabízeny na jedné straně v rodině ISO-2022 a na druhé straně ve formě unicode , zejména s UTF-8 / UTF-16 . Tento krok, víceméně nezávislý na internacionalizaci (lze jej provést současně, před nebo po), se nazývá „vícejazyčnost“.
Termíny jsou často psány ve zkráceném i18n , což je název vynalezený společností Digital Equipment Corporation v 70. a 80. letech a l10n pro anglické slovo localisation ( regionalizace ve francouzštině).
Některé společnosti, jako jsou IBM a Sun Microsystems , používají termín globalizace k definování kombinace internacionalizace a regionalizace.
Microsoft definuje internacionalizaci jako kombinaci anglického výrazu „World-Readiness“ a regionalizace. Světová připravenost je úkolem vývojáře a který umožňuje používat produkt s mnoha znaky psaní a mnoha kulturami (globalizace) a zároveň oddělit internacionalizovatelné zdroje od uživatelského rozhraní v regionálním formátu ( lokalizovatelnost , zkráceně l12y ) .
Tento koncept je také známý pod názvem „NLS“ ( National Language Support nebo Native Language Support, což znamená podpora národních jazyků nebo podpora mateřských jazyků ve francouzštině).
Takto napsaný program C není internacionalizován:
printf("Fatal error: %s\n", msg);K překladu zprávy by bylo nutné upravit zdrojový kód a upravit řetězec znaků.
Na druhou stranu je následující verze stejného programu internacionalizována díky knihovně gettext . Program ve svých lokalizačních souborech vyhledá řetězec znaků odpovídající „Fatální chybě:% s“, jazyk aktuálního uživatele:
printf(gettext("Fatal error: %s\n"), gettext(msg));Regionalizované zprávy z gettextu jsou spojeny s výchozí verzí zprávy, která slouží jako klíč . Jiná programovací prostředí mohou používat například číslo (což udělal Mac OS ) nebo se spoléhat na nastavení dynamické konfigurace (například metoda I18n.translateaplikace Ruby On Rails ).
Úsilí v oblasti internacionalizace a regionalizace by mělo vzít v úvahu následující charakteristiky:
Rozdíl mezi internacionalizací a regionalizací je jemný, ale důležitý. Internacionalizace je přizpůsobení produktů, které lze „potenciálně“ použít téměř všude, zatímco regionalizace je přidání konkrétních hodnot určených pro dané regionální parametry . Internacionalizace se provádí u každého produktu jednou, zatímco regionalizace se provádí u každé z adaptací daného produktu na místní nastavení. Procesy se navzájem doplňují a je nutné je kombinovat, aby bylo dosaženo cíle mezinárodně fungujícího systému. Oblasti specifické pro regionalizaci zahrnují následující charakteristiky:
Za účelem internacionalizace produktu je nutné zkontrolovat pro každý z trhů, na kterých je produkt registrován, podrobnosti jako:
To jsou jen příklady toho, jak z internacionalizace udělat komplexní projekt.
Širší přístup bere v úvahu kulturní faktory týkající se například přizpůsobení logiky obchodního procesu nebo zahrnutí individuálních a kulturních (behaviorálních) aspektů.
Současná praxe je pro aplikace, které umožňují vkládání textu do řetězců prostředků, načítání během provádění programu a podle potřeby. Tyto řetězce uložené v souborech prostředků lze převést relativně snadno. Programy se často vytvářejí pro odkazování na knihovny zdrojů, které závisí na datech národního prostředí, které byly vybrány. To je možné díky softwarovým knihovnám , jako je gettext .
Chcete-li tedy získat aplikaci, která podporuje více jazyků, bylo by vhodné navrhnout aplikaci, která by umožňovala výběr souboru prostředků příslušného jazyka za běhu. Zdrojové soubory jsou převedeny do požadovaných jazyků. Tato metoda má tendenci se stát specifickou pro aplikaci nebo dokonce pro konkrétního dodavatele. Kód potřebný ke zpracování ověření vstupu a mnoho dalších typů údajů citlivých na národní prostředí musí také podporovat různé regionální požadavky. Moderní vývojové a operační systémy zahrnují sofistikované knihovny, které poskytují mezinárodní podporu pro tento druh dat.
I když se překlad existujících textů do jiných jazyků může zdát snadný, je obtížnější udržovat paralelní verze textů po celou dobu životnosti produktu. Pokud se například změní zpráva zobrazená uživateli, bude nutné změnit také všechny přeložené verze. To následně vede k poněkud delšímu vývojovému cyklu.
Mnoho problémů s regionalizací (například směr psaní, třídění textu atd.) Vyžaduje hlubší modifikaci než pouhý překlad textu. Například OpenOffice.org toho dosahuje prostřednictvím kompilačních přepínačů.
Do jisté míry (např. Pro zajištění kvality ) potřebuje vývojový tým někoho, kdo rozumí cizím jazykům a kulturám a má technické zázemí. Ve velkých zemích, kde existuje pouze jeden dominantní jazyk nebo kultura, je pravděpodobně těžké takového člověka najít.
Jedním z příkladů známých úskalí regionalizace je pokus společnosti Microsoft zachovat některé smysluplné klávesové zkratky pro místní jazyky. V některých programech v italsky mluvící verzi Microsoft Office byl klíč „CTRL + U“ ( podtržítko ) nahrazen funkcí „CTRL + S“ („sottolineato“), nikoli (téměř) univerzální funkcí „Uložit“ ...
V obchodním kontextu je výhodou internacionalizace přístup na nové trhy. To však vyžaduje značné náklady, které jdou daleko za hranice jednoduchého inženýrství. Nejprve je obvykle nutné provést generální opravu programu, aby mohl být uveden na trh globálně.
Poskytnutí překladu do daného jazyka se pak nepovažuje za triviální projekt. To zahrnuje zásah specializovaných technických autorů, kteří vytvářejí syntaxi přizpůsobenou kultuře, zejména v případě komplexních konceptů spojených s technickými prostředky pro vývoj a testování prvků regionalizace. Kromě toho je nutné upravit obchodní operace, aby bylo možné řídit výrobu, skladování a distribuci mnoha různých regionalizovaných produktů, které se často prodávají za různé ceny v různých měnách, v různých regulačních prostředích a podléhají různým daňovým režimům.
A konečně musí prodejní, marketingová a technická podpora také usnadnit jejich provoz v nových jazycích, aby pomohly spotřebitelům vybrat si jejich regionalizované produkty. Ale pokud jde o lidi, kteří mluví velmi málo používaným jazykem, neměli bychom nikdy očekávat, že regionalizované produkty budou ziskové. I když populace, které mluví rozšířeným jazykem, požadují, aby byl daný produkt přeložen, a produkt je již internacionalizován, dotčený vývojář softwaru nebo vydavatel bude určitě postrádat prostor nebo know-how pro správu dalších funkcí souvisejících se softwarem. několika jazycích. Například Microsoft Windows 7 má balíček k dispozici v 96 jazycích.
Alternativou, kterou často používají svobodné softwarové komunity , je participativní regionalizace týmů dobrovolníků. Například projekt K Desktop Environment 3 byl přeložen do více než 100 jazyků a projekt KDE Software Compilation 4 je k dispozici v 68 jazycích. Participativní regionalizace však vyžaduje, aby byl podkladový produkt nejprve navržen k financování těchto aktivit, což je značné úsilí.