Lokalizace a internacionalizace: Porovnání verzí

Smazaný obsah Přidaný obsah
opravena pravopisná chyba
typos
Řádek 15:
= NLS, i18n, l10n =
 
NLS (Native Language Support = podpora přirozeného jazyka): v podstaěpodstatě zahrnuje internacionalizaci i lokalizaci (viz níže). Některé aspekty NLS:
 
Ačkoliv pro programy v C je dá se říci GNU gettext kompletní sada nástrojů pro podporu NLS, scriptovacískriptovací jazyky (perl, shell, awk aj.) nejsou tak dobře podporované, i když je NLS možná
 
Některé programy (autoconf, bison, ..) mohou produkovat jiné programy či scriptyskripty. Ačkoliv je generující program sám internacionalizován, nemusí produkovat internacionalizovaný program (nepřímá internacionalizace). Může se stát, že vygenerovaný program bude nutné nezávisle internacionalizovat.
 
Volby a přepínače programů jsou často poplatné angličtině - je možné lokalizovat i toto.
Řádek 27:
Manuály přicházející s programovými balíky a soubory dokumentace by měly být také překládány. S tím úzce souvisí i otázky pozdějších update dokumentace, která se stejně jako doprovázené programy také vyvíjí.
 
Internacionalizace (internationalization = i18n): stručně řečeno, operace, po které jsou možné následné další lokalizace. Je to operace (jednorázová!), po které program nebo množina programů začleněná do jednoho balíku je schopna podporovat více jazyků. Je to zevšeobecnění při kterém programy uživajícíužívající pouze řetězce v jedné řeči (většinou v angličtině), jsou spojeny do obecných cest, jak provést to samé v jiných jazycích. Návrháři programů mohou užít pro interancionalizaciinternacionalizaci svých programů různé techniky, některé z nich byli standardizovány. Jeden z příkladů těchto standardů je GNU gettext.
 
Lokalizace je operace při které v již internacionalizovaných programech jsou poskytnuty informace takové, že mohou provádět své vstupy a výstupy ve tvaru, který je správný pro přirozené jazyky a kulturní zvyky. V podstatě intarnacionalizaceinternacionalizace je oblastí spíše programátorskou a lokalizace spíše překladatelskou.
 
Programátorské prostředí zavádí některé funkce pro použití dovolující konfiguraci za běhu. Vnější popis specifické množiny kulturních zvyklostí dané země spolu se všemi přiřazenými překlady do stejného přirozeného jazyka se nazývá "locale" pro tento jazyk nebo zemi.
Řádek 44:
 
ISO 8859-15 - v podstatě stejná jako ISO 8859-1, ale obsahuje znak Euro (€)
cp1250, Mac OS Central European (MacCE) - nestandartizovanénestandardizované kódové stránky používané v OS Windos (Microsoft) a MAC (Apple)
KOI8-CS a čeština Bří Kamenických jsou
 
Řádek 51:
Datumy - také formát datumu se liší pro jednotlivé lokality.Například vánoce v roce 1999 se píší jako 12/24/1999 v USA, 24/12/1999 v Austrálii a 24.12.1999 v ČR. Jiné země mohou používat ISO 8061 tvary datumu atd. Čas může být zapisován jako hh:mm, hh.mm, nebo jinak. Někde je čas specifikován v 24 hodinovém módu, někde jako AM, PM. Dále se může lišit rozšířením o korekci letního času mezi jednotlivými zeměmi.
 
Čísla - nejpoužívanější oblast v jazykové podpoře. Tady GNU gettext umožňuje návrhářům a uživatelúmuživatelům snadnou změnu jazyka, který SW používá pro komunikaci s uživateli.
 
 
Řádek 60:
LC_COLLATE - informace pro třídění a porovnávání textu tj. jak se různé znaky a/nebo skupiny znaků třídí v daném jazyce.
 
LC_CTYPE - informace o typu znaků (písmena, číslice,malá nebo velká písmena atd.). Tato informace ]je přístupná přes třídy znaků POSIX v legurálníchregulárních výrazech jako např. [[:alnum:]].
 
LC_MONETARY - informace o měně jako je symbol měny a zda se píše před a nebo za číslem.
Řádek 138:
Cíle GNU "gettext", přehled, soubory zařizující překlad, pohled ze strany uživatele, instalátora, programátora, překladatele a správce
 
Programy jsou obvykle psány a dokumentovány v angličtině a užívají angličtinu v době provádění pro interakci s uživateli - nejen v GNU, ale také ve velké části komerčního a volného software. Užití společného jazyka je vhodné pro komunikaci mezi vývojáři, správci a uživatelyuživateli ze všech zemí. Na druhou stranu ale většina lidí je spokojená méně s angličtinou než se svým vlastním přirozeným jazykem, a bude spíše preferovat užití svého mateřského jazyka pro každodenní práci.
 
GNU projekt překladu je zobecnění těchto snah do fungující struktury, a má dobré vyhlídky přinést dosažení skutečně vícejazykové sady programů.
Řádek 149:
Písmena PO v `.po' souborech znamenají "Portable Object", pro odlišení od `.mo' souborů, kde MO znamená Machine Object. Tento přístup i PO formát souboru, je inspirován NLS standardem navrženým skupinou Uniforum, a implementovaným firmou Sun v jejich operačním systému Solaris.
 
