Template:Engvar/doc
| 40px | This is a documentation subpage for Template:Engvar. It contains usage information, categories and other content that is not part of the original template page. |
Contents
Usage
This template can be used in templates that are used on pages with different English language variants (see ENGVAR): articles in en-UK and articles in en-US. At the moment only UK and US English are recognised.
Article editor: When using the prepared template in an article, the editor can set its parameter |engvar=en-UK. The template text now will use the provided en-UK variant of words. This parameter setting is only needed once in the template.
In the template: So your template takes input parameter {{{engvar}}} as the language id. Internally, your template should have this code construct:
...
| label= {{engvar| engvar={{{engvar}}} | en-uk=Football | en-us=Soccer }}
...
Depending on the engvar input, it returns one of the words.
Language id
At this moment, the next language ids are recognised.
Used in article code (article editor; case insensitive):
engvar= en-UK, UK, en-uk, uk→ returns the en-UK word(s)engvar= en-US, US, en-us, us→ returns the en-US word(s)engvar= en, EN→ returns the plain English word(s) (more on this below)
Used in template code (template editor):
- Here, always use the lowercase language id for your word definition:
uk-en=Football(NOTuk-EN=Football) - Recognised language id's:
en-uk= OR uk=, en-us= OR us=, en=
Unnamed parameters
In template code unnamed parameters can be used:
- Unnamed parameter 1=pass throught the
{{{engvar}}}variable. Named:engvar={{{engvar}}} - Unnamed parameter 2=en-UK word(s)
- Unnamed parameter 3=en-US word(s)
- Parameter "en=" cannot be unnamed.
<!-- The next four rows are equal in template code: -->
...
| label= {{engvar| engvar={{{engvar|}}} | en-uk=Football | en-us=Soccer }}
| label= {{engvar| 1={{{engvar|}}} | uk=Football | us=Soccer }}
| label= {{engvar| {{{engvar|}}} | Football | Soccer }}
| label= {{engvar| 1={{{engvar|}}} | 2=Football | 3=Soccer }}
...
Plain "en" variant
It is possible to define and use the plain English variant word(s) with id "en": en=Association football. From here, the article can ask for plain "en" by using engvar=en.
In the template code, this must always be a named parameter.
...
| label= {{engvar| {{{engvar|}}} | Football | Soccer | en=Association football }}
...
Default language id
Default behaviour 1: To force a default language id (a language that will be used when there is no input, or a blank input) use default=en-US.
| label= {{engvar| {{{engvar}}} | Football | Soccer | default=en-US }}
Default behaviour 2: Another default-behaviour can be used: in your template, provide parameter engvar with a default language id:
| label= {{engvar| {{{engvar| en-US }}} | Football | Soccer | en=Association football }}
This default last example will not use the default language when the engvar is a blank. Instead, the standard default word is returned (see below).This may occur in nested templates and pass-through variables.
Default word(s)
Default behaviour 3:
When the engvar value is not recognised (or the default language alternative you might have provided), then the default word(s) will be returned.
This default word(s) is determined as follows:
1st: the en= word(s) if entered
2nd: the en-uk= (or uk) word(s) if entered
3rd: the en-us= (or us) word(s) if entered
4rd: a blank
Clearly, this template tries to make a catch when possible. Blanks output avoided when possibble.
Default behaviour 4: From the above, it follows that entering engvar=en produces the default word(s) as described. This is intentionally and by definition. Still, it is preferred not to rely on this route, because it might not work as expected.
Notes on coding
- On the template side provide at least both UK and US word(s), and maybe the en-word(s). Do not rely on the Default-behaviour, even when it tests OK today.
- Use named parameters for code clarity
- Do not rely on blank entries to return (do not use:
en-UK=|...}}). It might be interpreted as absent, and so another word may be used.
Full parameter list
Parameter list:
{{engvar
| engvar =
| en-uk =
| en-us =
| en =
| default=
}}
Or, equivalent names:
{{engvar
| engvar =
| uk =
| us =
| en =
| default=
}}
Or, unnamed:
{{engvar
|
|
|
| en =
| default=
}}
Todo
- Other English variants could be added
- Is there a definite list of English language variants, we should cover?
- Maybe a fallback can exist: if en-GB does not exist then use en-UK
- Rewrite this doc. ;-)
Examples
See also
- WP:ENGVAR about using a single variant in an article