Meta:Guía de internacionalización
Meta-Wiki pretende ser una wiki multilingüe, por lo que se espera que la mayoría de páginas sean traducibles y traducidas. Para ser traducible a través de Extensión de traducción, una página debe etiquetarse con <translate>...</translate>
(es decir, internacionalizado) y luego marcada para traducción con un administrador de traducción. Esta página tiene como objetivo presentar pautas para la internacionalización de páginas en Meta-Wiki.
![]() | Aviso general: cuando las traducciones han sido ya hechas, por favor evitar hacer cualquier edición la cuál haría obsoleta la traducción, incluso si el etiquetado no sigue estas directrices. |
Principios generales
Generalmente, deberías seguir Pautas de la extensión traducción sobre cómo marcar una página para su traducción: siempre que sea posible, por favor evite dividir manualmente las unidades de traducción cerrando la etiqueta translate
, debe dejar que las líneas vacías hagan el trabajo en su lugar.
Nuevos requisitos principales de sintaxis 2020
- Si desea dividir una lista en varias unidades, tenga cuidado de no poner ningún carácter de línea nueva dentro de las unidades. También debe excluir el punto de viñeta / hash de la etiqueta
translate
. - Si inserta una etiqueta
translate
dentro de un valor de parámetro de una llamada de plantilla, asegúrese de que el parámetro tenga un nombre (de lo contrario, agregue un nombre numérico, como1=
).
Segmentation examples
Bad syntax | Good syntax |
---|---|
== <translate>Section heading</translate> == <translate>This is a paragraph.</translate> <translate>This is another paragraph.</translate> {{Template}} == <translate>Another heading<translate> == |
<translate> == Section heading == This is a paragraph. This is another paragraph. </translate> {{Template}} <translate> == Another heading == </translate> |
<translate> * This is a long list: ** There are more than 160 words in this list, ** or there are more than 8 items. </translate> <translate> * So it is better to split it in several smaller units. * But we must exclude bullet points from translate tags to keep the list accessible. </translate> |
* <translate>This is a long list:</translate> ** <translate>There are more than 160 words in this list,</translate> ** <translate>or there are more than 8 items.</translate> * <translate>So it is better to split it in several smaller units.</translate> * <translate>But we must exclude bullet points from translate tags to keep the list accessible.</translate> |
Elementos específicos
Enlaces
Any page which could be translated should be linked with Special:MyLanguage/
prefix, even if it not actually internationalized. The main pages which do not need this prefix are talk pages and templates without textual content. To make translation easier, please wrap target of internal links inside <tvar name=1> … </tvar>
(tvar
name can be a number only, this is sufficient).
For links to Wikipedia article, you should use {{lwp}} template for the target and wrap it inside a tvar. E.g. [[{{lwp|Rosa Parks}}</tvar>]]
produces en:Rosa Parks in English pages and fr:Rosa Parks in French pages.
For other cross-wiki and external links, if a translation exists, you should not put the link target inside tvar
. Of course, if the target website has a language detection system (like MediaWiki's Special:MyLanguage/
), you may use this system and put the full link inside tvar
.
Bad syntax | Good syntax |
---|---|
<translate> This is a text with an [[internal link]] and an [https://openstreetmap.org external link]. </translate> |
<translate> This is a text with an [[<tvar name=1>Special:MyLanguage/internal link</tvar>|internal link]] and an [<tvar name=url>https://openstreetmap.org</tvar> external link]. </translate> |
Categorization
You should exclude category declarations from translate
tags. Instead, add {{#translation:}}
after the category name: [[Category:Target category{{#translation:}}]]
. This way, only the main English page is categorized into the target categories, translation pages are categorized in per-language categories.
Bad syntax | Good syntax |
---|---|
<translate>[[Category:Wikipedia]]</translate> |
[[Category:Wikipedia{{#translation:}}]] |
Images
Thumbs and large images
If the image can be localized (e.g. it contains some text and a translated version exists), it should be fully included in translate
tags.
Else, you should only wrap alt=
value in <translate nowrap>
tags and caption in <translate>
tags.
If left
or right
is used as image parameter: remove it if it is useless (thumbnails default to right in English), or replace it with {{dirleft}}
or {{dirright}}
.
Bad syntax | Good syntax |
---|---|
<translate> [[File:landscape.jpg |thumb |left |alt=sunset |Photo of a beautiful landscape]] </translate> |
[[File:landscape.jpg |thumb |{{dirleft}} |alt=<translate nowrap>sunset</translate> |<translate>Photo of a beautiful landscape</translate>]] |
[[File:English Wikipedia screenshot.png|thumb|right|<translate>Wikipedia homepage</translate>]] |
<translate> [[File:English Wikipedia screenshot.png|thumb|Wikipedia homepage]] </translate> |
Icons
Inline icons may be simply wrapped in a <tvar name=img>
.
Bad syntax | Good syntax |
---|---|
<translate> [[File:pretty hello word.png|alt=Hello]] everybody! [[File:smiley.png|alt=🙂]] How are you? </translate> |
<translate> [[File:pretty hello word.png|alt=Hello]] everybody! <tvar name=icon>[[File:smiley.png|alt=🙂]] How are you? </translate> |
Translation variables
Translation variables (<tvar name=name></tvar>
syntax) should be used to hide text from translators in order to prevent them from translating it.
The following examples should be wrapped inside tvar
:
- automatically-localized or non-localizable link targets,
- usernames,
- numbers likely to change (they should be wrapped inside
{{formatnum:}}
then insidetvar
), - tag attributes (e.g.
<span <tvar name=attr>class="css_class" style="background-color:blue"</tvar>>hello</span>
), - template name and parameters (e.g.
{{<tvar name=1>center|5px</tvar>|hello}}
).
The following examples should not be wrapped inside tvar
:
- people and place names (even if they are rarely translated, they may be transliterated),
- XML tags without attributes, like
<code>
(the translation interface handles them), - localizable link targets (i.e. links to multilingual website).
Translation variable names
To help translators, please keep tvar
names as short and readable as possible. If translators don’t need to know their content, using numbered names is a good idea because digits are quick to type for most translators and are common in many languages (so that most beginners do not accidentally translate them).
However if tvar
is inside a sentence, it should have an explicit name to allow translators to understand what it contains and so write it easily in the right place in their translation (it is pretty common for an email address, URL, wikitext tag name…).
Avoid putting proper names (people, places…) inside tvar
: even if they are rarely translated, as they may be transliterated in several languages.
You may put parts of complex wikitext or HTML inside tvar
, but please ensure the resulting wikitext for translators is balanced.
Templates
You may prepare a template for translation like any page, but you should ensure the “Enable translation aware transclusion for this page” checkbox is checked when you mark the page for translation.
If your template is expected to be included in non-translatable pages (e.g. user pages) and should be even translated in these pages, you can use the pre-2021 hack with switch, replacing uselang={{PAGELANGUAGE}}
with uselang={{int:lang}}
in the code shown below.
Pre-2021 hacks
Before MediaWiki 1.36.0-wmf.32 (2021-02-23), you should ensure English pages include the /en subpage of a template instead of a template directly.
One way was to replace each occurrence of {{my translated template|param}}
with {{TNT|my translated template|param}}
, except in templates or transcluded pages which should contain {{ {{TNTN|my translated template}} |param}}
instead.
Another way was to edit the template to make it call itself {{TNT}}
. To this end, you should put the full template code inside a switch which evaluated an empty translate
tag, with a default case which called {{TNT}}
.
{{#switch:<translate></translate> |=<span lang="en" dir="ltr" class="mw-content-ltr"><full template code></span> |#default={{#invoke:Template translation|renderTranslatedTemplate|template={{subst:FULLPAGENAME}}|uselang={{PAGELANGUAGE}}|noshift=1}} }}