zkratky: I18N  I18n  L10n

Lokalizace

From mediawiki.org
Jump to navigation Jump to search
This page is a translated version of the page Localisation and the translation is 100% complete.
i18n docs
O lokalizačním týmu nadace Wikimedia Foundation se píše na Wikimedia Language engineering .
Jak se překládají stránky této wiki objasní Projekt:Jazyková pravidla .

Toto je technický popis internacionalizace a lokalizace (i18n a L10n) MediaWiki (internacionalizace je přizpůsobení produktu pro potenciální použití kdekoliv na světě, zatímco lokalizace je přidání vlastností pro použití v konkrétním místě). Obsahuje rady a doporučení, kterých by se měli vývojáři držet. Naše mantra je, že se i18n nemá vkládat 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í Zásady MediaWiki.

Překlady zdrojových kódů

translatewiki.net

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

Veškeré překlady zpráv uživatelského rozhraní MediaWiki by měly projít přes 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 v: Návodu:Speciální stránky . Pokud je rozšíření napsáno správně, pravděpodobně se v translatewiki.net objeví během několika dní poté, co o něm odpovědné osoby dají vědět na gerrit . 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 je-li to nutné, uvědomte odpovědné osoby.

Podívejte se také na Přehled lokalizačního systému a Co lze lokalizovat.

Hledání zpráv

Nápověda: Systémové zprávy demonstruje, jak můžete najít řetězec, který chcete přeložit. Povšimněte si zejména qqx tricku (kód pseudojazyka), který byl zaveden v MediaWiki 1.18 .

Emailová konference i18n

K odběru zpráv se můžete přihlásit na: mediawiki-i18n@. V danou chvíli je provoz slabý.

Struktura kódu

Nejprve máme jazykový objekt v Language.php . Tento objekt obsahuje všechny lokalizovatelné řetězce zpráv . 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, směr , vlastní gramatická pravidla atd.).

Objekt je vytvořen ze dvou zdrojů: podkategorií jeho verzí (třídy) a souborů 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ů Message a pomocí funkce zkratky wfMessage(), která je definována v includes/GlobalFunctions.php. Starší kód může stále používat staré funkce wfMsg*(), 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éž Manual:Messages API .

Jazykové objekty

Existují dva způsoby, jak získat jazykový objekt. Všeobecně můžete použít $wgLang a $wgContLang pro uživatelské rozhraní a pro jazyk obsahu. Pro libovolný jazyk můžete vytvořit objekt pomocí $languageFactory->getLanguage( 'en' ) nahrazením označení en kódem jazyka například "cs". (Můžete získat $languageFactory, předmět třídy MediaWiki\Languages\LanguageFactory, pomocí Dependency Injection.) Můžete také použít wfGetLangObj( $code );, pokud $code již může být jazykovým objektem. Seznam kódů je v languages/Names.php.

Objekty Language jsou potřebné pro provádění funkcí specifických pro jazyk. Nejčastěji pro formátování čísel, č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 fallback languages , ale podrobnosti nejsou při běžném použití důležité.

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. Tím se liší například od Gettext, který pouze extrahuje přeložitelné řetězce ze zdrojových souborů. Systém založený na klíči usnadňuje některá řešení, jako je čištění původních textů a sledování změn zpráv. Nevýhodou samozřejmě je, ž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 zprávy, které se již nepoužívají, nadále zůstanou připraveny 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é dotváření. Pokud máte pocit, že je to lepší pro vaší strukturu, můžete části klíčů zpráv zřetězit, ale umístěte někde poblíž komentář se seznamem možných výsledných klíčů. Například:

PHP

// Použitelné zprávy jsou zde:
// * myextension-connection-success
// * myextension-connection-warning
// * myextension-connection-error
$text = wfMessage( 'myextension-connection-' . $status )->parse();

JS

// Použitelné zprávy jsou zde:
// * myextension-connection-success
// * myextension-connection-warning
// * myextension-connection-error
var text = mw.msg( 'myextension-connection-' + status );

Pokud chcete použít zprávu v JavaScriptu, musíte to napsat v definici vašeho modulu ResourceLoader ve vlastnosti "messages".

Podrobné použití funkcí zpráv v PHP a JavaScriptu je v Manual:Messages API . Toto je důležitá stránka dokumentace a měli byste si ji přečíst dříve než začnete psát kód, který používá zprávy.

Přidávání nových zpráv

Viz též: Localisation file format

Výběr klíče zprávy

Viz též: Návod:Pravidla pro psaní kódu

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

Používejte malá písmena, číslice a pomlčky v názvech zpráv. Většina ostatních znaků je nepraktická nebo vůbec nefunguje. Podle dohodnutých pravidel MediaWiki na prvním znaku nerozlišuje velká a malá písmena. Na ostatních znacích velká a malá písmena rozlišuje.

