Help:Extension:Translate/Vertalen van ongestructureerde elementen

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

Op deze pagina wordt uitgelegd hoe met de extensie Translate de vertaling van aangepaste wiki interface berichten wat meer beheersbaar gemaakt kunnen worden. Het slaat op elk deel van de interface van de wiki die u automatisch wil aanbieden in de taal van de gebruiker. Een typisch voorbeeld is de zijbalk, daar kan er maar een van zijn, maar dezelfde methode kan voor de hoofdpagina gebruikt worden, als u alle vertalingen ervan onder dezelfde titel wilt hebben, ook voor de sjablonen.

Deze methode is ook toepasbaar als de wiki inhoud niet geschikt is voor vertaling van de hele pagina, bijvoorbeeld als er erg veel opmaak is of als er veel sjablonen gebruikt worden. Men wil voorkomen dat vertalers per ongeluk de opmaak gaan vertalen of moeten gaan nadenken of iets opmaak is. Dit gaat ook rondom de interface berichten en het magische woord {{int:}}, dat toestaat dat interface berichten overal toegevoegd kunnen worden waar wikitext geschreven kan worden. Dit magische woord zorgt er automatisch voor dat het interface bericht wordt vervangen door die tekst in taal van de gebruiker.

U kunt dus de kracht van de automatische vertaling van de wiki interface naar de wiki gebruiken, maar dat lost het probleem voor de anonieme gebruikers niet op. Die kunnen standaard niet de taal aanpassen. Zie hieronder de extensie Universal Language Selector.

In vergelijking met de paginavertaling zijn er bij deze methode wat nadelen:

  1. Veel ontwikkelaars van MediaWiki hebben liever geen gebruik van {{int:}} omdat het de cache fragmenteert. In plaats van een versie van een opgebouwde pagina in de cache, moet het bij gebruik van {{int:}} voor elke taal in de cache worden gezet.
  2. Het instellen is lastiger, er is toegang tot de wiki configuratie nodig.
  3. Er is geen automatisch volgen van verouderde vertalingen en de statistieken over de vertalingen kunnen onbetrouwbaar worden bij het toevoegen / verwijderen van vertaalberichten.
  4. Alleen wiki beheerders kunnen vertaalberichten toevoegen aan de berichtgroepen en ze vertalen. Dit betekent dat het systeem meer geschikt is voor pagina's die niet vaak gewijzigd worden, men wil de beheerders geen dagtaak vertalen geven.

Een voordeel is dat het meestal goed werkt. Er zijn twee tutorials die voorbeelden geven van zaken die bij dit soort dingen regelmatig gedaan moeten worden. Daarvoor is er een uitleg over het maken van een berichtengroep, bij deze methode zijn er berichtengroepen nodig.

Instellen

De serverbeheerder moet deze stap uitvoeren. Het volgende stukje code moet aan LocalSettings.php worden toegevoegd:

$wgHooks['TranslatePostInitGroups'][] = function ( &$list, &$deps, &$autoload ) {
	$id = 'wiki-sidebar';
	$mg = new WikiMessageGroup( $id, 'sidebar-messages' );
	$mg->setLabel( 'Zijbalk' );
	$mg->setDescription( 'De teksten in de zijbalk op deze wiki.' );
	$list[$id] = $mg;
	return true;
};

De berichtengroep-id wiki-sidebar moet uniek zijn, gebruik dit dus niet voor meerdere groepen. De tweede parameter voor de WikiMessageGroup constructor, sidebar-messages, het geeft de pagina [[MediaWiki:Sidebar-messages]] aan. Het label wordt getoond in dropdowns en op andere plaatsen waar een berichtengroep gekozen kan worden. De beschrijving wordt getoond in de Special:Translate. Dat zijn de waarden die u kunt en moet wijzigen naar wat het beste bij uw wiki past wanneer u een berichtengroep toevoegt.

Tutorial vertaald zijbalk

