Localisation/cs


 * O lokalizačním týmu Nadace Wikimedia se píše na .
 * Jak se překládají stránky této wiki objasní .

Toto je technický popis internacionalizace a lokalizace (i18n a L10n) MediaWiki. Obsahuje rady a doporučení, kterých by se měli držet vývojáři. Naše mantra je, že se i18n nemá implementovat dodatečně: je to klíčová součást, která by měla být součástí vašeho software od samého počátku, neboť patří mezi základní MediaWiki.

translatewiki.net
translatewiki.net podporuje překlady všech zpráv z jádra, rozšíření a témat, prostřednictvím překladatelských nástrojů, které nabízí wiki. Pokud se nechcete zaobírat technickými detaily ohledně editace souborů, Git, vydávání záplat a tak podobně, jděte rovnou na translatewiki.net.

Veškeré překlady zpráv uživatelského rozhraní MediaWiki by měly projít skrz translatewiki.net, neměly by být vkládány přímo do kódu. Ve zdrojovém kódu je vhodné pracovat pouze s anglickými zprávami a jejich dokumentací.

Jádro MediaWiki a jeho rozšíření musí k zobrazování veškerého textu uživatelského rozhraní využívat systémové zprávy. Příklad, jak na to, najdete zde:. Pokud je rozšíření napsáno správně, pravděpodobně se v objeví během několika dní poté, co o něm odpovědné osoby dají vědět na. Pokud si rozšíření nikdo nevšímá, dejte o tom vědět. Pokud je rozšíření pro překlad zatím nevhodné, zanechte o tom zprávu v kódu a uvědomte odpovědné osoby, je-li to nutné.

Vizte také Přehled lokalizačního systému a Co lze lokalizovat.

Hledání zpráv
demonstruje, jak můžete najít řetězec, který chcete přeložit. Povšimněte si zejména, který byl zaveden v.

E-mailová konference i18n
K odběru zpráv se můžete přihlásit zde: i18n. V danou chvíli je provoz nízký.

Struktura kódu
Nejprve máte jazykový objekt v. Tento objekt obsahuje všechny lokalizovatelné. Obsahuje i další důležitá nastavení specifická pro jazyk a vlastní chování (velká písmena, malá písmena, data tisku, formátovací čísla,, atd.).

Objekt je vytvořen ze dvou zdrojů: podkategorie jeho verzí (třídy) a soubory zpráv (zprávy).

K dispozici je také MessageCache class (třída mezipaměti zpráv), který zpracovává zadávání textu prostřednictvím jmenného prostoru MediaWiki. Většina internacionalizace se v současnosti provádí prostřednictvím objektů a pomocí funkce zkratky , která je definována v. Starší kód může stále používat staré funkce, které jsou nyní považovány za zastaralé ve prospěch výše uvedených objektů Message.

Obecné použití (pro vývojáře)
Viz též.

Jazykové objekty
Existují dva způsoby, jak získat jazykový objekt. Globály a  můžete použít pro uživatelské rozhraní a jazyk obsahu. Pro libovolný jazyk můžete vytvořit objekt pomocí, nahrazením označení " " kódem jazyka například "cs". Můžete také použít, pokud   již může být jazykovým objektem. Seznam kódů je v.

Objekty Language jsou potřebné pro provádění funkcí specifických pro jazyk. Nejčastěji pro formátování čísla, času a data. Ale také pro vytváření seznamů a dalších věcí. Existuje několik způsobů ukládání do mezipaměti a sloučení s, ale podrobnosti jsou při běžném použití irelevantní.

Používání zpráv
MediaWiki používá „centrální“ úložiště zpráv, na která jsou v kódu odkazovány klíče. To se liší od například, který pouze extrahuje překladatelné řetězce ze zdrojových souborů. Systém založený na klíči usnadňuje některá řešení, jako jsou rafinace původních textů a sledování změn zpráv. Nevýhodou je samozřejmě to, že seznam použitých zpráv a seznam zdrojových textů pro tyto klíče se mohou synchronizovat. V praxi to není velký problém a jediným významným problémem je, že někdy i další zprávy, které se již nepoužívají, stále zůstanou na překlad.

Chcete-li, aby klíče zpráv byly lépe ovladatelné a snadno vyhledatelné, také s grifem, vždy je pište úplné a nespoléhejte se na jejich dynamické vytváření. Části klíčů zpráv můžete zřetězit, pokud máte pocit, že je to lepší pro vaší struktuřu, ale umístěte komentář se seznamem možných výsledných klíčů poblíž. Například:

Podrobné použití funkcí zpráv v PHP a JavaScript je na.

Přidávání nových zpráv
Viz též:

Výběr klíče zprávy
Viz též:

Klíč zprávy musí být celosvětově jedinečný. To zahrnuje jádro MediaWiki a všechna rozšíření a vzhledy.

Držte se malých písmen, číslic a pomlček v názvech zpráv; většina ostatních znaků je nepraktická nebo vůbec nefungují. Podle konvence MediaWiki na prvním znaku nerozlišuje velká a malá písmena a na ostatních znacích velká a malá písmena rozlišuje.

Při pojmenování postupujte podle globálních nebo místních konvencí. Pro rozšíření použijte standardní předponu, nejlépe název přípony, někdy následovaný spojovníkem ("-"). Výjimky:


 * Zprávy používané API. Musí začínat,  ,  . Za tuto předponu vložte příponu. (Tyto zprávy by měly být v samostatném souboru, obvykle pod i18 / api.)
 * Zprávy související s protokolem. Musí začínat,  ,.
 * Uživatelská práva. Klíč pro jméno práva uvedený na Special:ListGroupRights musí začínat na . Název akce, která dokončuje větu „“, musí začínat na
 * Značky revizí musí začínat.
 * Názvy speciálních stránek musí začínat.

Další informace, které byste si měli všimnout při vytváření zpráv

 * 1) Ujistěte se, že pro zprávu používáte vhodné zpracování (analýza,   nahrazení, vazbu na HTML atd.)
 * 2) Pokud je vaše zpráva součástí jádra, měla by být obvykle přidána k , ačkoli některé komponenty, jako jsou Installer, EXIF tagy a ApiHelp, mají své vlastní soubory zpráv.
 * 3) Pokud je vaše zpráva s příponou, přidejte ji do souboru   nebo do souboru   v příslušném podadresáři. Zejména zprávy API, které vidí pouze vývojáři, a nikoli většina koncových uživatelů, jsou obvykle v samostatném souboru, například  . Pokud rozšíření obsahuje mnoho zpráv, můžete vytvořit podadresáře pod  . Všechny adresáře zpráv, včetně výchozího , musí být uvedeny v sekci   v   nebo v proměnné.
 * 4) Dejte si pauzu a zvažte znění zprávy. Je vám to co nejjasnější? Nepochopili jste? Pokud je to možné, požádejte o připomínky od jiných vývojářů nebo lokalizátorů. Postupujte podle  #internacionalizace.
 * 5) Přidat dokumentaci na   ve stejném adresáři. Další informace ve  zprávě k dokumentaci.

