Jump to: navigation, search
MediaWiki Handbook: Contents, Readers, Editors, Moderators, System admins +/-

A collection of texts in various languages basically is a 2D array. They can be stored in templates in the following ways:

One system for a multilingual template is that the template has an additional parameter "lan", and a text is produced depending on language; each line in Help:Localisation/examples (talk, backlinks, edit) shows an example of a style for making template content dependent on the language parameter: *{{MediaWiki:1movedto2/{{{lan}}}}} *{{Lang name - de ({{{lan}}})}} *{{Multilingual template demo/empty|lan={{{lan}}}}} *{{N {{{lan}}}|de}} *{{Ln|de {{{lan}}}}}

{{Help:Localisation/examples|lan=en}} gives:

  • moved $1 to $2
  • German
  • the parameter has been assigned the empty string
  • German
  • German

{{Help:Localisation/examples|lan=nl}} gives:

  • moved $1 to $2
  • Duits
  • aan de parameter is als waarde de lege string toegekend
  • Duits
  • Duits

For Template:HelpuMetaFarigxiMultlingva, Template:Tradukistoj, etc. it does not seem possible to select a language through a parameter; instead CSS or JS is used.


Template name

When copying a template to another site a translated name can be used. In the case of multilingualism on one site, in the simple case where only the template names are multilingual, the content can be put under one name, while under the translated names there are only redirects.

If the content is also localised, each template can call a common template, but each time with a different value of parameter lan. E.g. template:Demo of English version of multilingual template ( talk edit history links ) calls template:Multilingual template demo ( talk edit history links ) with lan=en, and template:Demo van Nederlandstalige versie van meertalig sjabloon ( talk edit history links ) calls the same template with lan=nl.

If the template has e.g. a complicated logical structure, it is convenient if that logic is contained in a common template, to avoid duplication of effort.

Template content

As seen above there are various ways to make texts dependent on the value of parameter lan. If the template calls another template, and for that template the name, parameter names, or parameter values have to be localised, then the outer template has to take care of these localisations too. If the localisation of the inner template has been carried out such it can be called with international names too (see also below) then localisation of various templates can be carried out more independently of each other.

Examples of language-dependent "texts" are also template:Multilingual template demo/thousands separator ( talk edit history links ) and template:Multilingual template demo/decimal point ( talk edit history links ). See also formatnum:, dependent on the format specified for the site, not on a template parameter "lan".

Note however that ParserFunctions #expr and #ifexpr only recognize a decimal point, and do not recognize any thousands separator.

Template parameter names

The localised templates can each use the localised name of a parameter. It calls the common template and gives an international parameter, e.g. "text", the value of the local parameter, e.g. "tekst". Two methods are:

  • Parameter "text" is always defined; the value is the text "undefined" if parameter "tekst" is undefined:
    • text={{{tekst|undefined}}}
  • the state of being undefined is preserved, if parameter "tekst" is undefined then parameter "text" is left undefined too:
    • {{#ifeq:{{{tekst|+}}}|{{{tekst|-}}}|text={{{tekst}}}}}

Correspondingly, if both parameter "tekst" and parameter "text" is allowed, and where if both are defined "tekst" prevails:

  • text={{{tekst|{{{text|undefined}}}}}}
  • Two methods ensuring that if neither parameter is defined parameter "text" is left undefined:
    • {{#ifeq:{{{tekst|{{{text|+}}}}}}|{{{tekst|{{{text|-}}}}}}|text={{{tekst|{{{text}}}}}}}}
    • {{#ifeq:{{{text|+}}}|{{{text|-}}}|text={{{text}}}}}|{{#ifeq:{{{tekst|+}}}|{{{tekst|-}}}|text={{{tekst}}}}}

Note that in the last method the dominating parameter is processed last, to override a possible value of "text".

Template parameter values

If a parameter value is not just passed through as text to be displayed, etc., but used in a condition, the possible parameter values can also be localised. We can either just allow the local versions of the values (the test value which a parameter value is compared is localised like ordinary text), or also allow the international version. In the latter case we can use something like {{#ifexpr:{{#ifeq:{{{font}}}|bold|1|0}}or{{#ifeq:{{{font}}}|vet|1|0}}|'''{{{text}}}'''|{{{text}}}}} ("vet" is Dutch for "bold").

See also

Links to other help pages

Help contents | search (all help pages)
Meta | Wikinews | Wikipedia | Wikiquote | Wiktionary | commons: | mw: | b: | s:
Go | Search | Stop words | URL | Namespace | Page name | Section
Backlinks | Link | Piped link | Interwiki link | Redirect | Category | Image page
Logging in and preferences
Logging in | Preferences | User style
Advanced editing | Editing FAQ | Edit toolbar | Export
Editing shortcuts
Tracking changes
Recent changes (enhanced) | Related changes | Watching pages | Diff
Page history | Edit summary | User contributions | Minor edit | Patrolled edit
Style & formatting
Wikitext examples | Reference card
HTML in wikitext | HTML elements
List | Table | Sorting
Mathematical symbols on English Wikipedia
Special input and output
Inputbox | Special characters | Displaying a formula | Images and other uploaded files | EasyTimeline
Advanced functioning
Template | Advanced templates | Parser function | ParserFunctions | Parameter default | Variable | Magic word | System message | Substitution
Array | Calculation
Page management
Starting a new page | Renaming (moving) a page | Maintenance | Merging and moving pages | Protecting pages
Resolving disputes | Deleting a page
Special pages
Talk page | Testing | Sandbox
Lists of resources
Lists of Categories | Copyrights | Infobox
Redirect | Reference Desk | Shortcuts | Stub types

Other languages: