Help:Autotranslate/nl

Het resultaat ziet er meestal zo uit
De structuur die meestal nodig is om een automatisch vertaalsjabloon te maken

Dit gaat over het instellen van een automatisch vertaald sjabloon met behulp van {{Autotranslate}} (zie documentatie daar) en heeft tot doel het proces duidelijker en gedetailleerder uit te leggen.

Waarom vertalen?

Wikimedia Commons is een meertalig project. Ons doel is om een gelokaliseerde interface te bieden aan elke gebruiker overal ter wereld.

Wanneer Autotranslate te gebruiken

Als u een enkel woord of zin wilt vertalen, gebruik dan MediaWiki-berichten of {{LangSwitch}}. Als u iets complexers wilt, is Autotranslate de juiste keuze. Zie Localistatie voor een overzicht van internationalisering/localisatie.

Wat doet Autotranslate ?

Autotranslate doet, afhankelijk van de door de gebruiker gekozen interfacetaal een aanroep naar een subpagina van het sjabloon die is opgegeven via de parameter |base=. Dit betekent dat de verwerking op de server plaatsvindt en dat de gebruiker alleen de inhoud van één subsjabloon kan zien. Het detecteert de taal die de gebruiker kiest door naar {{int:lang}} te zoeken; voor u is dit en. Autotranslate zou dus de subpagina /en voor u geven, als deze subpagina bestaat.

Nadelen

Autotranslate slaat verschillende taalvertalingen op verschillende subpagina's van het sjabloon op. Dit heeft één belangrijk nadeel: de subpagina's van het sjabloon moeten afzonderlijk worden onderhouden om relevant en actueel te blijven. Anders zien gebruikers met verschillende talen verschillende instructies of verschillende informatie. Dit kan tot problemen leiden wanneer gebruikers met elkaar communiceren. Als gebruikers dus een versie wijzigen, moeten zij alle andere versies bijwerken of een opmerking over een afwijking op alle andere subpagina-sjablonen plaatsen. In de praktijk gebeurt het vaak dat alleen de /en-subpagina (de Engelse versie) wordt bijgewerkt; de coördinatie van vertaalupdates blijft een probleem op Commons (dit geldt niet alleen voor automatisch vertaalde sjablonen...). Er is echter nu een oplossing die ervoor zorgt dat alle vertalingen synchroon lopen: De extensie Translate.

Performance

Zoals u kunt zien in het diagram naast deze tekst, zijn er meer dan 5 sjablonen betrokken. Autotranslate controleert zelf of een pagina bestaat. Dit wordt geclassificeerd als een "dure parserfunctie". Een Autotranslate is toch beter dan 10 LangSwitches.. Als u een ruwe {{Autotranslate}} ziet, wees op de hoogte dat te veel zware parserfuncties op één pagina de rendering van sjablonen zal stoppen.

Sjabloon lus gevonden!