Zprávy, které by neměly být překládány

 * 1) Ignorované zprávy jsou ty, které by měly existovat pouze v anglickém souboru zpráv. Jsou to zprávy, které by neměly potřebovat překlad, protože odkazují pouze na jiné zprávy nebo jazykově neutrální funkce, např. Na zprávu „ “.
 * 2) Volitelné zprávy mohou být přeloženy, pouze pokud byly změněny v cílovém jazyce.

Chcete-li takové zprávy nahlásit:


 * (volitelně) použijte šablonu v dokumentaci, to znamená
 * nebo
 * (požadováno) sdělte rozšíření použité na, co dělat se zprávami, odesláním opravy, která je uvede podle potřeby (viz také ):
 * pro jádro, v přidejte klíče zpráv
 * pod  nebo
 * pod ;
 * pro rozšíření, do přidejte řádek pod název rozšíření jako
 * or
 * or

Odstraňování existujících zpráv
Odstraňte ji z  a. Neobtěžujte se s jinými jazyky. Aktualizace od budou toto zpracovávat automaticky.

Změna existujících zpráv

 * 1) Zvažte aktualizaci dokumentace ke zprávě (viz  #Přidávání nových zpráv (#Adding new messages)).
 * 2) Změňte klíč zprávy, pokud staré překlady nejsou vhodné pro nový význam. To také zahrnuje změny v zacházení se zprávami (analýza, unikání, parametry atd.). Zlepšení formulace zprávy bez technických změn obvykle není důvodem pro změnu klíče. Na translatewiki.net budou překlady označeny jako zastaralé, aby na ně mohli překladatelé zacílit. Změna klíče zprávy nevyžaduje rozhovor s týmem i18n ani podání žádosti o podporu. Pokud však máte zvláštní okolnosti nebo otázky, zeptejte se na [Irc://irc.freenode.org/mediawiki-i18n #mediawiki-i18n] nebo na stránka podpory na.
 * 3) Pokud je rozšíření podporováno, změňte prosím pouze anglickou zdrojovou zprávu a / nebo klíč a doprovodnou položku v  . V případě potřeby se tým translatewiki.net postará o aktualizaci překladů, jejich označení jako zastaralých, vyčištění souboru nebo přejmenování klíčů, pokud je to možné. To platí také tehdy, když měníte pouze věci, jako jsou značky HTML, které byste mohli změnit v jiných jazycích, aniž byste těmito jazyky mluvili. Většina z těchto akcí se bude provede za translatewiki.net a dosáhne Gitu přibližně s jedním dnem zpoždění.

Lokalizace jmenných prostorů a aliasy speciálních stránek
a speciální názvy stránek (tj. "RecentChanges" v "Special:RecentChanges") jsou také přeložitelné.

Jmenné prostory


V současné době je překlad jmenného prostoru zakázán na translatewiki.net, takže to musíte udělat sami v Gerritu, nebo zadejte úkol s žádostí, aby to udělal někdo jiný.

Chcete-li povolit překlad vlastních jmenných prostorů představených vaší příponou, vytvořte soubor, který vypadá takto:

Poté načtěte překladový soubor oboru názvů do  až

Nyní, když uživatel nainstaluje MyExtension na finskou (fi) wiki, bude vlastní jmenný prostor automaticky přeložen do finštiny a uživatel nemusí nic dělat!

Nezapomeňte také zaregistrovat jmenný prostor (-y) vaší přípony na stránce.

Aliasy speciálních stránek
Aktuální informace naleznete v. Následující se nezdá být platným.

Vytvořte nový soubor pro aliasy speciálních stránek v tomto formátu:

Potom jej nahrajte do instalačního souboru rozšíření takto:

Pokud váš speciální kód stránky používá buď  nebo   (ve třídě, která poskytuje Special:MyExtension), použijte, pokud je k dispozici, lokalizovaný alias.

Parametry zprávy
Některé zprávy mají parametry. Jsou reprezentovány,  ,  , … ve (statických) textech zpráv a nahrazeny za běhu. Typické hodnoty parametrů jsou čísla („3“ v „Smazat 3 verze?“) nebo uživatelská jména („Bob“ na „Stránka naposledy editovaná Bobem“), názvy stránek, odkazy atd. Nebo někdy i jiné zprávy. Mohou mít libovolnou složitost.

Seznam parametrů definovaných pro každou konkrétní zprávu je umístěn ve speciálním souboru „qqq.json“, který je umístěn ve složce „languages/“ na MediaWiki - více v dokumentace.

Nejlepe je používat celá slova s magickými slovy PLURAL, GENDER a GRAMMAR. Například  je lepší než. Usnadňuje vyhledávání.

Přepínače ve zprávách ...

 * Viz také .

Hodnoty parametrů někdy ovlivňují přesná znění nebo gramatické variace ve zprávách. Neusilujeme o nepěkné konstrukce, jako je „$1 (sub)page(s) of his/her userpage“. Jsou pro uživatele špatné a můžeme je udělat lépe. Místo toho provedeme přepínače, které jsou analyzovány podle hodnot, které budou známy za běhu. Text statické zprávy pak poskytuje každou z možných voleb v seznamu, před níž je uveden název přepínače a odkaz na hodnotu, která se mění.

To se podobá způsobu, jakým se v MediaWiki nazývají (sparser funkce). K dispozici je několik typů přepínačů. Pracují pouze tehdy, pokud pro zprávy provádíte úplnou analýzu nebo -transformaci.

… na číslech prostřednictvím PLURALu

 * Viz také .

MediaWiki podporuje množné číslo, což vytváří hezčí vzhled produktu. Například:

Je-li pro konkrétní číslo uvedeno jednoznačně množné číslo, je možné s následující syntaxí

Buďte si vědomi použití PLURALUu u všech čísel

 * Viz též: Plural

Pokud je třeba do textu zprávy vložit číslo, uvědomte si, že některé jazyky budou muset použít PLURALu, i když jsou vždy větší než 1. Důvodem je, že v PLURALu v jiných jazycích než v angličtině jsou velmi odlišná a složitá rozlišení, srovnatelná s angličtinou 1st, 2nd, 3rd, 4th, … 11th, 12th, 13th, … 21st, 22nd, 23rd, … atd.

Nepokoušejte se dodávat tři různé zprávy pro případy jako „žádné položky se nepočítají“, „jedna položka se počítá“, „počítá se více položek“. Spíše nechte jednu zprávu, aby je všechny vzala. Nechte to na překladatelích a PLURALu, aby s nimi řádně zacházeli s případnými rozdíly v prezentaci v jejich příslušných jazycích.

Pokud je to možné, vždy uveďte číslo jako parametr. Pokud je to možné, vždy ke zdrojovým zprávám přidejte syntaxi. I když to v angličtině nemá smysl. Syntaxe řídí překladatele.

Jsou podporována zlomková čísla, ale množná pravidla nemusí být úplná.

