Help:Extension:Translate/Insertables/nl
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
Vertaalbare teksten bevatten vaak opmaak die niet vertaald moeten worden, maar zo moet blijven staan. Het invoeren van die opmaak kan lastig zijn door de gebruikte tekens en de complexe opbouw. Insertable is een deel van de opmaak die voor de vertalers als een knop of een andere element beschikbaar is. Door het klikken op die knop wordt een stukje opmaak toegevoegd in de vertaling op de plek waar de cursor dan staat.
Elke vertaalgroep kan een InsertablesSuggester
hebben.
Deze class zorgt voor het genereren van een lijst van Insertable
s.
Een Insertable
bestaat uit drie gedeelten.
- Het gedeelte wat de gebruiker ziet
- het gedeelte wat voor de cursor wordt toegevoegd in de vertaling of wat de geselecteerde inhoud vervangt.
- Het gedeelte wat na de cursor wordt toegevoegd.
De Translate extensie komt ingebouwd met MediaWikiInsertablesSuggester
.
Andere mogelijke inhoudstypes staan in de translatewiki.net git repository.
Gebruikersinterface
Configuratie
Een voorbeeld met een configuratie wijziging in een YAML-bestand,
INSERTABLES:
# vooraf gebundelde insertable
- class: RegexInsertablesSuggester
params: "/\$[a-zA-Z0-9]+/"
# aangepaste insertable
- class: FreeColInsertablesSuggester
AUTOLOAD:
FreeColInsertablesSuggester: Suggester.php
Gebundelde / aangeboden insertables
Een lijst met gebundelde insertables.
HtmlTagInsertablesSuggester
Deze insertable zal een suggestie tonen voor elke HTML-tag in de brontekst.
Bijvoorbeeld:
- Bericht: This <a href="abc">link</a>link takes you to the home page.
- Suggester zal tonen:
<a href="abc"></a>
MediaWikiInsertablesSuggester
Deze insertable zal suggesties voor MediaWiki gerelateerde wikitext tonen. Dit ook voor:
- Parameters zoals
$1user
die voorkomen in de API Help-teksten. PLURALS
,GENDER
,GRAMMAR
- Suggesties voor HTML-tags.
NumericalParameterInsertablesSuggester
Deze insertable zal suggesties voor numerieke parameters tonen zoals $1
, $2
, $33
RegexInsertablesSuggester
Deze insertable is een algemene insertable die gebruikt kan worden voor het tonen van suggesties gebaseerd op een reguliere expressie.
Voorbeeld:
# eenvoudig voorbeeld
# komt overeen en stelt voor: $abc
- class: RegexInsertablesSuggester
params: "/\$[a-zA-Z0-9]+/"
# moeilijk voorbeeld met gebruik van genaamde ''captures''.
# komt overeen met: [abc](ac)
# Suggester toont: [](ac)
- class: RegexInsertablesSuggester
params:
regex: /(?<pre>\[)[^]]+(?<post>\]\([^)]+\))/
display: $pre $post
pre: $pre
post: $post
Parameter beschrijving
- regex – De voor het identificeren van insertables te gebruiken regex. Verplicht.
- display – Wat te tonen aan de gebruiker. Niet verplicht, de overeenkomende waarde wordt de standaard.
- pre – Wat voor de selectie toe te voegen of het de selectie vervangen als
post
leeg blijft Niet verplicht, de overeenkomende waarde wordt de standaard. - post – Wat na de selectie toe te voegen. Niet verplicht, de overeenkomende waarde wordt de standaard.
TranslatablePageInsertablesSuggester
Voornamelijk gebruikt op vertaalbare pagina's voor het aan de suggester geven van variabelen als $abc
.
UrlInsertablesSuggester
Deze insertable vindt URL's (die meestal bij vertaling niet gewijzigd worden) en stelt een wijziging voor, zodat constanten niet per ongeluk vertaald worden.
Een eigen insertable toevoegen
Als de beschikbare insertables niet aan uw behoeften voldoen dan kunt u er ook een of meer toevoegen.
Een voorbeeld met het toevoegen van een voor het ondersteunen van een bestaande berichtengroep gebaseerd op bestanden: FreeCol. Het YAML-bestand wordt wat verkort weergeven, het is bedoeld als voorbeeld. De toegevoegde regels zijn gemarkeerd.
FreeCol.yaml:
---
BASIC:
id: out-freecol
label: FreeCol
description: "A strategy game"
namespace: NS_FREECOL
class: FileBasedMessageGroup
FILES:
class: JavaFFS
sourcePattern: %GROUPROOT%/freecol/data/strings/FreeColMessages_%CODE%.properties
definitionFile: %GROUPROOT%/freecol/data/strings/FreeColMessages.properties
targetPattern: freecol/data/strings/FreeColMessages_%CODE%.properties
INSERTABLES:
- class: FreeColInsertablesSuggester
AUTOLOAD:
FreeColInsertablesSuggester: Suggester.php
Suggester.php:
class FreecolInsertablesSuggester {
public function getInsertables( $text ) {
$insertables = array();
$matches = array();
// Variabelen zoeken op formaat %name%
// Dit is dezelfde reguliere expressie als in Checker.php
preg_match_all( '/%[a-zA-Z_]+%/', $text, $matches, PREG_SET_ORDER );
$new = array_map( function( $match ) {
// $match[0] is op volledige overeenkomst, we gebruiken hier geen overeenkomsten op delen
// Omdat we willen dat de cursor na het toegevoegde deel staat, wordt er een veld "pre" gebruikt.
return new Insertable( $match[0], $match[0] );
}, $matches );
return $insertables;
}
}
De parameters voor Insertable zijn:
class Insertable {
/**
* @param string $display Wat te tonen aan de gebruiker
* @param string $pre Wat voor de selectie toe te voegen of het de selectie vervangen als $post leeg blijft
* @param string $post Wat na de selectie toe te voegen
*/
public function __construct( $display, $pre = '', $post = '' ) {
$this->display = $display;
$this->pre = $pre;
$this->post = $post;
}
[...]
}