Při pojmenování postupujte podle všeobecných nebo místních dohodnutých pravidel. 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 apihelp-, apiwarn-, apierror-. Za tuto předponu vložte příponu. (Tyto zprávy by měly být v samostatném souboru, obvykle pod includes/i18/api.)
  • Zprávy související s protokolem. Musí začínat logentry-, log-name-, log-description.
  • Uživatelská práva. Klíč pro jméno práva uvedený na Special:ListGroupRights musí začínat na right-. Název akce, která končí větou „Z následujících důvodů nemáte oprávnění $2:“, musí začínat na action-.
  • Značky revizí musí začínat tag-.
  • Názvy speciálních stránek musí začínat special-.

Další informace, kterých 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í, vazba na HTML atd.)
  2. Pokud je vaše zpráva součástí jádra, měla by být obvykle přidána k languages/i18n/en.json. 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 i18n/en.json nebo do souboru en.json 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 i18n/api/en.json. Pokud rozšíření obsahuje mnoho zpráv, můžete vytvořit podadresáře pod i18n. Všechny adresáře zpráv, včetně výchozího i18n/, musí být uvedeny v sekci MessagesDirs v extension.json nebo v proměnné $wgMessagesDirs .
  4. Vždy si dejte pauzu a pečlivě zvažte znění zprávy. Je tato zpráva co nejjasnější? Nepochopili jste zprávu? Pokud je to možné, požádejte o připomínky jiné vývojáře nebo lokalizátory. Postupujte podle #rad k internacionalizaci.
  5. Přidejte dokumentaci na qqq.json ve stejném adresáři. Další informace jsou 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, jako například na zprávu „{{SITENAME}}“.
  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:

Odstraňování existujících zpráv

Odstraňte ji z en.json a qqq.json. Nezatěžujte se s jinými jazyky. Aktualizace od translatewiki.net vše zpracují automaticky.

Kromě toho zkontrolujte, zda se zpráva také neobjevuje kdekoli v konfiguraci translatewiki, například v seznamu volitelných nebo nejpoužívanějších zpráv (stačit by měl jednoduchý git grep). Pokud je to potřebné, z těchto seznamů ji odstraňte.

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 její nový význam. Což 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, aby na ně mohli překladatelé zacílit, budou překlady označeny jako zastaralé. Změna klíče zprávy nevyžaduje rozhovor s týmem i18n ani podání žádosti o podporu. Pokud se však vyskytují zvláštní okolnosti nebo otázky, zeptejte se na #translatewiki připojit se nebo na stránce podpory na translatewiki.net .
  3. Pokud je rozšíření podporováno translatewiki.net , změňte prosím pouze anglickou zdrojovou zprávu anebo klíč a doprovodnou položku v qqq.json. V případě potřeby se tým translatewiki.net, pokud je to možné, postará o aktualizaci překladů, jejich označení jako zastaralých, vyčištění souboru nebo přejmenování klíčů. To platí také tehdy, když měníte pouze prvky, jako jsou značky HTML, které byste mohli změnit v jiných jazycích, aniž byste tyto jazyky ovládali. Většina z těchto akcí se bude provede pomocí translatewiki.net a dosáhne Gitu přibližně s jednodenním zpožděním.

Lokalizace jmenných prostorů a aliasy speciálních stránek

Jmenné prostory 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 [1] na translatewiki.net zakázán. Takže jej musíte udělat sami v Gerritu nebo zadejte požadavek na Phabricator: s žádostí, aby to udělal někdo jiný.

Chcete-li povolit překlad vlastních jmenných prostorů zavedených vaším rozšířením, vytvořte soubor MyExtension.i18n.namespaces.php, který vypadá takto:

<?php
/**
 * Překlady jmenných prostorů zavedených v MyExtension.
 *
 * @file
 */

$namespaceNames = [];

// Pro wiki, kde rozšíření MyExtension není nainstalováno.
if( !defined( 'NS_MYEXTENSION' ) ) {
	define( 'NS_MYEXTENSION', 2510 );
}

if( !defined( 'NS_MYEXTENSION_TALK' ) ) {
	define( 'NS_MYEXTENSION_TALK', 2511 );
}

/** English */
$namespaceNames['en'] = [
	NS_MYEXTENSION => 'MyNamespace',
	NS_MYEXTENSION_TALK => 'MyNamespace_talk',
];

/** Finnish (Suomi) */
$namespaceNames['fi'] = [
	NS_MYEXTENSION => 'Nimiavaruuteni',
	NS_MYEXTENSION_TALK => 'Keskustelu_nimiavaruudestani',
];

Pak jej načtěte ze souboru extension.json pomocí ExtensionMessagesFiles takto:

{
	"name": "MyExtension",
	"version": "0.0.1",
	"descriptionmsg": "myextension-desc",
    "ExtensionMessagesFiles": {
		"MyExtensionNamespaces": "MyExtension.i18n.namespaces.php"
	}
}

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 extension default namespaces .

Aliasy speciálních stránek

Aktuální informace naleznete v návodech pro speciální stránky . Následující nemusí vždy platit.

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

<?php
/**
 * Aliases for the MyExtension extension.
 *
 * @file
 * @ingroup Extensions
 */

$aliases = [];

/** English */
$aliases['en'] = [
	'MyExtension' => [ 'MyExtension' ]
];

/** Finnish (Suomi) */
$aliases['fi'] = [
	'MyExtension' => [ 'Lisäosani' ]
];

Pak jej načtěte ze souboru extension.json pomocí ExtensionMessagesFiles takto:

{
	"name": "MyExtension",
	"version": "0.0.1",
	"descriptionmsg": "myextension-desc",
    "ExtensionMessagesFiles": {
		"MyExtensionAlias": "MyExtension.i18n.alias.php"
	}
}

Pokud váš speciální kód stránky používá buď SpecialPage::getTitleFor( 'MyExtension' ) nebo $this->getTitle() (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 zastoupeny $1, $2, $3, … v textech (statických) zpráv a a jsou měněny průběžně. Typické hodnoty parametrů jsou čísla ("3" v textu "Smazat 3 verze?") nebo uživatelská jména ("Bob" na "Stránku naposledy editoval Bob"), názvy stránek, odkazy atd. Někdy jsou to i jiné zprávy. Mohou být libovolně složité.

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

Nejlépe je používat celá slova s magickými slovy PLURAL, GENDER a GRAMMAR. Například {{PLURAL:$1|subpage|subpages}} je lepší než sub{{PLURAL:$1|page|pages}}. Usnadňuje se tím vyhledávání.

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

Viz také Návod:Zprávy API#Poznámky o pohlaví, gramatice, množném čísle .

Hodnoty parametrů někdy ovlivňují přesná znění nebo gramatické variace ve zprávách. Neusilujeme o nepěkné tvary, 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 vložíme přepínače, které jsou analyzovány podle hodnot, vložených až za běhu. Text statické zprávy pak poskytuje každou z možných voleb v našem seznamu, před níž je uveden název přepínače a odkaz na hodnotu, na kterou se mění. To se podobá způsobu, který se v MediaWiki nazývá parser function (funkce sparser). K dispozici je několik typů přepínačů. Přepínače pracují pouze tehdy, pokud pro zprávy provádíte úplnou analýzu nebo {{-transformaci.

… na číslech prostřednictvím PLURALu

Viz také Návod:Zprávy API#Poznámky o pohlaví, gramatice, množném čísle .

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

'undelete_short' => 'Undelete {{PLURAL:$1|one edit|$1 edits}}',

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

'Box has {{PLURAL:$1|one egg|$1 eggs|12=a dozen eggs}}.'
Promyslete si 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, vždy když jsou čísla 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í, nesrovnatelná 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 vytvořte jednu zprávu, která je všechny pojme. Nechte na překladatelích a PLURALu, aby vyhodnotili správné použití s případnými rozdíly v textu podle jejich příslušných jazykových zvyklostí.

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 {{PLURAL:}}. I v případě kdy to v angličtině nemá smysl. Syntaxe vede překladatele.

Jsou podporována zlomková čísla, ale mož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 jednotné a množné číslo. Mnoho jazyků má více než dvě formy, které závisí na aktuálně použitém množství 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. Thus, whenever your code computes a list, include count( $list ) as parameter to headlines, lead-ins, footers and other messages about the list, even if the count is not used in English. 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é Návod:Zprávy API#Poznámky o pohlaví, gramatice, množném čísle .
'foobar-edit-review' => 'Please review {{GENDER:$1|his|her|their}} edits.'

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, ponechejte uživatelské jméno jako parametr prázdné:

'foobar-logged-in-user' => 'You said {{GENDER:|you were male|you were female|nothing about your gender}}.'
MediaWiki version:
1.31

Gerrit change 398772

Pokud do zprávy zahrnete uživatelské jméno (např. "$1 vám poděkoval."), zvažte nejprve jeho předání prostřednictvím wfEscapeWikitext(), 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, mělo by být uživatelské jméno předáno zprávě jako parametr. Jazyky, které musejí nebo chtějí používat správnou gramatiku závislou na pohlaví, tak mohou učinit. 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 vhodnější než "informujte uživatele na {{GENDER:$1|jí|jeho|jejich}} diskusní stránce " také v angličtině.

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

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

Viz také Návod:Zprávy API#Poznámky o pohlaví, gramatice, množném čísle .

K dispozici jsou také správné překlady pro sdružené 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á správné překladové funkce pro více než 20 jazyků. Některé z nich jsou pouze slovníky pro názvy webů Wikimedie. 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 volný mluvnický překlad, měla pro názvy měsíců nominativní (v prvním pádu) nebo 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 s nahrazování 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 qqq. Je to jeden z kódů standardu ISO 639, vyhrazený pro speciální použití. Neudržuje překlady každé zprávy, ale shromažďuje 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, 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 při úpravách 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 qqq. Revize, které tak neučiní, jsou označeny „V-1“, dokud není přidána dokumentace.

Dokumentace v souborech qqq 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, pokud je zpráva viděna v souvislostech, ale ne, když je zpráva zobrazena samostatně (což je případ, jejího samostatného přeložení).
  7. Případné poznámky k gramatice. Například "open" (otevřený) může být v angličtině 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 "disabled" (zakázané), "open" (otevřené) nebo "blocked" (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í v jiné zprávě, 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 "template" (šablona), "suppress" (zakázat) nebo "stub" (pahýl). (Všimněte si, že nejlepší je se v první řadě těmto slovům vyhnout!)
  13. Snímky obrazovky jsou velmi užitečné. Nepoužívejte 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 dalších zprávách.

Několik dalších rad:

  • Pamatujte si, že překladatelé velmi často překládají zprávy, aniž by skutečně někdy používali software.
  • Překladatelé většinou nemají žádné informace o souvislostech, ani o vašem modulu, ani o jiných zprávách v něm uvedených.
  • Pouze přeformulovaná zpráva je ve většině případů zbytečná.
  • Nepoužívejte návrhářský žargon jako "nav" nebo "comps".
  • Uvažujte o napsání glosáře technických termínů, které používáte ve vašem modulu. Pokud tak učiníte, ve zprávách na něj uveďte odkaz.

Na jiné zprávy můžete odkazovat pomocí {{msg-mw|klíče zprávy}}. 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ých souvislostech.

translatewiki.net poskytuje některé výchozí šablony dokumentace:

  • {{doc-action|[...]}} pro action- zprávy
  • {{doc-right|[...]}} pro right- zprávy
  • {{doc-group|[...]|[...]}} pro zprávy kolem skupin uživatelů (group, member, page, js a css)
  • {{doc-accesskey|[...]}} pro accesskey- messages

Pro více informací se podívejte na stránky šablon.

Rady k internacionalizaci

Kromě dokumentace překladatelé žádají, abyste zvážili některé rady pro ulehčení 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é využití 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:

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 proti veškerému očekávání, 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 souvislostech. Nebojte se, že překladatelům přiděláte práci navíc. Překladová paměť u nich hodně pomáhá, zatímco si zachovávají v případě potřeby přizpůsobivost pro různé překlady.

Vyhněte se roztříštěný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ými několika částmi textu, třeba s určitým přesměrováním (také nazývanými "řetězově zřetězenými").

Je lépe udělat z každé zprávy úplnou ale 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. 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 "{{int:name}}" zadejte jméno původního autora a klikněte na "{{int:proceed}}" pro pokračování'. Díky tomu bude zpráva v souladu pokud vývojář softwaru nebo operátor wiki změní "name" (jméno) zprávy nebo "proceed" (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 v okamžiku, kdy zprávu změní.

Nepoužívejte podmínky a šablony, které jsou specifické pro konkrétní projekty

MediaWiki používají velmi různí lidé z hnutí Wikimedia i mimo něj. Přestože byl původně vytvořen pro encyklopedii, používá se nyní i pro jiné wiki s různým obsahem. Z těchto důvodů používejte obecné termíny. Například: Pokud si nejste zcela jisti, že vyvíjená funkce nebude použita pouze na webu, kde se stránky nazývají "articles" (články), vyhněte se výrazům jako "article" (článek) a místo toho použijte "page" (stránka), . Nepoužívejte "village pump" (vesnická pumpa), což je název komunitní stránky anglické Wikipedie. Místo toho použijte obecný pojem, například „komunitní diskusní stránka“.

Nepředpokládejte, že na všech wiki existuje stejná š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 opravdu použít, musíte to jasně popsat 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é jazyky 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 {{SITENAME}} ve zprávách

{{SITENAME}} má několik nevýhod. Může to být cokoli (zkratka, slovo, krátká fráze, atd.). V závislosti na jazyce může vyžadovat použití {{GRAMMAR}} při každém výskytu. Bez ohledu na to bude každou zprávu s {{SITENAME}} 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 GRAMMAR, budou muset operátoři wiki přidat nebo změnit PHP kód tak, aby získali {{GRAMMAR}} pro práci {{SITENAME}}. To vyžaduje nejen více dovedností, ale i více znalostí, než je běžné. Je vhodnější požívat obecné odkazy, jako je "tato wiki". Nezabrání to při zavádění lokálně měnit tyto zprávy tak, aby používaly {{SITENAME}}. 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 opačně zleva doprava. Ne vždy, ne zcela a jen pro některé jazyky a některé wiki. Příruční zařízení, úzká okna atd., mohou pod sebou zobrazovat bloky, které by se objevily vedle sebe na větších displejích. Některé skripty a gadgety napsané na webu a uživatelské skripty a gadgety psané v JavaScriptu mohou skrýt části nebo měnit věci nepředvídatelným způsobem, neexistuje spolehlivý způsob, jak zajistit 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í činitelé, 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 významové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ího směrování rozhraní (viz T30997).

Nový prohlížeč a podpora MediaWiki pro psaní ve východním a severoasijském písmu shora dolů [2] 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ě zobrazení, skriptů a miniaplikacích JavaScriptu napsaných na webu a na uživateli a na přepsání místních zástupců uživatelů z důvodu dostupnosti nebo technologických omezení. Nevizuální uživatelští zástupci, 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ějte prvky zprávy před a za každým vstupním polem

Toto je doporučené vodítko, které se dosud nestalo standardem při vývoji MediaWiki

Angličtina sice umožňuje efektivní využití dotazů ve vstupním poli item–colon–space–input-field (položka–dvojtečka–mezera–vstupní pole), 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 ‎<textarea> 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ž ta druhá nd je v angličtině a některých dalších jazycích prázdná nebo
  • umožněte vkládat vstupy pomocí parametrů $i.

Vyhněte se nepřeloženým značkám HTML ve zprávách

Značky HTML, které nevyžadují překlad, například uzavírání ‎<div>, čáry nad nebo pod a podobně, by obvykle neměly být součástí zpráv. Zbytečně zatěžují překladatele, zvětšují velikost souboru zpráv a představují riziko náhodného pozměnění nebo přeskočení v procesu překladu. Obecně se, pokud je to možné, prostému HTML ve zprávách vyhněte.

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 názvů několik slov nebo dokonce celé věty. Například krátká anglická zpráva "TSV file:" může být do jazyka přeložena 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 jsme: _____ (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 stejná slova k označení různých věcí nebo pojetí

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ě. Problém nastává při kombinaci revize stránek s verzemi a je zmíněna také revize, tj. proces jejich revize. To nemusí představovat vážný problém, pokud mají dvě synonyma revize různé překlady. Na to se však nespoléhejte. Aby se předešlo nesprávnému výkladu, je lepší se potížím vyhnout použitím "revize" aka (též známý jako) „verze“.

Základní slova mohou mít nepředvídaný jazykový význam nebo vůbec neexistují

Jsou 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" (user) 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 také říká "corroborator and participant" (podporovatel a účastník), protože jakýkoli odkaz na "use" (použití) by v dialektu příliš silně znamenal "abuse" (zneužívání). Termín "wiki farma" se překládá jako "stable full of wikis" (stabilní plný wiki), protože farma s jednou plodinou by byla v rozporu s jazykem a nebyla by "pochopena" atd.

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

Toto je doporučené vodítko, které se dosud nestalo standardem při vývoji MediaWiki

Není neobvyklé, že vlastní jména, názvy značek, atd. v angličtině nejsou překládána a namísto toho jsou považována za slova přejatá nebo cizí. V posledně uvedeném případě mohou někteří zvláště nároční překladatelé taková slova, že patří do jiného jazyka, označit HTML značkami, například <span lang="en"></span>.

Možná budete chtít zvážit, zda váš obslužný program výstupu zpráv předá takové značení navzdory zjevným bezpečnostním rizikům.

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

Toto je doporučené vodítko, které se dosud nestalo standardem při 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 pro zkušené uživatele počítačů jsou samozř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 ‎<abbr>, kterou prohlížeče zobrazují, když přes ni přejdete kurzorem.

Například základní zpráva MediaWiki exif-orientation-8 o rotaci obrazu, která je v angličtině jednoduše "Rotated 90° CW", je v marocké arabštině přeložena jako:

mḍwwer 90° <abbr title="Ĝks (ṫ-ṫijah) Ĝaqarib s-Saĝa">ĜĜS</abbr>

a 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ím i když se původní zpráva nepoužívá.

V případě potřeby používejte značky ‎<code>, ‎<var> a ‎<kbd>

Když mluvíte o technických parametrech, hodnotách nebo klávesových vstupech, označíte je jako takové pomocí značek HTML ‎<code>, ‎<var> nebo ‎<kbd>. 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ž používá 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 v kódu.

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

Pokud potřebujete zabalit nějaký text do lokalizovaných závorek, závorek nebo uvozovek, můžete použít závorky parentheses ($1) nebo brackets [$1] nebo quotation-marks "$1" zprávy jako:

wfMessage( 'parentheses' )->rawParams( /* text to go inside parentheses */ )->escaped()
wfMessage( 'brackets' )->rawParams( /* text to go inside brackets */ )->escaped()
wfMessage( 'quotation-marks' )->rawParams( /* text to go inside quotation marks */ )->escaped()

Nečekejte, že symboly a interpunkce přežijí překlad

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

Použijte tečku

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ě.

Spojovací kotvy

Wikitext odkazů

Spojovací kotvy lze do zpráv vkládat několika způsoby:

  1. přes wikitext: … [[a wiki page|anchor]] …,
  2. přes wikitext: … [some-url anchor] … 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. Také zde se vyhněte roztříštěným nebo 'zmatečným' zprávám. Ujistěte se, že "some-url" 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 "Zde klikni" je absolutně bezvýznamná kotva, [4], 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é Pomozte uživatelům předvídat, kam směřují a Navigace do tajemného jádra a Hlavní důvody, proč bychom neměli používat 'klikněte zde' jako text odkazu.

Vyhněte se žargonu a slangu

Ve zprávách se vyhněte žargonu vývojářů a uživatelů. 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 "success" (úspěch), "successfully" (úspěšně), "fail" (selhání), "error occurred while" (došlo k chybě) atd. Vyplývá to z pohledu vývojářů, že vše vidí jako pravdivé nebo nepravdivé, ale uživatelé obvykle chtějí jen vědět, co se vlastně stalo nebo nestalo 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 při vývoji MediaWiki

Zkuste jednu větu nebo podobný blok pouze na jednom řádku. Pomáhá to porovnávat zprávy v různých jazycích a může to být použito jako nápověda pro členění 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:

  • Spaces and line breaks (new lines) at the end of the message are always automatically removed by the wikitext editor. Your message must not end with a space or line break, as it will be lost when it's edited on the wiki.
  • Spaces and line breaks at the beginning are not automatically removed, but they are likely to be removed by accident during editing, and should be avoided.

Spusťte a ukončete svou zprávu aktivním textem. Pokud potřebujete nový řádek nebo zalomení odstavce, měl by se kód zadávat přidáním do textu.

There are some messages which require a space at the end, such as 'word-separator' (which consists of just a space character in most languages). To support such use cases, the following HTML entities are allowed in messages and transformed to the actual characters, even if the message otherwise doesn't allow wikitext or HTML formatting:[5]

On a related note, any other syntax elements affected by pre-save transforms also must not be used in messages, as they will be transformed when the message is edited on the wiki.

Používejte 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á ve zprávách rozhraní 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)).

Vždy si 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 ‎<em> nebo ‎<strong> podle následujícího:

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í úmluvy 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 "‎<em>" a "‎<strong>" 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 ke zprávě. Můžete tak 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.

Přehled lokalizačního systému

Aktualizace lokalizace

Jak je uvedeno výše, překlad se provádí na translatewiki.net a jiné systémy nejsou doporučovány. Zde je přehled činnosti při aktualizaci lokalizace na vysoké úrovni pracovního postupu:

  • Vývojáři přidávají nebo mění systémové zprávy .
  • 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 mohou pak stahovat aktualizované systémové zprávy z úložiště git.

Projekty Wikimedie i jakékoli jiné wiki mohou okamžitě a automaticky profitovat z lokalizačních prací díky rozšíření LocalisationUpdate (Rozšíření: Aktualizace lokalizace).[6] 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.[7]

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ává systémové zprávy z těchto zdrojů:

  • Jmenný prostor MediaWiki. Umožňuje wiki přijímat nebo potlačovat všechny své zprávy, pokud 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, pokud 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 zyx.json, 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 MyExtensionName.i18n.php.
    • Mnoho wiki nadace Wikimedia Foundation přistupuje k některým zprávám z rozšíření WikimediaMessages , 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 verze 1.16 existuje nový systém ukládání do mezipaměti, který ukládá zprávy do mezipaměti buď do souborů .cdb nebo do databáze. Přizpůsobené zprávy jsou ukládány do mezipaměti v souborovém systému a v memcached (nebo alternativě), v závislosti na konfiguraci.

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

Umístění vyrovnávací paměti $wgLocalisationCacheConf
'store' => 'db'
 
'store' => 'detect'
(výchozí)
'store' => 'files'
 
'store' => 'array'
(experimentální od MW ≥ 1,26)
$wgCacheDirectory = false
(default)
l10n cache table l10n cache table chyba (nedefinovaná cesta) chyba (nedefinovaná cesta)
= path l10n cache table lokální souborový systém (CDB) lokální souborový systém (CDB) lokální souborový systém (pole PHP)
MediaWiki versions:
1.27.0 – 1.27.2

Gerrit #Id3e2d2

Ve verzi MediaWiki 1.27.0 a 1.27.1 byla autodetekce změněna tak, aby upřednostňovala back-end (vzdálený) soubor. V případě, že code>'store' => 'detect' (výchozí), je back-end soubor použit s cestou z $wgCacheDirectory . 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 back-end databáze. Toto bylo vráceno od verze 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 (zpět)

Pro lepší vizuální zobrazení vrstev ukládání do mezipaměti je zde funkce zpětného sledování toho, jaké metody jsou volány při načítání zprávy. Vysvětlení jednotlivých úrovní viz níže.

  • Message::fetchMessage()
  • MessageCache::get()
  • Language::getMessage()
  • LocalisationCache::getSubitem()
  • LCStore::get()

Mezipaměť zpráv

Třída MessageCache 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á. záložní jazyk umožňuje MediaWiki ustoupit na jiný jazyk, 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ň MessageCache 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ň vypnout.

Lokalizační vyrovnávací paměť

Podívejte se na LocalisationCache.php .

LCStore

Třída LCStore je pouze back-end provedení používané třídou LocalisationCache pro skutečné ukládání do mezipaměti a načítání zpráv. Stejně jako třída BagOStuff, která se používá pro obecné ukládání do mezipaměti v MediaWiki, existuje řada různých typů mezipamětí (konfigurovaných pomocí $wgLocalisationCacheConf ):

  • "db" (výchozí) - ukládá zprávy do databáze
  • "file" (výchozí, pokud je nastaven $wgCacheDirectory) - používá CDB k ukládání zpráv do mezipaměti v místním souboru
  • "accel" - k ukládání dat se používá APC nebo jiná mezipaměť operačního kódu

Možnost "file"je používána nadací Wikimedia Foundation. Je doporučována, protože je rychlejší než přechod do databáze a spolehlivější než mezipaměť APC. Zejména proto, že APC je nekompatibilní s PHP verze 5.5 nebo novější.

Licence

Jakékoli úpravy provedené v jazyce musí být licencovány podle podmínek GNU General Public License, které mají být zahrnuty do softwaru MediaWiki. Další rozšíření mohou podléhat různým jiným licencím.

Starý místní překladový systém

S verzí MediaWiki 1.3.0 byl vytvořen nový systém pro lokalizaci MediaWiki. Místo úpravy jazykového souboru a žádání vývojářů, aby použili změnu, mohli uživatelé upravovat řetězce rozhraní přímo z jejich wiki. Tento systém se používá od srpna 2005. Lidé najdou zprávu, kterou chtějí přeložit. Ve Special:AllMessages upraví příslušný řetězec v oboru názvů MediaWiki:. Po úpravě jsou tyto změny aktivní. Již není třeba žádat o aktualizaci a čekat, až vývojáři zkontrolují a zaktualizují soubor.

Systém je skvělý pro projekty Wikipedie. Vedlejším účinkem je však to, že jazykové soubory MediaWiki dodávané se softwarem již nejsou zcela aktuální a pro vývojáře je těžší udržovat soubory na meta v synchronizaci se soubory skutečných jazyků.

Protože výchozí jazykové soubory neposkytují dostatek přeloženého materiálu, čelíme dvěma problémům:

  1. Nové projekty Wikimedia vytvořené v jazyce, který nebyl dlouho aktualizován, vyžadují úplné přepracování rozhraní.
  2. Ostatní uživatelé MediaWiki (včetně projektů Wikimedie ve stejném jazyce) zůstávají s nepřekládanými rozhraními. To je obzvláště nešťastné pro menší jazyky, které nemají mnoho překladatelů.

Toto v současné době již není tak velký problém, protože translatewiki.net je propagován výsadně a používají ho téměř všechny překlady. Místní překlady se někdy odehrávají, ale jsou silně odrazovány. Místní zprávy musí být většinou smazány, přesouvat příslušné překlady do translatewiki.net a ponechat na wiki pouze přizpůsobení specifické pro daný web. Existuje obrovské množství nevyřízených položek, zejména ve starších projektech. this tool tento nástroj pomáhá s čištěním.

Řízení centralizovaných a synchronizovaných zpráv

Anglické zprávy jsou velmi zřídka synchronizovány s kódem. Zkušenost ukázala, že je vhodné mít všechny anglické zprávy na jednom místě. Revizi anglického textu lze provést bez odkazu na kód, stejně jako překlad. Programátoři někdy dělají velmi špatný výběr výchozího textu.

Dodatek

Co lze lokalizovat

Na MediaWiki lze lokalizovat tolik věcí, že ne všechny jsou přímo k dispozici na translatewiki.net: viz translatewiki:Translating:MediaWiki. Pokud něco vyžaduje zásah vývojáře do kódu, můžete nahlásit chybu na Phabrikeru nebo když nevíte přesně co dělat, zeptat se na translatewiki:Support (podpora).

Graf záložního jazyka
  • Příbuzné jazyky (tj. další víceméně příbuzné jazyky, které se mají použít, když překlad není k dispozici. Místo výchozího záložního jazyka, kterým je angličtina)
  • Směrování (zleva doprava nebo zprava doleva, RTL)
  • Směrová značka v závislosti na RTL
  • Šipka v závislosti na RTL
  • Jazyky, kde nelze použít kurzívu
  • Formátování čísel (čárkami, tj. přidávání nebo nečíslování oddělovačů; transformace číslic; transformace oddělovačů)[8]
  • Zkrácení (vícebajt)
  • Gramatické převody pro skloňující jazyky
  • Plurální transformace
  • Formátování časů vypršení platnosti [clarification needed]
  • Segmentace rozdílů (čínština)
  • Převod na varianty jazyka (mezi různými pravopisy nebo skripty)
  • Možnosti uživatelských preferencí pro konkrétní jazyk
  • Odkaz a předpona odkazu, např.: [[foo]]bar. Toto jsou písmena, která mohou být přilepena za nebo před uzavírací nebo otevírací závorky wiki odkazu, ale na obrazovce jsou zobrazená, jako by byla součástí odkazu (tj. kliknutí a ve stejné barvě). Ve výchozím nastavení je odkazová trasa "a-z". Možná budete chtít přidat do seznamu zvýrazněná nebo ne latinská písmena použitá vaším jazykem.
  • Kód jazyka (nejlépe používaný podle nejnovějších RFC ve standardu BCP 47, v současné době RFC 5646, s přidruženou databází IANA. Vyhněte se zastaralým, starým a soukromým kódům: podívejte se na to, co znamenají v normě ISO 639, a vyhněte se kódům přiřazeným souborům nebo rodinám jazyků v normě ISO 639-5 a kódům ISO 639, které nebyly importovány do databáze IANA pro BCP 47)
  • Typ zvýraznění
  • Přípona Rozšíření:Cite obsahuje speciální soubor stránky pro každý jazyk, cite_text-zyx pro kód jazyka zyx.

Úhledná funkčnost:

  • I18N sprintfDate
  • Římské číselné formátování

Aliasy jmen jmenného prostoru

Aliasy jmen jmenného prostoru jsou další názvy, které lze použít k adresování existujících jmenných prostorů. Jsou zřídka potřebné. Obvykle způsobují zmatek ve stávajících wiki.

Aliasy jmen jmenného prostoru potřebujete:

  1. Pokud má jazyk pravopisné varianty jmenných prostorů a vy chcete, aby editoři některé tyto varianty mohli používat. Varianty jsou volitelné v uživatelských zvýhodněních. Uživatelé vždy vidí svou vybranou variantu. S výjimkou wikitextu. Při úpravách nebo vyhledávání lze použít libovolnou variantu.
  2. Když se změní existující jazyk wiki, ustupující jazyk(y) nebo lokalizace, změní se některé názvy jmenných prostorů. Aby nedošlo k přerušení odkazů již existujících na wiki, které používají staré názvy jmenných prostorů, je třeba při jejich změně nebo změně názvu přidat každý ze změněných předchozích jmen jmenného prostoru do jeho aliasu jmenného prostoru jmen.

Obecná anglická jména oboru názvů jsou ve všech lokalizacích vždy uvedena jako aliasy jmen jmenného prostoru, takže je nemusíte přidávat a neměli byste je přidávat.

Aliasy nelze překládat na translatewiki.net, ale lze si je tam vyžádat nebo na bugzilla: viz aliasy jmenných prostorů.

Regionální nastavení

Některá jazyková nastavení se liší napříč územím. MediaWiki nemá koncept regionu. Má pouze jazyky a jazykové varianty.

Tato nastavení je třeba jednou nastavit jako výchozí jazyk. Později je jednotlivá wiki mohou změnit ve své konfiguraci podle svých přání.

Formáty času a datumu

Čas a data jsou zobrazeny na zvláštních stránkách. Výchozí formát času a datumu se používá pro podpisy, takže by měl být nejpoužívanějším a nejrozšířenějším formátem pro uživatele daného jazyka. Výchozí formát se zobrazí také anonymním uživatelům. Registrovaní uživatelé si mohou ve svých preferencích zvolit jiné formáty.

Pokud jste obeznámeni s formátem time() v PHP, můžete se pokusit vytvořit formáty sami. MediaWiki používá podobný formátovací řetězec s některými dalšími funkcemi. Pokud nerozumíte předchozí větě, je to v pořádku. Pro vývojáře můžeme uvést seznam příkladů.

Stará tlačítka panelu nástrojů pro úpravy okna

Nesmí být zaměňován s mnohem běžnějším WikiEditor "pokročilým panelem nástrojů", který má podobné funkce.

Pokud je editována stránka wiki a uživatel ji povolil ve své Special:Preferences, zobrazí se nad textovou oblastí sada ikon, pomocí kterých lze editovat. Tlačítka panelu nástrojů lze nastavit [1], ale nejsou k dispozici žádné zprávy. Potřebujeme sadu souborů .png o správné velikosti. Mnoho vzorků lze nalézt v commons:Category:ButtonToolbar. Je zde obrázek prázdného tlačítka od kterého lze začít.

To lze provést pouze v případě, že je váš jazyk již v MediaWiki povolen, což obvykle znamená, že byla přeložena větší část jeho zpráv. Jinak musíte jen počkat a udělat to později.

Chybí

Chybí část o změnách v systému i18n souvisejících s rozšířeními. Formát byl standardizován a zprávy se automaticky načítají.

Viz Zdroje zpráv.

Internacionalizace externích nástrojů

Pro usnadnění internalizace a lokalizace externích nástrojů, jako jsou například nástroje umístěné v Toolforge , můžete použít banánovou knihovnu (Banana library). Umožňuje vám použít několik kouzelných slov:

  • {{PLURAL:$1|pluralform1|pluralform2|...}}
  • {{GENDER:$2|his|her}}
  • {{grammar:genitive|$1}}
  • {{bidi:$1}}.

Odkazy

  1. https://gerrit.wikimedia.org/r/211677
  2. http://dev.w3.org/csswg/css3-writing-modes/
  3. w:Quotation_mark#Summary_table
  4. http://www.w3.org/QA/Tips/noClickHere
  5. https://github.com/wikimedia/mediawiki/blob/REL1_34/includes/cache/MessageCache.php#L887
  6. Které funguje prostřednictvím lokalizační mezipaměti a například na projektech Wikimedie ji aktualizuje denně. Viz také technické podrobnosti o konkrétní implementaci.
  7. LocalisationUpdate update; LocalisationUpdate is live.
  8. . Jsou konfigurovány podle gramatiky v příslušném jazyce language/classes/LanguageXx.php nebo language/messages/MessagesXx.php souborů.

Viz též