Předejte počet položek seznamu jako parametry zprávám o seznamech
Nepředpokládejte, že existuje pouze singulární a množné číslo. Mnoho jazyků má více než dvě formy, které závisí na aktuálním použitém počtu a při vyjádření toho, co je uvedeno v seznamu viditelném pro čtenáře, musí použít gramatiku měnící se podle počtu položek v seznamu. Tedy, když váš kód vypočítá seznam, zahrňte  jako parametr do titulků, náběhů, zápatí a dalších zpráv o seznamu, i když se počet v angličtině nepoužívá. Existuje neutrální způsob, jak mluvit o neviditelných seznamech, takže můžete mít odkazy na seznamy na dalších stránkách, aniž byste museli předem počítat položky.

… o uživatelských jménech prostřednictvím GENDER

 * Viz také .

Pokud se ve zprávě odkazujete na uživatele, předejte do zprávy uživatelské jméno jako parametr a do dokumentace zprávy přidejte zmínku o tom, že je podporováno pohlaví. Pokud je pravděpodobné, že GENDER bude použito v překladech do jazyků s genderovým skloňováním, přidejte je explicitně do zdrojové zprávy v anglickém jazyce.

Pokud přímo oslovujete aktuálně přihlášeného uživatele, nechte uživatelské jméno jako parametr prázdné:

Pokud do zprávy zahrnete uživatelské jméno (např. „“), zvažte nejprve jeho předání prostřednictvím, abyste zajistili, že znaky jako   nebo   nebudou interpretovány.

Uživatelé mají gramatická pohlaví

 * Viz též Gender

Když zpráva hovoří o uživateli, nebo se týká uživatele, nebo oslovuje uživatele přímo, uživatelské jméno by mělo být předáno zprávě jako parametr. Jazyky, které musejí nebo chtějí používat správnou gramatiku závislou na pohlaví, tak mohou udělat. To by mělo být provedeno, i když se uživatelské jméno nemá ve zprávě zobrazovat, například v „informujte uživatele na své diskusní stránce“, což je lépe provedeno „informujte uživatele na diskusní stránce “také v angličtině.

To neznamená, že jste vyzváni, abyste „sexizovali“ jazyk zpráv: používejte rodově neutrální jazyk, kdykoli je to možné s jasností a přesností.

… o použití kontextu uvnitř vět pomocí GRAMMAR

 * Viz také .

K dispozici jsou také gramatické transformace pro aglutinační jazyky. Například pro finštinu, kde bylo naprosto nutné učinit jazykové soubory nezávislými na webu, tj. odebrat odkazy z Wikipedie. Ve finštině se „about Wikipedia“ stává „Tietoja Wikipediasta“ a „you can upload it to Wikipedia“ se stává „Voit tallentaa tiedoston Wikipediaan“. Přípony se přidávají v závislosti na tom, jak se slovo používá spolu s drobnými úpravami základu. Existuje dlouhý seznam výjimek, ale protože bylo potřeba přeložit pouze několik slov, jako je název webu, nemuseli jsme jej uvádět.

MediaWiki má gramatické transformační funkce pro více než 20 jazyků. Některé z nich jsou pouze slovníky pro názvy webů Wikimedia, ale jiné mají jednoduché algoritmy, které ale selžou ve všech nejběžnějších případech.

Ještě předtím, než MediaWiki provedla libovolnou gramatickou transformaci, měla pro názvy měsíců nominativní (v prvním pádu) / genitivní (pádové) rozlišení. Toto rozlišení je nutné u některých jazyků, pokud chcete nahradit názvy měsíců větami.

Filtrování speciálních znaků v parametrech a ve zprávách
Dalším (mnohem jednodušším) problémem se substitucí parametrů je únik HTML. Přestože je MediaWiki mnohem jednodušší, dělá to docela špatně.

Dokumentace zprávy
Pro dokumentaci zpráv se používá pseudojazykový kód. Je to jeden z kódů standardu ISO 639, vyhrazený pro speciální použití. Tam neudržujeme překlady každé zprávy, ale shromažďujeme anglické věty „o každé zprávě“. Sděluje nám, kde se používá, poskytujeme rady o tom, jak ji překládat, a vyjmenovávat a popisovat její parametry, odkaz na související zprávy, a tak dále. V translatewiki.net se tyto rady zobrazují překladatelům, když upravují zprávy.

Programátoři musí dokumentovat každou zprávu. Dokumentace zpráv je nezbytným zdrojem - nejen pro překladatele, ale také pro všechny správce modulu. Kdykoli je do softwaru přidána zpráva, musí být také přidána odpovídající položka ; revize, které tak neučiní, jsou označeny „ “, dokud není přidána dokumentace.

Dokumentace v souborech  by měla být upravována přímo pouze při přidávání nových zpráv nebo při změně existující anglické zprávy způsobem, který vyžaduje změnu dokumentace, například přidání nebo odebrání parametrů. V ostatních případech by dokumentace měla být obvykle editována na translatewiki. Každý řetězec dokumentace je přístupný na https://translatewiki.net/wiki/MediaWiki: klíč zprávy /qqq, jako by to byl překlad. Tyto úpravy budou exportovány do zdrojových úložišť spolu s překlady.

Mezi užitečné informace, které by měly být v dokumentaci, patří:
 * 1) Zpracování zpráv (analýza, unikání, prostý text).
 * 2) Typ parametrů s příklady hodnot.
 * 3) Kde je zpráva použita (stránky, umístění v uživatelském rozhraní).
 * 4) Jak se zpráva používá tam, kde je použita (název stránky, text tlačítka, atd.).
 * 5) Jaké další zprávy se používají společně s touto zprávou nebo na které další zprávy se tato zpráva odkazuje.
 * 6) Cokoli jiného, co by mohlo být pochopeno, když je zpráva viděna v kontextu, ale ne když je zpráva zobrazena samostatně (což je případ, když je přeložena).
 * 7) Případně poznámky o gramatice. Například „otevřený“ v angličtině může být jak sloveso, tak přídavné jméno. V mnoha jiných jazycích jsou slova odlišná a nelze odhadnout, jak je překládat bez dokumentace.
 * 8) Přídavná jména, která popisují věci, jako jsou „postižené“, „otevřené“ nebo „blokované“, musí „vždy“ říkat, co popisují. V mnoha jazycích musí mít přídavná jména pohlaví podstatného jména, které popisují. Může se také stát, že různé druhy věcí potřebují různá přídavná jména.
 * 9) Má-li zpráva zvláštní vlastnosti, například pokud se jedná o název stránky nebo pokud by neměla být přímým překladem, přizpůsobena kultuře nebo projektu.
 * 10) Zda se zpráva objeví poblíž jiné zprávy, například v seznamu nebo nabídce. Znění nebo gramatické vlastnosti slov by pravděpodobně měly být podobné zprávám v okolí. Položky v seznamu mohou také souviset s nadpisem seznamu.
 * 11) Části zprávy, které nesmí být přeloženy, jako jsou obecný název oboru názvů, adresy URL nebo značky.
 * 12) Vysvětlení potenciálně nejasných slov, například zkratek, jako je „CTA“, nebo konkrétního žargonu, jako je „šablona“, „potlačení“ nebo „výhonek“. (Všimněte si, že je nejlepší se těmto slovům v první řadě vyhnout!)
 * 13) Screenshoty jsou velmi užitečné. Nepoužívat oříznutí - obrázek celé obrazovky, ve kterém se zpráva objeví, poskytuje úplný kontext a může být znovu použit v několika zprávách.