"Template loop detected:Template:Autotranslate" U zult de gevreesde foutmelding 'Template loop detected!' opmerken bij het gebruik van autotranslate. De reden is dat wanneer een sjabloon met autotranslate een andere sjabloon met autotranslade roept, er een {{Autotranslate}} lus ontstaat. Omdat het een andere basis gebruikt, is er geen echt probleem en het foutbericht zelf is het enige dat uw dag verpest. De oplossing: gebruik direct {{#invoke:Autotranslate|autotranslate}}.


Verplichte pagina's

Hoofdsjabloon

Ook bekend als het "front template" moet eruit zien als

{{Autotranslate|base=Example|1={{{1|}}}|2={{{2|}}}}}<noinclude>

{{documentation}}
</noinclude>
  • Het is heel klein
  • Bij het maken van sjablonen voor gebruikersoverleg is dit belangrijk om ervoor te zorgen dat dit sjabloon 'subst:-ed' is.
  • De <noinclude> voorkomt dat andere dingen worden weergegeven wanneer dit sjabloon wordt gebruikt
  • De parameter 'base' is gewoon de naam van het sjabloon zonder de namespace
  • Vervolgens volgen numerieke parameters (er zijn er zeker 10 toegestaan). Deze worden naar de subpagina's met de vertalingen doorgestuurd. Alleen numerieke parameters worden doorgestuurd. Maar natuurlijk kan men een parametersnaam omzetten in een numerieke: |1={{{namedParameter|}}}
  • {{Documentation}} laadt de subpagina /doc van het sjabloon en plaatst er een container omheen zodat de achtergrond grijs lijkt en er enkele links zijn (bewerken, bekijken)
  • De categorieën worden meestal door middel van de documentatie opgenomen. Dit stelt administratoren in staat om het hoofdsjabloon te beschermen terwijl ervaren gebruikers het sjabloon nog steeds kunnen categoriseren via de subpagina /doc (waar ze worden toegevoegd binnen een tag <includeonly>).

Taal subpagina's: /en, /de, /fr, …

Ze zullen er zo uitzien:

{{Example/layout
|1={{{1|}}}
|2={{{2|}}}
|lang=en
|text1=This is an example text.
|text2=or just a phrase
}}<noinclude>
{{translated tag|insert type here - for types see [[Template:Translated tag]]}}
</noinclude>
  • Deze subpagina's zijn bedoeld voor vertaling, niet voor ingewikkelde verrichtingen
  • Gecompliceerde transformaties van de inputparameters moeten in afzonderlijke sjablonen worden uitgevoerd voordat de parameters worden doorgegeven aan de taal-subpagina, dus op de hoofdsjabloon met behulp van preprocessor-sjablonen
  • Zorg voor de vertalers en ze zullen u dankbaar zijn
  • Deze sjablonen moeten altijd in sync zijn met elkaar. Anders zullen mensen die sommige talen gebruiken, misleid worden.
  • Stuur altijd alle parameters die de subpagina ontvangt naar het layout-sjabloon
  • Geef ook de huidige "taal-sneltoets" (de subpagina naam door, altijd hardcoded, gebruik niet {{SUBPAGENAME}} maar {{subst:SUBPAGENAME}})
  • Voeg geen hardcoded links toe aan deze taal-subpagina's. Als alle taalsubpagina's één link zouden moeten delen en het is niet mogelijk om deze naar de subpagina /layout te porten, maak dan een nieuwe subpagina van het sjabloon (bijv. Template:Example/link) en gebruik de link op deze manier: Example text [[{{Example/link}}|met een voorbeeldlink]] erin omdat ik het niet leuk vind foo bar.. Als u de link later moet veranderen, hoeft u niet veel vertalingen te bewerken.
  • Probeer geen terugvalteksten als deze te gebruiken: {{{1|fallback text}}} Dit werkt niet omdat Autotranslate altijd alle parameters doorgeeft, zelfs als ze leeg zijn. U zou het voorbeeld moeten herschrijven als {{#if: {{{1|}}}|{{{1}}}|fallback text}}

Lay-out subpagina: /layout

Hier kunt u creatief zijn. Maar u moet een paar regels volgen:

  • Gebruik {{LayoutTemplateArgs}} om Ajax-in-pagina-vertaling van uw sjabloon toe te staan wanneer u op een taallink klikt. U moet de instructies van {{LayoutTemplateArgs}} nauwgezet volgen. Het Ajax-script roept nu de taal-subpagina's direct aan. Dit betekent dat u de parametersnamen moet instellen op getallen omdat de subpagina-sjabloon alleen getallen accepteert of dat u ervoor moet zorgen dat alle taal-subpagina's ook benoemde parameters accepteren.
  • Plaats elke afbeelding in een {{ImageNoteControl}}: {{ImageNoteControl|notes=off|img=[[File:Example.jpg|60px]]}} (wrap). Anders zouden vandalen ongepaste afbeeldingsnotities kunnen toevoegen (en dat doen ze graag). Overweeg om te upload-protecting van de bestanden die u wilt gebruiken.
  • Tabellen voor lay-outdoeleinden worden afgeschaft omdat schermlezers grote moeite hebben om ze te begrijpen. Maar het is soms een uitdaging om ze te vervangen.

Hier is een voorbeeld:

<div style="border:2px solid grey; width:99%; padding:5px; min-height:70px" class="layouttemplate">
{{LayoutTemplateArgs|template=Example|args=
{{urlencode: 1={{{1|}}} }}
{{urlencode: 2={{{2|}}} }}
{{urlencode: 3={{{3|}}} }}
}}
{{ImageNoteControl|notes=off|img=[[File:Example.jpg|60px|left]]}} Some text here.
----
{{Example/lang}}
</div>

Subpagina taal: /lang

Goed nieuws: u hoeft niet voor deze pagina te zorgen. Als alles anders klaar is, maak het aan met als enige inhoud {{subst:lle}}, dat zal automatisch alle taalsubpagina's scannen en links toevoegen naar taalsubpagina's die er zijn.

Als u aanpassingen nodig heeft, moeten externe links, bijvoorbeeld via {{urlencode: … }}, worden gebruikt om prestatie redenen (in tegenstelling tot de interne wikilink-syntaxis). [r]

Subpagina documentatie: /doc

Het is een goed idee om een patroon te gebruiken als

{{TemplateBox
|1=
|1d=
|1def=
|1stat=required
|2=
|2d=
|2def=
|2stat=required
|name=Example
|desc=
|namespace=
|usergroup=
|placement=
|usage-notes=
|type=
|example=
|i18n-method=autotranslate
|i18n-desc=
|seealso=
* [[Example]]
|setscats=
|lines=
|shorthand=
|relieson=
}}

<includeonly>
[[Category:Example templates]]
</includeonly>

Extensie Translate gebruiken

De extensie Translate is nu in de meeste gevallen het aanbevolen systeem voor automatische vertaling:

  • Maak uzelf eerst vertrouwd met hoe u een pagina voor vertaling kunt markeren.
  • Het "skelet" is de pagina die wordt gemarkeerd voor vertaling (d.w.z. toegevoegd aan het Special:Translate systeem). Het kan niet de sjabloonpagina zelf zijn, die alleen {{Autotranslate}} moet bevatten. Dus zet het skelet in een subpagina, bij voorkeur /i18n. Vertalingen worden dan (automatisch) gemaakt met /i18n/langcode.
  • Het skelet kan/moet ook alle opmaak en niet-vertaalbare delen bevatten. Het Translate-systeem zal deze wikitext automatisch naar alle subpagina's kopiëren, maar aangezien de handhaving automatisch is, is deze duplicatie geen probleem. Als u een sjabloon aanpast met behulp van het eerdere autotranslate-systeem, kunt u de sjabloon /layout uit het skelet aanroepen, maar dit wordt niet aanbevolen.
  • Er is geen behoefte om de vertalingen handmatig op te noemen, verwijder dus alle subpagina's /lang. De tag <languages/> kan automatisch de beschikbare vertalingen vermelden, maar dat is niet nodig.
  • Het hoofdsjabloon moet worden aangepast en zal eruit zien als:
{{Autotranslate|base=Example/i18n|1={{{1|}}}|2={{{2|}}}}}<noinclude>
{{documentation}}
</noinclude>
  • Nadat u de subpagina van /i18n voor vertaling heeft gemarkeerd of een vertaalbeheerder om hulp heeft gevraagd, zal een bot automatisch alle bestaande subpagina's bijwerken die vertalingen zijn. De eerste keer dat een paginaversie wordt gemarkeerd voor vertaling, maakt de bot de subpagina van /en aan die door autotranslate wordt gebruikt als de belangrijkste fallback-taal. Veranderingen op de subpagina van /i18n zullen pas van kracht worden bij de weergave van het sjabloon nadat de pagina is gemarkeerd voor vertaling.
  • Gebruik ext.translate als de |i18n-method= in het documentatie sjabloon. Houd rekening met de parameter |i18n-sub-page=, want als deze aanwezig is, kan deze leiden tot een ongebruikelijke waarde (de standaardwaarde is i18n, behalve dat u de parameter name weglaat en niet mag worden gewijzigd).
  • Het grote voordeel is dat het bijwerken van doorgegeven parameters in het lay-out-sjabloon nu zo eenvoudig is als nooit tevoren. Daarnaast krijgt u een overzicht van de vertalingsvoortgang en hoeven de vertalers zich niet hoeven te vervelen met ingewikkelde constructies van sjablonen. Ten slotte kan het hoofdsjbloon volledig worden beveiligd; de vertalingen zijn nog steeds bewerkbaar, zelfs de subpagina /i18n.
  • Een voorbeeld is Special:PrefixIndex/Template:TemplateBox.
Category:Commons internationalization/Translations Category:Commons help/nl Category:Multi-template documentation
Category:Commons help/nl Category:Commons internationalization/Translations Category:Multi-template documentation