Nápověda:Rozšíření:Translate/Konfigurace skupin

This page is a translated version of the page Help:Extension:Translate/Group configuration and the translation is 96% complete.
Outdated translations are marked like this.
Other languages:
Deutsch • ‎English • ‎français • ‎čeština • ‎नेपाली • ‎日本語

Existuje několik způsobů, jak vytvářet skupiny zpráv, se kterými pracuje rozšíření Translate. Skupiny zpráv jsou soubory zpráv. Většinou odpovídají jednomu modulu, pokud jde o zprávy v softwaru, jednomu souboru (a obvykle i jednomu jazyku, ze kterého se překládá). Je ale možné vytvářet skupiny, které soustředí zprávy z jiných skupin do jedné. Může tak existovat jedna globální skupina, která bude obsahovat všechny zprávy, které jsou k dispozici. A naopak, mohou existovat také skupiny, které zahrnují pouze vybranou podmnožinu zpráv – například zprávy MediaWiki, které by se měly přeložit jako první, protože jsou nejdůležitější. Tyto nadřazené skupiny nejsou založeny na nějakém konkrétním souboru textových zpráv, ale stejně tak jako zprávy z ostatních skupin se dají vyexportovat ve formátu Gettext aby se daly překládat prostřednictvím externích překladatelských nástrojů.

Tyto skupiny zpráv jsou nadřazené bloky dat, s nimiž pracují překladatelé: Pokud mají najít zprávy, kterou chtějí přeložit, musí buď použít vyhledávání zpráv, nebo vybrat příslušnou skupinu. Každá skupina má jedinečný identifikátor a také ji lze statisticky zpracovávat. Nejmenší překládanou jednotkou se kterou pracuje překladatel je textová zpráva. Každá má svůj identifikátor, kterému se říká klíč (key), který nemusí být v rámci skupin zpráv jedinečný.

Standardní formát konfigurace skupiny

Přidat skupinu zpráv přes konfigurační soubor ve formátu YAML je snadné. Potřebujete pouze vytvořit nový jmenný prostor a pak přidat tento konfigurační soubor do $wgTranslateGroupFiles; více ohledně konfigurace viz zde. Příklad:

wfAddNamespace( 1218, 'FUDforum' );
$wgTranslateGroupFiles[] = "$IP/messagegroups/FUDforum/FUDforum.yml";

Samotný soubor používá YAML syntaxi. Ta na této stránce popsána není, ale je snadné se ji naučit a všechny předchystané skupiny lze použít jako příklady. Nezapomínejte, že se místo tabulátorů musí k odsazení používat mezery. V jednom souboru může být nakonfigurováno i několik skupin zpráv. V takovém případě je konfigurace skupiny od následující oddělena řádkem se třemi pomlčkami, což je standardní oddělovač dokumentů pro YAML.

Konfigurace je rozdělena do několika bloků: BASIC, FILES, MANGLER, CHECKER, INSERTABLES, TAGS, AUTOLOAD, LANGUAGES a speciální blok TEMPLATE. Některé uživatelsky vytvořené skupiny mohou přidat i několik nadřazených skupin. Všechny skupiny se nemusí konfigurovat tímto způsobem.

BASIC (základní nastavení)

Přes tuto sekci se nastavují základní parametry skupiny, jako např. její jméno a unikátní id. Toto je přehled použitelných klíčů (povinné klíče jsou označeny *):

Klíč Popis
namespace* ID oboru názvů, konstanta nebo řetězec, ve kterém jsou zprávy uloženy. Jmenný prostor musí být přidán předem. Viz příklad výše.
icon Ikona pro skupinu zpráv. Může podporovat jakýkoli soubor, se kterým MediaWiki dokáže pracovat a který je nahrán na MediaWiki. Podporuje také soubory ze sdílených úložišť médií.
id* Jedinečné ID, které identifikuje tuto skupinu zpráv.
label* Lidské čitelné jméno této skupiny zpráv.
description Popis této skupiny zpráv. Používá se úplná syntaxe wiki.
class* Typ této skupiny zpráv - obvykle FileBasedMessageGroup nebo AggregateMessageGroup.
meta Více použití. Pokud existují identické klíče zpráv pro různé skupiny zpráv (obvykle v případě skupin zpráv větví nebo podmnožin). Primární může být pouze jedna skupina a ostatní skupiny by měly mít meta s hodnotou yes.
sourcelanguage Kód jazyka zdrojového jazyka. Výchozí hodnota pro „en“ (angličtina).
codeBrowser Používá se pouze v GettextFFS. Vzor adresy URL prohlížeče online pro soubory úložiště, kde %FILE% a %LINE% budou nahrazeny příslušnou cestou a řádkem souboru - jak je uvedeno v PO uloží komentáře ke zprávě - aby překladatelům poskytl informativní odkaz v překladových prostředcích pro tuto zprávu. Příklad: https://github.com/lonvia/waymarked-trails-site/blob/master/django/%FILE%#L%LINE%.