Několik dalších rad:
 * Pamatujte, že překladatelé velmi často překládají zprávy, aniž by skutečně používali software.
 * Překladatelé většinou nemají žádné kontextové informace ani o vašem modulu ani o jiných zprávách v něm.
 * Pouze přeformulovaná zpráva je ve většině případů zbytečná.
 * Nepoužívejte návrhářský žargon jako „nav“ nebo „comps“.
 * Zvažte napsat glosářtechnických termínů, které se používají ve vašem modulu. Pokud tak učiníte, ze zpráv na to odkažte.

Na jiné zprávy můžete odkazovat pomocí. Udělejte to, pokud části zpráv pocházejí z jiných zpráv (pokud tomu nelze zabránit) nebo pokud jsou některé zprávy zobrazeny společně nebo ve stejném kontextu.

translatewiki.net poskytuje některé výchozí šablony dokumentace: Pro více informací se podívejte na stránky šablon.
 * pro  zprávy
 * pro  zprávy
 * pro zprávy kolem skupin uživatelů (, ,  ,   a  )
 * pro  messages

Rady k internacionalizaci
Kromě dokumentace překladatelé žádají, abyste zvážili některé rady, pro ulehčení a jejich práce. Aby mohla být efektivnější a umožnila skutečnou a dobrou lokalizaci pro všechny jazyky. I když pouze přidáváte nebo upravujete zprávy v angličtině, měli byste si být vědomi potřeb všech jazyků. Každá zpráva je přeložena do více než 300 jazyků. Zprávy zpracujte co nejlepším možným způsobem. Správná implementace těchto rad vám také často pomůže psát lepší zprávy v angličtině.

Hlavní místa, kde můžete najít pomoc zkušených a informovaných lidí ohledně i18n:
 * stránka podpory pro translatewiki.net.
 * #mediawiki-i18n pro zapínání irc kanálu http://freenode.net.

Prosím, zeptejte se tam!

Správně používejte parametry zprávy a přepínače
Je to předpoklad správného znění vašich zpráv.

Vyhněte se opětovnému použití zprávy
Překladatelé odrazují od opakovaného použití zprávy. To se může zdát kontra intuitivní, protože kopírování a duplikace kódů je obvykle špatný postup, ale u systémových zpráv je to často nutné. Ačkoli mohou být dva pojmy v angličtině vyjádřeny stejným slovem, nemusí to nutně znamenat, že mohou být vyjádřeny stejným slovem v každém jazyce. "OK" je dobrým příkladem: v angličtině se používá pro označení obecných tlačítek, ale v některých jazycích upřednostňují použití označení tlačítek souvisejících s operací, která bude tlačítkem prováděna. Dalším příkladem je prakticky jakékoli přídavné jméno: slovo jako „multiple“ (vícenásobně) v mnoha jazycích se mění podle pohlaví. Nelze jej znovu použít v jedné zprávě k popisu několika různých věcí. Musíte vytvořit několik samostatných zpráv.

Pokud přidáváte více identických zpráv, přidejte prosím dokumentaci k popisu rozdílů v jejich kontextech. Nebojte se o práci navíc pro překladatele. Překladová paměť v nich hodně pomáhá, zatímco si zachovává flexibilitu pro různé překlady v případě potřeby.

Vyhněte se fragmentovaným nebo „patchworkovým“ (slátaninám) zprávám
Jazyky mají různé pořadí slov a složitá gramatická a syntaktická pravidla. Je velmi obtížné překládat „lego“ zprávy, tj. zprávy tvořené několika částmi textu, třeba s určitým přesměrováním (také nazývaným „řetězové zřetězení“).

Je lepší udělat z každé zprávy úplnou a jednoduchou frázi. V případě potřeby lze snadněji do textového bloku zkombinovat několik vět. Pokud chcete zkombinovat několik řetězců do jedné zprávy, předejte je jako parametry, protože překladatelé je mohou při překladu správně uspořádat podle svého jazyka.

Vzájemně citované zprávy
Výjimkou z tohoto pravidla mohou být vzájemně citované zprávy: 'Do pole označeného „ " zadejte jméno původního autora a klikněte na „  " pro pokračování'. Díky tomu bude zpráva konzistentní, když vývojář softwaru nebo operátor wiki změní zprávy „jméno“ nebo „pokračovat“ později. Bez int-hacku by si vývojáři a operátoři museli být vědomi všech souvisejících zpráv, které vyžadují úpravu, když je změní.

Nepoužívejte termíny a šablony, které jsou specifické pro konkrétní projekty
MediaWiki používají velmi různí lidé v hnutí Wikimedia i mimo něj. Přestože byl původně vytvořen pro encyklopedii, nyní se používá pro různé druhy obsahu. Proto používejte obecné termíny. Vyhněte se například výrazům jako „článek“ a místo toho použijte „stránku“. Pokud si nejste zcela jisti, že vyvíjená funkce bude použita pouze na webu, kde se stránky nazývají „články“. Nepoužívejte „village pump“ (obecné čerpadlo), což je název komunitní stránky anglické Wikipedie. Místo toho použijte obecný pojem, například „komunitní diskusní stránku“.

Nepředpokládejte, že na všech wiki existuje určitá šablona. Šablony jsou pro wiki lokální. Platí to jak pro zdrojové zprávy, tak i pro jejich překlady. Zprávy používající šablony budou fungovat pouze pokud je šablona na každé wiki, kde je tato funkce implementována. Nejlepší je vyhnout se použití šablon ve zprávách úplně. Pokud je musíte skutečně použít, musíte to jasně dokumentovat v dokumentaci ke zprávě a v pokynech pro instalaci rozšíření.

Oddělené časy od dat ve větách
Některé jazyky musí vložit něco mezi datum a čas. Závisí to na gramatice jiných slov ve větě. Nebudou tedy moci jednoduše kombinovat datum a čas. Jiní mohou považovat kombinaci za vhodnou, proto je obvykle nejlepší volbou poskytnout v těchto případech tři hodnoty parametrů (datum/čas, datum, čas) a v každém překladu ponechte buď první nebo poslední dva nevyužité podle potřeby.

Vyhněte se ve zprávách
má několik nevýhod. Může to být cokoli (zkratka, slovo, krátká fráze,  atd. ) A v závislosti na jazyce může vyžadovat použití  při každém výskytu. Bez ohledu na to bude každou zprávu s  nutné zkontrolovat ve většině jazyků wiki pro každou novou wiki, na které je nainstalován váš kód. Ve většině případů, kdy pro jazyk neexistuje obecná konfigurace, budou muset operátoři wiki přidat nebo změnit PHP kód tak, aby získali   pro práci. To vyžaduje nejen více dovedností, ale i více porozumění, než je běžné. Je vhodnější mít obecné odkazy, jako je „tato wiki“. Nezabrání to instalacím lokálně měnit tyto zprávy tak, aby používaly. Ale přinejmenším nemusí hned a mohou odložit přizpůsobení zprávy až do wiki již běžící a používané.

