Help:Extension:Translate/Groepsconfiguratie
Vertalers (Hoofdpagina help )
- Hoe te vertalen
- Beste manieren
- Statistieken en rapportage
- Kwaliteitscontrole
- Berichtengroep statussen
- Offline vertalen
- Woordenlijst
Vertalingenbeheerders
- Een pagina voorbereiden voor vertaling
- Paginavertaling beheren
- Vertaling van ongestructureerde elementen
- Groepenbeheer
- Vertaalbare pagina verplaatsen
- Vertalingen uit CSV importeren
- Met berichtenbundels werken
Systeembeheerders en ontwikkelaars
Er zijn veel manieren om berichtengroepen toe te voegen aan de extensie Translate. Berichtengroepen zijn verzamelingen berichten. Meestal bevatten ze berichten van één module in software en één bestand (en meestal één per taal bij vertalingen). Het is ook mogelijk om groepen te maken die berichten van andere berichtengroepen bevatten. Er kan bijvoorbeeld een groep zijn die alle berichten in een bepaalde software bevat. Groepen kunnen ook alleen subsets van berichten bevatten, zoals de belangrijkste berichten van de MediaWiki die het eerst moeten worden vertaald. Deze groepen op een hoger niveau worden niet rechtstreeks toegewezen aan bestanden in een bepaald formaat, maar zoals alle groepen kunnen ze worden geëxporteerd in Gettext-indeling voor gebruik in andere vertaalhulpmiddelen.
Berichtengroepen zijn de blokken op hoog niveau waarmee vertalers communiceren: om een bericht te kiezen om aan te werken, moeten ze eerst een groep selecteren, tenzij ze vertaalzoeken gebruiken. Voor elke groep kunnen we statistieken verzamelen en elke groep heeft een unieke identifier. Natuurlijk zijn berichten de kleinste blokken tekst die vertalers één voor één vertalen. Elk bericht heeft ook een id, die meestal een key wordt genoemd. De key hoeft niet uniek te zijn voor alle berichtengroepen.
Standaard groepsconfiguratie
Het is eenvoudig om met behulp van het YAML-formaat berichtengroepen toe te voegen.
Het enige dat u hoeft te doen, is een namespace te definiëren en een configuratiebestand toevoegen aan $wgTranslateGroupFiles
; Zie de Configuratiie pagina voor meer details.
Voorbeeld:
wfAddNamespace( 1218, 'FUDforum' );
$wgTranslateGroupFiles[] = "$IP/messagegroups/FUDforum/FUDforum.yml";
Het bestand zelf gebruikt de YAML-syntaxis. De syntaxis zelf wordt hier niet beschreven, maar het is gemakkelijk te leren en alle vooraf gemaakte groepen kunnen als voorbeelden worden gebruikt. Vergeet niet om spaties te gebruiken in plaats van tabs voor inspringing. Elk bestand kan meerdere berichtengroepen definiëren. Elke groepsdefinitie wordt gescheiden door een regel met drie streepjes, wat het standaard documentscheidingsteken is in YAML.
Definities zijn onderverdeeld in enkele items op het hoogste niveau: BASIC, FILES, MANGLER, VALIDATORS, INSERTABLES, TAGS, AUTOLOAD, LANGUAGES en speciaal TEMPLATE. Sommige aangepaste groepen kunnen meer items op het hoogste niveau toevoegen. Niet alle groepen hoeven ze allemaal te definiëren.
Basis
Deze sectie bevat basisinformatie over de groep, zoals unieke id en naam. Lijst met mogelijke keys (verplichte keys zijn gemarkeerd met *):
Key | Beschrijving |
---|---|
namespace* | Namespace-id, constante of tekenreeks waar de berichten zijn opgeslagen. De namespace moet vooraf worden toegevoegd. Zie het bovenstaande voorbeeld. |
icon | Pictogram voor de berichtengroep. Kan elk bestand ondersteunen dat MediaWiki aankan en dat is geüpload naar MediaWiki. Ondersteunt ook bestanden van gedeelde media repository's. |
id* | Unieke id die deze berichtengroep identificeert. |
label* | Voor mensen leesbare naam van de berichtengroep. |
description | Beschrijving van deze berichtengroep. Er wordt een volledige wiki-syntaxis gebruikt. |
class* | Het type van deze berichtengroep, meestal FileBasedMessageGroup of AggregateMessageGroup .
|
meta | Meerdere toepassingen. Als er identieke berichtensleutels zijn voor verschillende berichtengroepen (meestal in het geval van vertakkings- of subsetberichtengroepen), kan slechts één groep primair zijn en moeten de andere groepen meta hebben met een waarde van yes .
|
sourcelanguage | Taalcode van de brontaal. Standaard ingesteld op en (Engels). |
codeBrowser | Alleen gebruikt in GettextFFS. URL-patroon van een online viewer voor de repository-bestanden (en), waarbij %FILE% en %LINE% worden vervangen door het relevante bestandspad en de regel - zoals vermeld in PO-bestandsopmerkingen voor een bericht - om vertalers een informatieve link te geven binnen de vertaalhulpmiddelen voor dat bericht. Voorbeeld: https://github.com/lonvia/waymarked-trails-site/blob/master/django/%FILE%#L%LINE%
|
support | Hiermee configureert u waar de knop "Hulp vragen" de vertaler naar toe leidt. U moet url of page en optioneel params opgeven om de URL-parameters te configureren. In parameters kunt u %MESSAGE% gebruiken als tijdelijke aanduiding voor de naam van het bericht.
|
Voorbeeld:
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%)"
BESTANDEN
Dit gedeelte beschrijft de lay-out van het bestandssysteem en het formaat van de berichtenbestanden voor groepen van type FileBasedMessageGroup. Lijst met mogelijke keys (verplichte keys zijn gemarkeerd met *):
Key | Beschrijving |
---|---|
class* | Class die het formaat van berichtbestanden definieert. Voorbeelden: YamlFFS, JavaFFS, FlatPhpFFS, .... |
codeMap | Lijst van taalcodes die verschillen van die die in MediaWiki worden gebruikt. Gebruik de MediaWiki-taalcode als key en de doeltaalcode as de waarde. |
sourcePattern* | Plaats van de berichtenbestanden. Pad variabelen worden ondersteund. |
targetPattern | Hoe de geëxporteerde bestanden worden genoemd in verhouding tot de export-map. Pad variabelen worden ondersteund. |
definitionFile | Gebruik dit om de locatie van het definitiebestand (met de Engelse bronberichten) te definiëren als het niet aan het sourcePattern voldoet. Pad variabelen worden ondersteund. |
AppleFFS, AppleInfoPlistFfs | |
header | Aangepast commentaar in de kop van het bestand. |
FlatPhpFFS | Class specifieke keys |
header | Aangepaste koptekst bestand. Als het niet wordt gegeven, is de standaard <?php
|
GettextFFS | Class specifieke keys |
CtxtAsKey | Speciale modus waarbij ctxt wordt gebruikt als berichtsleutel. Mag niet worden gebruikt voor normale Gettext bestanden. |
header | Aangepast commentaar in de kop van het bestand. |
keyAlgorithm | Toegestane waarden: 'legacy' en 'simple'. - De standaard is 'simple', dit geeft kortere berichtsleutels. |
JavaFFS | Class specifieke keys |
header | Aangepast commentaar in de kop van het bestand. |
keySeparator | Het karakter dat sleutel en waarde scheidt. De standaard is = . Het kan ook : zijn.
|
JsonFFS | Class specifieke keys |
nestingSeparator | Het karakter dat niveaus scheidt wanneer geneste objecten worden afgeplat in een sleuteltekst. De standaard afplatting wordt niet gedaan. Voorbeeld: { "top": { "nested": "content" } } wordt omgezet in (verondersteld / als scheidingsteken) bericht met de sleutel top/nested en de waarde content .
|
includeMetadata | Of de @metadata sleutel met auteursgegevens in de geëxporteerde bestanden moet worden opgenomen. Standaard ingesteld op true. |
parseCLDRPlurals | Of CLDR meervoudige zoekwoorden wordt geanalyseerd. Standaard wordt dit niet gedaan. |
YamlFFS | Class specifieke keys |
codeAsRoot | Als de waarde 1 wordt ingesteld, zijn alle berichten onder een taalcode (in plaats van bij de root).
|
nestingSeparator | Het karakter dat niveaus scheidt wanneer geneste objecten worden afgeplat in een sleuteltekst. Dit wordt standaard niet gedaan. Voorbeeld: . wordt omgezet in (verondersteld . als scheidingsteken) bericht met de sleutel top.nested en de waarde content .
|
parseCLDRPlurals | Of CLDR meervoudige zoekwoorden wordt geanalyseerd. Standaard wordt dit niet gedaan. |
De padvariabelen zijn:
Variabele | Beschrijving |
---|---|
%CODE% | Taalcode (afhankelijk van codeMap) |
%MWROOT% | Pad naar de MediaWiki-installatie |
%GROUPROOT% | Gedefinieerd door $wgTranslateGroupRoot. |
%GROUPID% | Berichtengroep-id |
Voorbeeld:
FILES:
class: JavaFFS
sourcePattern: %GROUPROOT%/commonist/messages_%CODE%.properties
targetPattern: commonist/messages_%CODE%.properties
MANGLER
Mangler is een manier om berichtsleutels te omarmen om conflicterende berichtsleutels in meerdere groepen te voorkomen:
Key | Beschrijving |
---|---|
class* | Welke soort mangler te gebruiken. Voorbeeld: StringMatcher |
StringMatcher | Class specifieke keys |
patterns* | Lijst van patronen. "*" kan als wildcard worden gebruikt. |
prefix* | Als de bovenstaande patronen overeenkomen met een bericht, wordt de berichtsleutel voorafgegaan door dit voorvoegsel. |
Voorbeeld:
MANGLER:
class: StringMatcher
patterns:
- "*"
VALIDATORS
In dit gedeelte wordt vooraf gedefinieerde of aangepaste validators gedefinieerd.
VALIDATORS:
# vooraf gedefinieerde validator
- id: InsertableRegex
enforce: true
insertable: true
params: /\$[a-z0-9]+/
# aangepaste validator
- class: MyCustomValidator
enforce: true
AUTOLOAD:
MyCustomValidator: Validator.php
INSERTABLES
Dit gedeelte stelt het mogelijk om een class te definiëren die insertables voorstelt of vooraf gedefinieerde insertables te gebruiken. De classes kunnen automatisch worden geladen zoals beschreven in de sectie AUTOLOAD.
INSERTABLES:
# vooraf gedefinieerde insertable
- class: HtmlTagInsertablesSuggester
# aangepaste insertable
- class: FreeColInsertablesSuggester
AUTOLOAD:
FreeColInsertablesSuggester: Insertable.php
TAGS
Het is mogelijk om tags aan berichten toe te wijzen. Elke tag bevat een lijst met berichtensleutels (na het schakelen). *
kan worden gebruikt als wildcard. De volgende tags worden ondersteund:
Key | Beschrijving |
---|---|
optional | Deze berichten worden niet standaard weergegeven en worden bij het berekenen van vertaalpercentages niet als niet vertaalde berichten gerekend. |
ignored | Deze berichten worden helemaal niet getoond. |
Voorbeeld:
TAGS:
optional:
- lang_locale
- lang_dir
ignored:
- charset
AUTOLOAD
Dit item neemt de lijst van class namen met bestandsnamen als waarden. Op deze manier kunnen aangepaste classes gemakkelijk worden gebundeld met uw aangepaste berichtengroepen. Het pad moet relatief zijn tot de locatie van het groepsconfiguratiebestand zelf.
Voorbeeld:
AUTOLOAD:
ShapadoMessageChecker: Checker.php
SJABLOON
Er is een handige snelkoppeling als u meerdere vergelijkbare berichtengroepen definieert. Om herhaling te voorkomen, moet de eerste definitie beginnen met deze sleutel. U kunt alle andere top-level sleutels gebruiken als sub-sleutels voor dit item. Alle andere groepen gebruiken deze definities als standaardwaarden. Elke groep kan uiteraard de standaardwaarde uit het sjabloon overschrijven.
Voorbeeld:
TEMPLATE:
BASIC:
namespace: NS_SHAPADO
class: FileBasedMessageGroup
description: "{{int:bw-desc-shapado}}"
FILES:
class: YamlFFS
codeAsRoot: 1
codeMap:
be-tarask: be-TARASK
GROEPEN (voor klasse AggregateMessageGroup)
Deze sleutel bevat alleen de lijst van groep-ID's waar deze berichtengroep uit bestaat.
Voorbeeld:
GROUPS:
- out-shapado-ads
- out-shapado-announcements
- out-shapado-answers
- out-shapado-badges
Wildcards worden ondersteund. In dit geval zal de geaggregeerde groep zichzelf niet recursief opnemen, zelfs als deze overeenkomt met een patroon. Voorbeeld:
GROUPS:
- out-shapado-*
Wildcards kunnen problematisch zijn als u geïntegreerde geaggregeerde groepen heeft, omdat sommige groepen meerdere keren kunnen worden opgenomen: zowel direct als via de opgenomen groepering bij het aggregeren.
TALEN
Deze key maakt het mogelijk om vertalingen in specifieke talen voor de groep toe te staan en te verbieden. Verboden vertalingen (op taal) zullen worden geblokkeerd.
LANGUAGES:
include:
- en
exclude:
- he
- or
LANGUAGES:
whitelist:
- en
blacklist:
- he
- or
Toegestane ("include") records overschrijven alle waarden in de lijst van niet toegestane ("exclude") records. Als een *
een toegestaan record is, betekent dat alle talen toegestaan zijn. De toegestane lijst is ook optioneel.
Berichtengroepen voor interfaceberichten die specifiek zijn voor uw wiki
Voorbeeld van berichtengroep voor aangepaste gebruikersinterface van de wiki, bijvoorbeeld voor vertaalde zijbalk. Voeg de volgende code toe aan uw LocalSetting.php
en vervang de wiki-naam door iets betekenisvols.
$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;
}