Příklad:

BASIC:
  id: out-freecol
  label: FreeCol
  icon: wiki://Freecol.png
  description: "{{int:bw-desc-freecol}}"
  namespace: NS_FREECOL
  class: FileBasedMessageGroup

FILES (soubory)

Tato část popisuje rozložení souborového systému a formát souborů zpráv pro skupiny typu FileBasedMessageGroup. Seznam možných klíčů (povinné klíče jsou označeny *):

List of possible keys (mandatory keys are marked with *):

Klíč Popis
class* Třída, která definuje formát souborů zpráv. Příklady: YamlFFS, JavaFFS, FlatPhpFFS, ....
codeMap Seznam jazykových kódů, které se liší od kódů používaných v MediaWiki. Jako klíč použijte kód jazyka MediaWiki a jako cílový kód jazyka.
sourcePattern* Kde najít soubory zpráv. Cesty proměnné jsou podporovány.
targetPattern Jak jsou exportované soubory pojmenovány relativně k exportnímu adresáři. Cesty proměnné jsou podporovány.
definitionFile Slouží k definování umístění definičního souboru (se zdrojovými zprávami v angličtině), pokud nedodrží zdrojovou stránku. Cesty proměnné jsou podporovány.
AppleFFS, AppleInfoPlistFfs
header Custom file header comment.
FlatPhpFFS Klíče specifické pro třídu
header Vlastní záhlaví souboru. Pokud není uveden, výchozí hodnota je <?php
GettextFFS Klíče specifické pro třídu
CtxtAsKey Speciální režim, ve kterém se jako klíč zprávy používá ctxt. Nemělo by se používat pro běžné soubory Gettext.
header Vlastní komentář záhlaví souboru.
keyAlgorithm Povolené hodnoty: dědictví a jednoduché. Výchozí: jednoduché. Simple poskytuje kratší klíče zpráv.
JavaFFS Klíče specifické pro třídu
header Vlastní komentář záhlaví souboru.
keySeparator Klíč a hodnota oddělující znak. Výchozí hodnota je =. Může být také :.
JsonFFS Klíče specifické pro třídu
nestingSeparator Úrovně oddělující znak, když jsou vnořené objekty sloučeny do jednoho řetězce klíčů. Ve výchozím sloučení není provedeno. Příklad: { "top": { "nested": "content" } } se převede na (za předpokladu nebo jako oddělovač) zprávu s klíčem top/nested a hodnotou content.
includeMetadata Zda chcete do exportovaných souborů zahrnout klíč @metadata s informacemi autora. Výchozí hodnota je true.
parseCLDRPlurals Zda analyzovat množné klíčové slovo CLDR. Výchozí hodnota je false.
YamlFFS Klíče specifické pro třídu
codeAsRoot Pokud je nastavena na 1, jsou všechny zprávy pod kódem jazyka (místo v kořenovém adresáři).
nestingSeparator Úrovně oddělující znak, když jsou vnořené objekty sloučeny do jednoho řetězce klíčů. Výchozí hodnota je .. Příklad: top: { nested: content } je převeden na (za předpokladu . jako oddělovač) zprávu s klíčem top.nested a hodnotou content.
parseCLDRPlurals Zda analyzovat množné klíčové slovo CLDR. Výchozí hodnota je false.

Proměnné cesty jsou:

Proměnná Popis
%CODE% Kód jazyka (ovlivněn codeMap)
%MWROOT% Cesta k instalaci MediaWiki
%GROUPROOT% Definováno $wgTranslateGroupRoot.
%GROUPID% Message group id

Příklad:

FILES:
  class: JavaFFS
  sourcePattern: %GROUPROOT%/commonist/messages_%CODE%.properties
  targetPattern: commonist/messages_%CODE%.properties

MANGLER

Mangler je způsob, jak zamíchat klíče zpráv, aby se zabránilo konfliktním klíčům zpráv ve více skupinách:

Klíč Popis
class* Jaký typ mangleru použít. Příklad: StringMatcher
StringMatcher Klíče specifické pro třídu
patterns* Seznam vzorů. "*" lze použít jako zástupný znak.
prefix* Pokud výše uvedené vzory odpovídají zprávě, bude před touto klávesnicí předpona předpona klíče zprávy.

Příklad:

MANGLER:
  class: StringMatcher
  patterns:
    - "*"

CHECKER (kontrola zpráv)

  Varování: Toto již není podporováno. Informace o tom, jak dosáhnout podobné funkce, naleznete v části VALIDÁTORY.

Je-li to nastaveno, může být realizována kontrola zpráv. Pokud se při ní najde nějaký problém, zobrazí se zpráva překladatelům jako podsvícená.