Vyhněte se odkazům na vizuální rozvržení a pozice
Vše co se vykresluje, kde záleží na vzhledu. Nejčastěji jsou pro jazyky psané zprava doleva zrcadlena rozvržení obrazovky jazyků psaných zleva doprava. Ne vždy, ne zcela jen a pro některé jazyky a některé wiki. Ruční zařízení, úzká okna atd. Mohou pod sebou zobrazovat bloky, které by se objevily vedle sebe na větších displejích. Jelikož skripty a gadgety napsané na webu a uživatelské skripty a gadgety JavaScript mohou skrýt části nebo věci měnit nepředvídatelným způsobem, neexistuje spolehlivý způsob, jak zjistit správné rozvržení.

Není správné spojit informace o rozvržení s jazykem obsahu. Jazyk uživatelského rozhraní nemusí být jazykem obsahu stránky a rozvržení může být směsí obou v závislosti na okolnostech. Nevizuální uživatelští agenti, jako jsou čtečky akustických obrazovek a další pomocná zařízení, ani nemají koncepci vizuálního uspořádání. Ve většině případů by jste tedy neměli odkazovat na pozice vizuálního rozvržení, ačkoli výrazy sémantického rozvržení mohou být stále použity („předchozí kroky ve formuláři“, „atd.“).

MediaWiki nepodporuje zobrazování různých zpráv nebo fragmentů zpráv na základě aktuální směrovosti rozhraní (viz T30997).

Nový prohlížeč a podpora MediaWiki pro psaní ve východním a severoasijském písmu shora dolů způsobí, že rozvržení obrazovky bude ještě nepředvídatelnější. nejméně osm možných rozvržení (levá/pravá počáteční poloha, horní/dolní počáteční poloha a to, co se stane nejdříve).

Vyhněte se odkazům na barvy obrazovky
Barva, ve které se něco vykresluje, závisí na mnoha faktorech, včetně vzhledů, skriptů a miniaplikacích JavaScriptu napsaných na webu a na uživateli a na přepsání místních agentů uživatelů z důvodu dostupnosti nebo technologických omezení. Nevizuální uživatelští agenti, jako jsou čtečky akustických obrazovek a další pomocná zařízení, ani nemají koncept barev. Proto by jste neměli odkazovat na barvy obrazovky. (Ze stejného důvodu by jste se také neměli spoléhat na barvu jako na mechanismus informování uživatele o stavu.)

Mít prvky zprávy před a za každým vstupním polem

 * Toto je doporučené vodítko, které se dosud nestalo standardem ve vývoji MediaWiki

Angličtina sice umožňuje efektivní využití dotazů ve vstupním poli položka – dvojtečka – prostor –, mnoho jiných jazyků však ne. Dokonce i v angličtině chcete častěji použít „Vzdálenost: ___ metrů“ než „Vzdálenost (v metrech): ___“. Ponecháte-li elementy  stranou, měli by jste myslet na každé vstupní pole, které následuje po vzoru „Vzdálenost: ___ metrů“. Tak:
 * vytvořte dvě zprávy, i když je druhá nd první může být v angličtině a některých dalších jazycích prázdná, nebo
 * umožněte vkládatat vstupy pomocí parametrů.

Vyhněte se nepřekládanému značkování HTML ve zprávách
Značky HTML, které nevyžadují překlad, například uzavírání  s, pravítka nad nebo pod a podobně, by obvykle neměly být součástí zpráv. Značky HTML, nevyžadující překlad, například uzavírání, pravítka nad nebo pod a podobně, by obvykle neměly být součástí zpráv. Obecně se prostému HTML ve zprávách vyhněte, pokud je to možné.

Zprávy jsou často delší, než si myslíte!
Při překládání souborů zpráv v cizím jazyce nenajdete téměř nikdy zprávy kratší než ty čínské, zřídkakdy kratší než ty anglické, ale nejčastěji mnohem delší než anglické.