PO soubory jsou navrženy tak, aby byly čitelné a editovatelné lidmi, a přiřazují každý původní přeložitelný řetězec daného balíku s jeho překladem v jednotlivém cílovém jazyce. Jeden PO soubor je vyhraženvyhrazen pro jeden cílový jazyk. Jestliže balík podporuje více jazyků, je v něm jeden takový PO soubor pro každý podporovaný jazyk a každý balík má jeho vlastní množinu PO souborů. Tyto PO soubory je nejlepší vytvářet programem xgettext, a jejich pozdější úpravy programem tupdate. Program xgettext extrahuje všechny označené zprávy z množiny C souborů a inicializuje PO soubor s prázdnými překlady. Program tupdate hlídá obsahy PO souborů mezi verzemi odpovídajících zdrojů, okomentuje zastaralé položky, inicializuje nové a aktualizuje všechny odkazy ve zdrojových řádcích.
 
MO soubory jsou navrženy tak, aby byly čitelné programy, takže jsou binární. Několik systémů má také nářadí pro vytváření a práci s MO soubory jako část NLS (Native Language Support) systému, ale tvar těchto MO souborů je často odlišný od systému k systému a není přenositelný.
Řádek 188:
Pak nastáva počáteční překlad zpráv a jejich přidávání do `lang.pox'. Pokud se nepoužívá GNU Emacs, je nutné dodržovat formát PO souborů. Pokud již nějaké překlady byly uchovány v souhrnném PO souboru, překladatelé mohou užít PO mód pro inicializaci nepřeložených položek ze souhrnu a naopak do souhrnu uložit vybrané překlady. Souhrnné soubory jsou určeny k výměně mezi členy překladatelského týmu.
 
Programy nebo balíky programů jsou dynamické povahy: uživatelé napíší hlášení chyb a návrh vylepšení, správci reagují různou modifikací programů. To že balík již byl internacionalizován by nemělo správcům bránit v přidávání nových řetězců nebo modifikaci řetězců již přeložených. Ti dělají svou práci jak nejlépe mohou. Pro GNU Translation Project je důležité aby se správci nestarali o záležitosti překladu a překladatelé byli uchováni programátorských věcí. Jediná věc kterou by správci měli udělat je označení nových řetězců pro překlad (pokud by měly být přeloženy), ten ale nedělat. Následně, když jsou programy a jejich řetězce správci upraveny, by měl probramprogram xgettext vytvořit soubory `package.pot', které už pak jsou dále udržovány, takže překlady v počátečních `lang.po' časem pomalu zastarávají.
 
Pro překladatele (a také správce) je důležité porozumět, že překlad balíku je nepřetržitý proces trvající celou dobu života balíku, ne něco co se udělá jednou provždy na počátku. Po prvotním překladu daného balíku jsou potřebné občasné zásahy, protože některé přeložené položky zastarají, nové nepřeložené se objeví a potřebují přeložit.
 
Program tupdate má za úkol obnovu již existujícího `lang.po' souboru. Provede to porovnáním s novějším `balík.pot' dočasným soubormsouborem, extrahovaným programem xgettext z nových C zdrojů. Obnovovací operace upraví všechny odkazy na řetězce do příslušných míst C zdrojů, protože se tyto tyto řetězce posunují, tak jak jsou programy modifikovány. tupdate také zakomentuje v `lang.pox' jako zastaralé již přeložené položky které již nadále nejsou použité ve zdrojích programů. Nakonec zjistí nové řetězce a vloží je do výsledného PO souboru jako nepřeložené položky. Cílem je získání aktualizovaného `lang.pox' souboru poskytujícího překlady pro všechny řetězce. Když je správně vytvořen, tento soubor `lang.pox' může nahradit předchozí `lang.po' soubor.
 
Doba změn nebo pohybu PO souborů je nedílnou součástí "hry" překladu a měla by být pochopena a akceptována. Lidé kteří to odmítají budou mít problémy s podílením se na GNU Translation Project-u.
Řádek 204:
* '''Uživatele''' - je (měl by být!) nejjednodušší - normální uživatel by měl vidět, že aplikace s ním komunikuje jeho přirozeným jazykem. Ostatní SW inženýři - programátoři, překladatelé a správci by měli spolupracovat, aby to tak skutečně bylo. Pro uživatele by mělo být postačující nastavení proměnné '''LANG'''.
 
* '''Instalátora''' (nebo snad instalatéra ?) - balíky užívající GNU gettext se sami instalují tak, že povolují překlad zpráv. Při konfiguraci vlastností balíku před jeho překladem by měl konfigurační scriptskript (standardně má název "[[configure]]") sám zjistit, zda aktuální systém poskytuje gettext nebo catgets funkce. Pokud ne, měla by být automaticky vybrána GNU gettext knihovna. Instalátor může její použití vnutit - typicky volbou <code>'''./configure --with-gnu-gettext'''</code> obejde použití systémových gettext/catgets a vnutí použití GNU gettext. Naopak příkazem <code>'''./configure --disable-nls'''</code> se balík nakofigurujenakonfiguruje tak, že není schopen vůbec překládat zprávy.
Lokalizované balíky mají obecně mnoho "'''.po'''" souborů, každý pro jedno locale. Pokud není překlad potlačen, nainstalují se všechny. Nastavením (před konfigurací) proměnné '''LINGUAS''' je možné omezit instalaci '''.po''' souborů jen pro některé jazyky. proměnná '''LINGUAS''' by měla obsahovat mezerou oddělené dvoupísmenné kódy požadovaných jazyků.