Klíč Popis
class* Třída, která se má použít ke kontrole zpráv.
checks* Seznam metod ve třídě uvedené výše.

Příklad:

CHECKER:
  class: ShapadoMessageChecker
  checks:
    - ShapadoVariablesCheck

VALIDATORS (validátory)

Tato sekce umožňuje definovat předdefinované nebo vlastní validátory.

VALIDATORS:
  # pre-defined validator
  - id: InsertableRegex
    enforce: true
    insertable: true
    params: /\$[a-z0-9]+/
  # custom validator
  - class: MyCustomValidator
    enforce: true

AUTOLOAD:
  MyCustomValidator: Validator.php

INSERTABLES

Tato sekce umožňuje definovat třídu, která navrhuje insertables nebo používá předdefinované insertables. Třídy lze automaticky načíst, jak je popsáno v části AUTOLOAD.

INSERTABLES:
  # pre-defined insertable
  - class: HtmlTagInsertablesSuggester
  # custom insertable
  - class: FreeColInsertablesSuggester

AUTOLOAD:
  FreeColInsertablesSuggester: Insertable.php

TAGS (značky)

Ke zprávám je možné přiřadit štítky. Každá značka vezme seznam klíčů zpráv (po manglování). "*" lze použít jako zástupný znak. Podporovány jsou následující značky:

Klíč Popis
optional Tyto zprávy se ve výchozím nastavení nezobrazují a při výpočtu procenta překladů se nepočítají jako nepřekládané zprávy.
ignored Tyto zprávy se vůbec nezobrazují.

Příklad:

TAGS:
  optional:
    - lang_locale
    - lang_dir
  ignored:
    - charset

AUTOLOAD

Tato položka vezme seznam názvů tříd s názvy souborů jako hodnoty. Tímto způsobem lze vlastní třídy snadno spojit se svými vlastními skupinami zpráv. Cesta by měla být relativní k umístění samotného konfiguračního souboru skupiny.

Příklad:

AUTOLOAD:
  ShapadoMessageChecker: Checker.php

TEMPLATE (šablona)

Pokud definujete více podobných skupin zpráv, existuje užitečná zkratka. Abyste se vyhnuli opakování, začněte první definicí s tímto klíčem. Jako podklíče této položky můžete použít jakékoli další klíče nejvyšší úrovně. Všechny ostatní skupiny budou tyto definice používat jako výchozí hodnoty. Každá skupina může samozřejmě přepsat výchozí hodnotu ze šablony.

Příklad:

TEMPLATE:
  BASIC:
    namespace: NS_SHAPADO
    class: FileBasedMessageGroup
    description: "{{int:bw-desc-shapado}}"

  FILES:
    class: YamlFFS
    codeAsRoot: 1
    codeMap:
      be-tarask: be-TARASK

SKUPINY (pro třídu AggregateMessageGroup)

Tento klíč obsahuje pouze seznam ID skupin, z nichž tato skupina zpráv sestává.

Příklad:

GROUPS:
  - out-shapado-ads
  - out-shapado-announcements
  - out-shapado-answers
  - out-shapado-badges

Jsou podporovány zástupné znaky. V tomto případě agregovaná skupina nebude rekurzivně zahrnovat sama sebe, i když odpovídá vzoru. Příklad:

GROUPS:
  - out-shapado-*

Zástupné znaky mohou být problematické, pokud máte vnořené agregované skupiny. Protože některé skupiny mohou být zahrnuty vícekrát: přímo i prostřednictvím zahrnutých agregovaných skupin.

LANGUAGES (jazyky)

Tento klíč umožňuje bílé a černé seznamy jazyků pro skupinu. Jazyky na černé listině nebudou povoleny k překladu.

LANGUAGES:
  whitelist:
    - en
  blacklist:
    - he
    - or

Seznam povolených hodnot přepíše všechny hodnoty na černé listině. Pokud je hodnota whitelistu *, znamená to, že jsou povoleny všechny jazyky. Seznam povolených položek je také volitelný.

Skupiny zpráv pro zprávy rozhraní specifické pro vaši wiki

Příklad skupiny zpráv pro vlastní uživatelské rozhraní wiki, například pro lokalizovaný postranní panel. Přidejte následující kód do svého LocalSetting.php a nahraďte wikiname něčím smysluplným.

$wgHooks['TranslatePostInitGroups'][] = function ( &$list, &$deps, &$autoload ) {
	$id = 'wiki-custom';
	$mg = new WikiMessageGroup( $id, 'wikiname-messages' );
	$mg->setLabel( 'Wikiname User Interface Messages' );
	$mg->setDescription( 'This group contains user interface messages used on Wikiname.' );
	$list[$id] = $mg;
	return true;
}

Zkratka pro rozšíření MediaWiki

Viz skupina jednotek pro MediaWiki.