Zejména ve formátu, před vstupními poli, mají anglické zprávy tendenci být těsné a krátké. To se často v překladech neuchovává. Obzvláště skutečně netechnické jazyky třetího světa, lidové, středověké nebo starověké jazyky vyžadují k vysvětlení cizích nebo technických výzev několik slov nebo dokonce celé věty. Například krátká anglická zpráva „TSV file:“ může být přeložena do jazyka doslovně:"Sem zadejte název, který označuje soubor počítačových dat, který se skládá z postupně uspořádané řady psaných řádků, které jsou samy uspořádány jako série informačních polí, kde jsou uvedená pole informací ohraničena a hranice mezi nimi jsou jednoduché znaky toho druhu, který posouvá vozík psacího stroje dopředu na další předem definovanou pozici. Tady jdeme: _____ (děkuji)" Toto je, samozřejmě, extrémní příklad, ale je to pro názornost. Představte si tuto větu ve sloupci ve formě, kde každé slovo zabírá vlastní linii a vstupní pole je vertikálně vystředěno v dalším sloupci. :-(

Nepoužívejte velmi blízká, podobná nebo identická slova k označení různých věcí nebo konceptů
Například stránky mohou mít starší „revize“ (určitého data, času a úprav), které obsahují minulé „verze“ dané stránky. Slova „revize“ a „verze“ lze použít zaměnitelně. Při revizi verzí stránek dochází k potížím a je zmíněna revize, tj. Proces jejich revize. To nemusí představovat vážný problém, pokud mají dvě synonyma „revize“ různé překlady. Nehcete-li způsobit vážný problém, musíte mít pro dvě synonyma „revize“ různé překlady. Aby se předešlo nesprávnému výkladu, je lepší se potížím vyhnout použitím „revize“ „aka“ „verze“.

Základní slova mohou mít nepředvídané konotace, nebo vůbec neexistují
Existují slova, která se obtížně překládají kvůli jejich velmi specifickému použití v MediaWiki. Některá se vůbec nepřekládají. Například v několika jazycích neexistuje slovo „uživatel“ týkající se „někoho, kdo něco používá“. Podobně se v kolínském dialiktu (Kölsch)anglická slova "namespace" a "apartment" překládají na stejné slovo. Kölsch říká „podporovatel a účastník“, protože jakýkoli odkaz na „použití“ by v dialektu příliš silně znamenal „zneužívání“. Termín „wiki farma“ se překládá jako „stabilní plný wikis“, protože farma s jednou plodinou by byla v rozporu s jazykem a nebyla by „pochopena“ atd.

Očekávejte nepřekládaná slova

 * Toto je doporučené vodítko, které se dosud nestalo standardem ve vývoji MediaWiki

Není neobvyklé, že správná počítačová jména, názvy značek, „atd.“ v angličtině nejsou přeložena a namísto toho jsou považována za slova výpůjčená nebo cizí slova. V posledně uvedeném případě mohou někteří zvláště nároční překladatelé označit HTML značkami taková slova, že patří do jiného jazyka, například ….

Možná budete chtít zvážit, zda obsluha výstupu zpráv projde takovým značením i přes zjevná bezpečnostní rizika.

Povolit vysvětlující vložené značení

 * Toto je doporučené vodítko, které se dosud nestalo standardem ve vývoji MediaWiki

V cílových jazycích jsou někdy zkratky, technické termíny nebo obecně dvojznačná slova, která nemusí nováčci okamžitě pochopit, ale jsou pro zkušené uživatele počítačů zřejmé. Aby se předešlo nepřehlednému zobrazení dlouhých vysvětlení, aniž by nováčci ztratili souvislost, mohou se překladatelé rozhodnout přidat vysvětlení jako anotaci, kterou prohlížeče zobrazují, když na ni přejdete myší.

Například základní zpráva Mediacodeiki  o rotaci obrazu, která je v angličtině jednoduše „ “, je v marocké arabštině přeložena jako:

poskytuje:
 * mḍwwer 90° ĜĜS

v případě potřeby vysvětlení zkratky pro „proti směru hodinových ručiček“.

Možná budete chtít zvážit, zda obsluha výstupu vaší zprávy předá takové značení spolu s originální i když se původní zpráva nepoužívá.

V případě potřeby použijte značky, a
Když mluvíte o technických parametrech, hodnotách nebo klávesových vstupech, označíte je jako takové pomocí značek HTML,   nebo. Jsou tedy typograficky započteny v běžném textu. To čtenářům objasňuje jejich smysl, vyhýbá se zmatkům, chybám a nesprávným vyjádřením. Zajistěte, aby obsluha zpráv takové značení povolila.

Symboly, dvojtečky, závorky, atd.  Jsou součástí zpráv
Mnoho symbolů je také lokalizovatelných. Některé skripty mají jiné druhy závorek, než má latinský skript. Dvojtečka nemusí být v některých jazycích vhodná po označení nebo výzvě k zadání. Zahrnutí těchto symbolů do zpráv pomáhá vytvářet lepší a méně anglocentrické překlady a také snižuje nepořádek kódu.

Například existují různé konvence uvozovek používané v «norštině», »švédštině», »dánštině«, „němčině“ a 「japonštině」.

Pokud potřebujete zabalit nějaký text do lokalizovaných závorek, závorek nebo uvozovek, můžete použít závorky   nebo    nebo   (uvozovky)  zprávy jako:

Nečekejte, že symboly a interpunkce přežijí překlad
Jazyky psané zprava doleva (na rozdíl od angličtiny) obvykle zaměňují symboly šipek, které jsou prezentovány s odkazy „next“ a „previous“, a jejich umístění vzhledem k textu zprávy může nebo nemusí být obráceno. Ellipsis může být přeložen do „“ atd. “Nebo do slov. Otazníky, vykřičníky, dvojtečky budou umístěny jinak než na konci věty, zobrazí se dvakrát nebo vůbec ne. V důsledku toho vždy zahrňte všechny do textu vašich zpráv a nikdy se je nepokoušejte vkládat programově.

Použijte bodky
Pisatel ukončuje normální věty tečkami. To je často jediný ukazatel, kdy překladatel ví, že se nejedná o titulky nebo položky seznamu. Což může být nutné přeložit odlišně.

Wikitext odkazů
Spojovací kotvy lze do zpráv vkládat několika způsoby:
 * 1) přes wikitext: …   …,
 * 2) přes wikitext: …  … nebo
 * 3) # kotvený text je zpráva v oboru názvů MediaWiki.  Vyhni se mu! 

S překladateli je často obtížné nebo nemožné se domlouvat, vyhněte se fragmentovaným nebo „zmatečným“ zprávám také zde. Ujistěte se, že " " neobsahuje mezery.

Použijte smysluplné odkazové kotvy
Dávejte pozor na jejich znění. Spojovací kotvy hrají důležitou roli při hodnocení stránek ve vyhledávačích - jak propojená slova, tak cílová kotva. Ujistěte se, že kotva dobře popisuje cílovou stránku. Vždy se vyhýbejte běžným a obecným slovům. Například „Click here“ je absolutně bezvýznamná kotva,, protože cílové stránky nejsou téměř nikdy „o kliknutí“. Nezadávejte kotvu ani do vět kolem odkazů, protože „zde“ není místo, na které by bylo možné kliknout. Místo toho použijte přesná akční slova, která sdělí, k čemu se uživatel dostane, když následuje odkaz, například „Můžete, pokud si budete přát, aktualizovat soubor.“

Viz také Help users predict where they are going (Pomozte uživatelům předvídat, kam směřují) a Navigace do tajemného jádra.

Vyhněte se žargonu a slangu
Vyhněte se žargonu vývojářů a uživatelů ve zprávách. Kdykoli je to možné, pokuste se použít co nejjednodušší jazyk. Pokud chcete uživateli oznámit, že se něco stalo nebo nestalo, vyhněte se slovům „úspěch“, „úspěšně“, „selhání“, „došlo k chybě“. Vyplývá to z toho, že vývojáři vidí všechno jako pravdivé nebo nepravdivé, ale uživatelé obvykle jen chtějí vědět, co se ve skutečnosti stalo nebo ne, a co by s tím měli dělat (pokud vůbec). Tak:
 * "Soubor byl úspěšně přejmenován" -> "Soubor byl přejmenován"
 * "Přejmenování souboru se nezdařilo" -> "Soubor s tímto názvem již existuje. Vyberte jiné jméno."

Jedna věta na řádek

 * Toto je doporučené vodítko, které se dosud nestalo standardem ve vývoji MediaWiki

Zkuste jednu větu nebo podobný blok v jednom řádku. Pomáhá to porovnávat zprávy v různých jazycích a může být použito jako nápověda pro segmentaci a zarovnání v překladových pamětech.

Buďte si vědomi zalomení mezer a řádků
Lokalizované zprávy MediaWiki se obvykle upravují v rámci wiki. Buď pomocí operací wiki na live wiki nebo překladateli na translatewiki.net. Měli byste si být vědomi toho, jak mezery, zejména na začátku nebo na konci vaší zprávy, ovlivní editory:


 * Nové řádky na začátku nebo na konci zprávy jsou křehké a budou náhodně odstraněny. Spusťte a ukončete svou zprávu aktivním textem. Pokud potřebujete nový řádek nebo zalomení odstavce, kód by se měl zadávat přidáním do textu.
 * Mezery na začátku nebo na konci zprávy budou pravděpodobně během editace odstraněny a je třeba se jim vyhnout. Pokud je vyžadována mezera, vložte ji ve formě znaku, jako je &amp;nbsp; (v tom případě zkontrolujte nastavení úniku!)

Použít standardní velká písmena
Velká písmena poskytují překladatelům informace o tom, co překládají, jako jsou jednotlivá slova, položky seznamu nebo nabídky, fráze nebo celé věty. Při hodnocení vašich stránek ve vyhledávačích můžou hrát roli také správná (standardní) velká písmena. MediaWiki používá ukázkovou větu (The quick brown fox jumps over the lazy dog (Rychlá hnědá liška přeskočí přes líného psa)) ve zprávách rozhraní.

