Nápověda:Rozšíření:Translate/Group configuration

This page is a translated version of the page Help:Extension:Translate/Group configuration and the translation is 100% complete.

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ávu, 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). Tento klíč 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 informací o konfiguraci najdete zde. Příklad:

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

Samotný soubor používá syntaxi YAML. Ta na této stránce popsána není, ale je snadné se ji naučit a všechny připravené 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, VALIDATORS, 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 jmenný prostor, 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í. 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* Lidsky č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í hodnotou je en (angličtina).
codeBrowser Používá se pouze v GettextFFS. Vzor adresy URL online prohlížeče pro soubory úložiště, kde %FILE% a %LINE% budou nahrazeny příslušnou cestou k souboru a řádkem – jak je uvedeno v komentářích k souborům PO ke zprávě – aby překladatelé dostali pro tuto zprávu v rámci překladových pomůcek informativní odkaz. Příklad: https://github.com/lonvia/waymarked-trails-site/blob/master/django/%FILE%#L%LINE%
support Configures where the "Ask help" button will redirect the translator. Chcete-li nakonfigurovat parametry adresy URL, musíte zadat buď url nebo page a volitelně params. V parametrech můžete použít %MESSAGE% jako zástupný symbol pro název zprávy.

Příklad:

BASIC:
  id: out-freecol
  label: FreeCol
  icon: wiki://Freecol.png
  description: "{{int:bw-desc-freecol}}"
  namespace: NS_FREECOL
  class: FileBasedMessageGroup
  support:
    url: 
    params:
      title: "Translation issue with message %MESSAGE%"
      body: "[**URL**](https://translatewiki.net/wiki/%MESSAGE%)"

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 *):

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. Proměnné cesty jsou podporovány.
targetPattern Jak jsou exportované soubory pojmenovány relativně k exportnímu adresáři. Cesty proměnné jsou podporovány.
definitionFile Použijte toto k definování umístění definičního souboru (s anglickými zdrojovými zprávami), pokud neodpovídá sourcePattern. Proměnné cesty jsou podporovány.
AppleFFS, AppleInfoPlistFfs
header Vlastní komentář záhlaví souboru.
FlatPhpFFS Klíče specifické pro třídu
header Vlastní záhlaví souboru. Pokud není uveden, je výchozí hodnota <?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: Odkaz (legacy) a jednoduchý (simple). 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í hodnotou je =. Může být také :.
JsonFFS Klíče specifické pro třídu
nestingSeparator Znak oddělující úrovně, když jsou vnořené objekty sloučeny do jednoho klíčového řetězce. Ve výchozím nastavení se slučování neprovádí. Příklad: { "top": { "nested": "content" } } se převede na (za předpokladu / jako oddělovač) zprávu s klíčem top/nested a hodnotou content.
includeMetadata Zda se má do exportovaných souborů zahrnout klíč @metadata s informacemi o autorovi. Výchozí hodnota je true.
parseCLDRPlurals Zda analyzovat CLDR množná klíčová slova. Výchozí hodnota je false.
YamlFFS Klíče specifické pro třídu
codeAsRoot Pokud je nastaveno na 1, všechny zprávy jsou pod kódem jazyka (namísto v kořenovém adresáři).
nestingSeparator Znak oddělující úrovně, když jsou vnořené objekty sloučeny do jednoho klíčového řetězce. Výchozí hodnota je .. Příklad: top: { nested: content } je převeden na (za předpokladu, že . 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% ID skupiny zpráv

Příklad:

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

MANGLER

Mangler (ničitel) 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ů. Jako zástupný znak lze použít "*".
prefix* Pokud se výše uvedené vzory shodují se zprávou, klíč zprávy bude mít předponu s touto předponou.

Příklad:

MANGLER:
  class: StringMatcher
  patterns:
    - "*"

VALIDATORS (validátory)

Tato sekce umožňuje definovat předdefinované nebo vlastní validátory (oprávnění).

VALIDATORS:
  # předdefinovaný validátor
  - id: InsertableRegex
    enforce: true
    insertable: true
    params: /\$[a-z0-9]+/
  # vlastní validátor
  - class: MyCustomValidator
    enforce: true

AUTOLOAD:
  MyCustomValidator: Validator.php

INSERTABLES (vložky)

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:
  # předdefinovaná vložení
  - class: HtmlTagInsertablesSuggester
  # vlastní vložení
  - class: FreeColInsertablesSuggester

AUTOLOAD:
  FreeColInsertablesSuggester: Insertable.php

TAGS (značky)

Ke zprávám je možné přiřadit značky. Každý tag přebírá seznam klíčů zpráv (po manglování). "*" lze použít jako zástupný znak. Jsou podporovány 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 má jako hodnoty seznam názvů tříd s názvy souborů. Tímto způsobem lze vlastní třídy snadno spojit se svými vlastními skupinami zpráv. Cesta k umístění samotného konfiguračního souboru skupiny by měla být relativní.

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ě souhrnná skupina nebude 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é souhrnné skupiny. Protože některé skupiny mohou být zahrnuty vícekrát: Přímo i prostřednictvím zahrnutých souhrnných skupin.

LANGUAGES (jazyky)

Tento klíč umožňuje skupině povolit a zakázat překlad do konkrétních jazyků. Překlad do zakázaných jazyků bude zablokován.

LANGUAGES:
  include:
    - en
  exclude:
    - he
    - or
  Varování: MLEB 2021.10: Níže uvedená konfigurace již není podporována
LANGUAGES:
  whitelist:
    - en
  blacklist:
    - he
    - or

Povolené ("zahrnuté" (include)) položky přepíší jakékoli hodnoty v seznamu nepovolených ("vyloučených" (exclude)). Pokud je povolený záznam *, znamená to, že jsou povoleny všechny jazyky. Seznam povolených 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;
}

Zjednodušení pro rozšíření MediaWiki

Viz skupina rozšíření pro MediaWiki.