Wij nemen aan dat de stap instellen al is gedaan. Volg dan nauwlettend de gids voor het aanpassen van de zijbalk. Wij gaan ervan uit dat er een eenvoudige zijbalk als volgt is aangemaakt:

* sidebar-commonpages
** FAQ|sidebar-faq

[[MediaWiki:Sidebar-commonpages]] bevat Common pages, [[MediaWiki:Sidebar-faq]] bevat Frequently asked questions.

Wat er dan alleen maar gedaan hoeft te worden is naar [[MediaWiki:Sidebar-messages]] te gaan (of datgene wat hiervoor is gedefinieerd) en daar te schrijven:

sidebar-commonpages sidebar-faq

Dat zijn de namen van de systeemberichten, zonder de namespace "MediaWiki:", gescheiden door een spatie.

Ga dan naar [[Special:Translate/wiki-sidebar]] (of wat in de vorige stap is gedefinieerd; [[Special:Translate]] is de lijst bestaande groepen). Nu is mogelijk om berichten te gaan vertalen. Omdat alle berichten in de MediaWiki namespace staan, kunnen alleen interfacebeheerders de lijst bewerken en ze vertalen.

Tutorial vertaalde hoofdpagina

Het kan ook worden gebruikt als er een pagina is met veel opmaak of sjablonen. Het voordeel van deze methode is dat de taal automatisch in de taal van de gebruikersinterface wordt getoond. Dat betekent dan weer wel dat als de taal waarin de pagina wordt getoond moet worden aangepast dat dan de taal van de interface moet worden aangepast.

De implementatie is gelijk aan die in de vorige tutorial:

  1. Maak een berichtengroep aan.
  2. Kies een wiki pagina.
  3. Vervang elk deel dat vertaald moet worden door {{int:Mainpage-messagename}} en verplaats de inhoud naar [[MediaWiki:Mainpage-messagename]].
  4. Ga naar [[MediaWiki:Mainpage-messages]] (of wat gedefinieerd is bij het installatie) en voeg de berichtennamen toe gescheiden door spaties.
  5. Klaar. Ga naar [[Special:Translate]] om de hoofdpagina te vertalen.

Stel dat [[Main Page]] bevat:

<div style="max-width:20em;font-size:200%;line-height:1.4;text-align:center;color:green">
''{{SITENAME}} zijn chefs en bakkers die van chocolade houden.''
</div>
Wij hebben nu {{NUMBEROFPAGES}} pagina's vol met chocolade.

Wijzig het naar:

<div style="max-width:20em;font-size:200%;line-height:1.4;text-align:center;color:green">
''{{int:mainpage-slogan}}''
</div>
{{int:mainpage-pagecount}}

Maak [[MediaWiki:Mainpage-slogan]] aan met de inhoud:

{{SITENAME}} zijn chefs en bakkers die van chocolade houden.

Maak [[MediaWiki:Mainpage-pagecount]] aan met de inhoud:

Wij hebben nu {{NUMBEROFPAGES}} pagina's vol met chocolade.

Maak [[MediaWiki:Mainpage-messages]] aan met de inhoud:

mainpage-slogan mainpage-pagecount

Klaar, u kunt nu berichten toevoegen en verwijderen wanneer u maar wilt.

Selectie van taal

Niet alleen de gebruiker kan niet bepalen welke taalversie van de pagina te lezen zonder de eigen voorkeur te wijzigen. Ook voor anonieme gebruikers is dat niet mogelijk, die hebben geen eigen voorkeuren en krijgen dus altijd de standaardtaal van de wiki. U kunt dus overwegen om een anonieme gebruiker een mogelijkheid te bieden een taal te selecteren.

Er is natuurlijk een oplossing. Met de extensie UniversalLanguageSelector/nl kan de vermoedelijke voorkeurstaal van de gebruiker geraden worden en een optie aangeboden worden om de taal zelf te selecteren. Er wordt dan een cookie gebruikt, er zijn dan geen kunstjes nodig zoals met de uselang parameter, die wordt meestal voor debugging gebruikt.