Vždy pamatujte, že mnoho systémů psaní nemá velká písmena a některé systémy je používají odlišně od angličtiny. Nepoužívejte proto ALL-CAPS pro zdůraznění. Použijte CSS nebo HTML  nebo   níže:

Důraz
V normálním textu by zdůraznění, jako například tučné nebo kurzíva a podobné, měly být součástí textů zpráv. Místní konvence o důrazu se často liší, zejména některé asijské skripty mají své vlastní. Překladatelé musí být schopni přizpůsobit důraz na své cílové jazyky a oblasti. Zkuste ve svém uživatelském rozhraní použít " " a " " a povolit zvýraznění na základě jazyka nebo skriptu.

V moderních způsobech zobrazení anglických a evropských stylů je důraz využíván méně. Sdělte to ve své dokumentaci se zprávou. Může poskytnout cenné rady při překládání. Důraz může a měl by být použit v případě potřeby v jiných kulturních kontextech za předpokladu, že o tom budou překladatelé vědět.

Aktualizace lokalizace
Jak je uvedeno výše, překlad se děje na translatewiki.net a jiné systémy nejsou doporučovány. Zde je přehled práce na vysoké úrovni pracovního postupu aktualizace lokalizace:
 * Vývojáři.
 * Uživatelé překládají nové nebo změněné systémové zprávy na translatewiki.net.
 * Automatické nástroje exportují tyto zprávy, vytvářejí „nové verze“ souborů zpráv, které obsahují přidané nebo aktualizované zprávy, pro jádro i rozšíření, a váží je ke git.
 * Wiki pak mohou stahovat aktualizované systémové zprávy z úložiště git.

Projekty Wikimedia a jakékoli jiné wiki mohou okamžitě a automaticky profitovat z lokalizačních prací díky rozšíření (Rozšíření: Aktualizace lokalizace). Porovnává nejnovější anglické zprávy s anglickými zprávami ve vývoji. Pokud nejsou stejné, produkční překlady jsou aktualizovány a zpřístupněny uživatelům.

Jakmile jsou překlady v systému pro správu verzí, má nadace Wikimedia Foundation každodenní úkol. Aktualizovat úložiště nebo klon úložiště rozšíření. Toto bylo poprvé zavedeno v září 2009.

Protože změny na translatewiki.net jsou denně zasílány do kódu, znamená to, že každá změna zprávy může být, za pár dní bez jakéhokoli ručního zásahu nebo traumatické aktualizace kódu, potenciálně aplikována na všechny stávající instalace MediaWiki.

Jak vidíte, jedná se o proces s několika kroky. Postupem času jsme zjistili, že se může mnoho věcí pokazit. Pokud se domníváte, že je proces přerušen, nezapomeňte to nahlásit na naší ohlašovací stránce nebo vytvořit novou chybu na Phabricator. Vždy nezapomeňte popsat přesné pozorování.

Vyřizování žádostí o podporu

 * Hlavní stránka: translatewiki:Translating:Localisation for developers.

Překladatelé mohou mít dotazy týkající se některých zpráv, které vytvoříte. Translatewiki.net poskytuje systém žádost o podporu, která umožňuje překladatelům zeptat se vás, vlastníka projektu, na otázky týkající se zpráv, aby je bylo možné lépe přeložit. Tento krátký seminář (tutoriál) vás provede pracovním postupem zpracování požadavků na podporu translatewiki.net.

Zdroje zpráv
Kód vyhledá z těchto zdrojů:


 * Jmenný prostor MediaWiki. Umožňuje wiki přijímat nebo potlačovat všechny své zprávy, když se standardní zprávy nehodí nebo nejsou žádoucí (viz starý místní překladový systém).
 * MediaWiki:  Message-key  je výchozí zpráva,
 * MediaWiki: Message-key/language-code je zpráva, která se použije, když uživatel vybere jiný jazyk, než je výchozí jazyk wiki.
 * Ze souborů zpráv:
 * Jádro MediaWiki samotné a nejvíce aktuálně udržovaná rozšíření používají soubor v jazyce s názvem, kde zyx je kód jazyka pro daný jazyk.
 * Některá starší rozšíření používají kombinovaný soubor zpráv obsahující všechny zprávy ve všech jazycích, obvykle s názvem.
 * Mnoho wiki Wikimedia Foundation přistupuje k některým zprávám z rozšíření, což jim umožňuje standardizovat zprávy napříč wiki WMF, aniž by je ukládaly při každé instalaci MediaWiki.
 * Několik rozšíření používá jiné techniky.

Mezipaměť
Systémové zprávy jsou jednou z nejvýznamnějších součástí MediaWiki. Především proto, že se používají v každém webovém požadavku. Soubory zpráv PHP jsou velké, protože ukládají tisíce klíčů a hodnot zpráv. Načtení tohoto souboru (a případně více souborů, pokud se jazyk uživatele liší od jazyka obsahu) vyžaduje velkou paměť a nároky na výkon. Pro snížení tohoto dopadu na výkon se používá agresivní vrstvený systém ukládání do mezipaměti.

MediaWiki obsahuje mnoho mechanismů ukládání do mezipaměti, díky nimž je kód poněkud obtížnější pochopit. Od 1.16 existuje nový systém ukládání do mezipaměti, který ukládá zprávy do mezipaměti buď do souborů ., nebo do databáze. Přizpůsobené zprávy jsou ukládány do mezipaměti v souborovém systému a v (nebo alternativě), v závislosti na konfiguraci.

Níže uvedená tabulka uvádí přehled příslušných nastavení:

V MediaWiki 1.27.0 a 1.27.1 byla autodetekce změněna tak, aby upřednostňovala backend souboru. V případě, že  (výchozí), je backend souboru použit s cestou z. Pokud tato hodnota není nastavena (což je výchozí hodnota), použije se dočasný adresář určený operačním systémem. Nelze-li zjistit dočasný adresář, použije se jako záložní zdroj backend databáze. Toto bylo vráceno z 1.27.2 a 1.28.0 kvůli konfliktu souborů na sdílených hostitelích a problémech se zabezpečením (viz T127127 a T161453).

Funkce backtrace
Pro lepší vizuální zobrazení vrstev ukládání do mezipaměti je zde funkce backtrace o tom, jaké metody se nazývají při načítání zprávy. Vysvětlení jednotlivých vrstev viz níže.

Mezipaměť zpráv
Třída  je nejvyšší úroveň ukládání zpráv do mezipaměti. Volá se ze třídy Message a vrací konečný hrubý obsah zprávy. Tato úroveň zpracovává následující logiku: Poslední odrážka je důležitá. umožňuje MediaWiki ustoupit na jiném jazyce, pokud originál neobsahuje zprávu, o kterou se žádá. Jak je uvedeno v následující části, k většině jazykových nouzových rozlišení dochází na nižší úrovni. Pouze úroveň  v databázi kontroluje přepsané zprávy. Zde se provádí integrace přepsaných zpráv z databáze do záložního řetězce. Pokud databázi nepoužíváte, lze celou úroveň deaktivovat.
 * Kontrola přepisování zpráv v databázi
 * Ukládání mezipaměti zpráv do mezipaměti v, nebo cokoli je nastaveno na
 * Řešení zbývající části sekvence

