Help:Extension:Translate/Groepsconfiguratie

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

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 Configures where the "Ask help" button will redirect the translator. 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
Waarschuwing Waarschuwing: MLEB 2021.10: De onderstaande configuratie wordt niet meer ondersteund
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;
}

Snelkoppelingen voor MediaWiki extensies

Zie groepseenheden voor MediaWiki.