Nápověda:Rozšíření:Translate/Konfigurace skupiny
Pro překladatele (hlavní stránka nápovědy )
- Jak se překládá
- Osvědčené postupy
- Statistika a hlášení
- Záruka kvality
- Přehled o stavu překladu zpráv
- Offline překlad
- Slovníček
Pro správce překladů
- Jak připravit stránku k překladu
- Správa překladu stránky
- Překlad nestrukturovaných prvků
- Správa skupin
- Přesun překládané stránky
- Import překladů přes CSV
- Práce se svazky zpráv
Pro systémové administrátory a vývojáře
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 $1. 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 | Nakonfiguruje, kam tlačítko "Požádat o pomoc" přesměruje překladatele. 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 |
---|---|
format* | Format of message files. Examples: Yaml , Java , FlatPhp (for a full list, see FORMATS in FileFormatFactory.php).
|
class | Třída, která definuje formát souborů zpráv. Deprecated in Translate 2023.07 in favor of format .
|
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. |
Apple |
Format-specific keys |
header | Vlastní komentář záhlaví souboru. |
FlatPhp |
Klíče specifické pro třídu |
header | Vlastní záhlaví souboru. Pokud není uveden, je výchozí hodnota <?php
|
Gettext |
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. |
Java |
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é : .
|
Json |
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. |
Yaml |
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:
format: Java
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:
format: Yaml
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
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;
};