Lokalizační cache
Viz

LCStore
The  class is merely a back-end implementation used by the LocalisationCache class for actually caching and retrieving messages. Like the  class, which is used for general caching in MediaWiki, there are a number of different cache types (configured using ): The "file" option is used by the Wikimedia Foundation, and is recommended because it is faster than going to the database and more reliable than the APC cache, especially since APC is incompatible with PHP versions 5.5 or later.
 * "db" (default) - Caches messages in the database
 * "file" (default if  is set) - Uses CDB to cache messages in a local file
 * "accel" - Uses APC or another opcode cache to store the data

Licence
Any edits made to the language must be licensed under the terms of the GNU General Public License to be included in the MediaWiki software. Other extensions may be under different licences.

Old local translation system
With MediaWiki 1.3.0, a new system was set up for localising MediaWiki. Instead of editing the language file and asking developers to apply the change, users could edit the interface strings directly from their wikis. This is the system in use as of August 2005. People can find the message they want to translate in Special:AllMessages and then edit the relevant string in the  namespace. Once edited, these changes are live. There was no more need to request an update, and wait for developers to check and update the file.

The system is great for Wikipedia projects; however a side effect is that the MediaWiki language files shipped with the software are no longer quite up-to-date, and it is harder for developers to keep the files on meta in sync with the real language files.

As the default language files do not provide enough translated material, we face two problems:
 * 1) New Wikimedia projects created in a language which has not been updated for a long time, need a total re-translation of the interface.
 * 2) Other users of MediaWiki (including Wikimedia projects in the same language) are left with untranslated interfaces. This is especially unfortunate for the smaller languages which don't have many translators.

This is not such a big issue anymore, because translatewiki.net is advertised prominently and used by almost all translations. Local translations still do happen sometimes but they're strongly discouraged. Local messages mostly have to be deleted, moving the relevant translations to translatewiki.net and leaving on the wiki only the site-specific customisation; there's a huge backlog especially in older projects, [//toolserver.org/~robin/?tool=cleanuplocalmsgs this tool] helps with cleanup.

Keeping messages centralised and in sync
English messages are very rarely out of sync with the code. Experience has shown that it's convenient to have all the English messages in the same place. Revising the English text can be done without reference to the code, just like translation can. Programmers sometimes make very poor choices for the default text.

Co lze lokalizovat
So many things are localisable on MediaWiki that not all of them are directly available on translatewiki.net: see translatewiki:Translating:MediaWiki. If something requires a developer intervention on the code, you can request it on Phabricator, or ask at Support if you don't know what to do exactly.


 * Namespaces (both core and extensions', plus gender-dependent user namespaces)
 * Weekdays (and abbreviations)
 * Months (and abbreviations)
 * Bookstores for Special:BookSources
 * Skin names
 * Math names
 * (for compatibility with old MediaWiki databases)
 * Default user option overrides
 * Language names
 * Country names (via )
 * Currency names (via )
 * Timezones
 * Character encoding conversion via
 * UpperLowerCase first (needs casemaps for some)
 * UpperLowerCase
 * Uppercase words
 * Uppercase word breaks
 * Case folding
 * Strip punctuation for MySQL search (search optimisation)
 * Get first character
 * Alternate encoding
 * Recoding for edit (and then recode input)
 * Get first character
 * Alternate encoding
 * Recoding for edit (and then recode input)
 * Fallback languages (that is, other more closely related language(s) to use when a translation is not available, instead of the default fallback, which is English)
 * Directionality (left to right or right to left, RTL)
 * Direction mark character depending on RTL
 * Arrow depending on RTL
 * Languages where italics cannot be used
 * Number formatting (comma-ify, i.e. adding or not digits separators; transform digits; transform separators)
 * Truncate (multibyte)
 * Grammar conversions for inflected languages
 * Plural transformations
 * Formatting expiry times
 * Segmenting for diffs (Chinese)
 * Convert to variants of language (between different orthographies, or scripts)
 * Language specific user preference options
 * and link prefix, e.g.:  These are letters that can be glued after/before the closing/opening brackets of a wiki link, but appear rendered on the screen as if part of the link (that is, clickable and in the same colour). By default the link trail is "a-z"; you may want to add the accentuated or non-Latin letters used by your language to the list.
 * Language code (preferably used according to the latest RFC in standard BCP 47, currently RFC 5646, with its associated IANA database. Avoid deprecated, grandfathered and private-use codes: look at what they mean in standard ISO 639, and avoid codes assigned to collections/families of languages in ISO 639-5, and ISO 639 codes which were not imported in the IANA database for BCP 47)
 * Type of emphasising
 * The extension has a special page file per language,   for language code.

Neat functionality:


 * I18N
 * Roman numeral formatting

Namespace name aliases
Namespace name aliases are additional names which can be used to address existing namespaces. They are rarely needed, but not having them when they are, usually creates havoc in existing wikis.

You need namespace name aliases:


 * 1) When a language has variants, and these variants spell some namespaces differently, and you want editors to be able to use the variant spellings. Variants are selectable in the user preferences. Users always see their selected variant, except in wikitext, but when editing or searching, an arbitrary variant can be used.
 * 2) When an existing wiki's language, fall back language(s), or localisation is changed, with it are changed some namespace names. So as not to break the links already present in the wiki, that are using the old namespace names, you need to add each of the altered previous namespace names to its namespace name aliases, when, or before, the change is made.

The generic English namespace names are always present as namespace name aliases in all localisations, so you need not, and should not, add those.

Aliases can't be translated on translatewiki.net, but can be requested there or on bugzilla: see translatewiki:Translating:MediaWiki.

Regional settings
Some linguistic settings vary across geographies; MediaWiki doesn't have a concept of region, it only has languages and language variants.

These settings need to be set once as a language's default, then individual wikis can change them as they wish in their configuration.

Time and date formats
Time and dates are shown on special pages and alike. The default time and date format is used for signatures, so it should be the most used and most widely understood format for users of that language. Also anonymous users see the default format. Registered users can choose other formats in their preferences.

If you are familiar with PHP's time format, you can try to construct formats yourself. MediaWiki uses a similar format string, with some extra features. If you don't understand the previous sentence, that's OK. You can provide a list of examples for.

Old edit window toolbar buttons

 * Not to be confused with the much more common 's "advanced toolbar", which has similar features.

When a wiki page is being edited, and a user has allowed it in their Special:Preferences, a set of icons is displayed above the text area where one can edit. The toolbar buttons can be set but there are no messages for it. What we need is a set of properly sized  files. Plenty of samples can be found in commons:Category:ButtonToolbar, and there is an empty button image to start off from.

Missing
'''This section is missing about the changes in the i18n system related to extensions. The format was standardised and messages are automatically loaded.'''

See #Message sources.