Template:Engvar/doc

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. 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 as the language id. Internally, your template should have this code construct: ... ... Depending on the engvar input, it returns one of the words.
 * label=

Language id
At this moment, the next language ids are recognised.

These ased in article code (article editor; case insensitive):

Used in template code (template editor):
 * Here, always use the lowercase language id for your word definition: uk-en=Football (NOT uk-EN=Football)
 * Recognised language id's: en-uk=, en-us=, en-aus=, en-nz=, en=. Abbreviations like "uk" can not be used to define a word.

Unnamed parameters
In template code unnamed parameters can be used:
 * Unnamed parameter 1=pass throught the variable. Named:
 * Unnamed parameter 2=en-UK word(s)
 * Unnamed parameter 3=en-US word(s)
 * Unnamed parameter 4=en-AUS word(s)
 * Unnamed parameter 5=en-NZ word(s)
 * Parameter "en=" cannot be unnamed.

... ...
 * label=
 * label=
 * label=
 * label=

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=

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=

Default behaviour 2: Another default-behaviour can be used: in your template, provide parameter engvar with a default language id: 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.
 * label=

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 if entered

2nd: the en-uk= word if entered

3rd: the en-us= word if entered

4rd: the en-aus= word if entered

5rd: the en-nz= word if entered

6rd: 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: ... }}). It might be interpreted as absent, and so another word may be used.

Full parameter list
Parameter list:

Or, unnamed:

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 Template:Engvar/testcases