Module:Multilingual/doc: Difference between revisions
More actions
de>PerfektesChaos Setup |
de>PerfektesChaos kl.ergs |
||
| Line 23: | Line 23: | ||
:* <code>link=1</code> – link items | :* <code>link=1</code> – link items | ||
:* <code>scream</code> – category title in case of error | :* <code>scream</code> – category title in case of error | ||
:* <code>split</code> – split pattern, if list expected; | :* <code>split</code> – split pattern, if list expected; e.g. <code>split=,</code> – otherwise <code>1</code> is regarded as single item | ||
:* <code>separator</code> – list separator, else <code>split</code> | :* <code>separator</code> – list separator, else <code>split</code> | ||
; getBase {{Anker|getBase}} | ; getBase {{Anker|getBase}} | ||
| Line 49: | Line 49: | ||
:** If the current user language is a variant like <code>en-US</code> or <code>en-GB</code> and that is not mentioned explicitly in list, base language (here <code>en</code>) will be tried. | :** If the current user language is a variant like <code>en-US</code> or <code>en-GB</code> and that is not mentioned explicitly in list, base language (here <code>en</code>) will be tried. | ||
:** If nothing matches and no list is provided, the project language (here <code>{{CONTENTLANGUAGE}}</code>), at least <code>en</code> for English will be returned. | :** If nothing matches and no list is provided, the project language (here <code>{{CONTENTLANGUAGE}}</code>), at least <code>en</code> for English will be returned. | ||
=== Examples (test page) === | |||
A [[Wikipedia:Lua/Modul/Multilingual/Test|test page]] illustrates practical use. | |||
</onlyinclude> | </onlyinclude> | ||
== {{Anker|Lua}} Functions for Lua modules (API) == | == {{Anker|Lua}} Functions for Lua modules (API) == | ||
| Line 72: | Line 75: | ||
:* ''alter'' – capitalization | :* ''alter'' – capitalization | ||
:** <code>"c"</code> – capitalize | :** <code>"c"</code> – capitalize | ||
:** <code>"d"</code> – downcase | :** <code>"d"</code> – downcase everything | ||
:** <code>"f"</code> – capitalize first item only | :** <code>"f"</code> – capitalize first item only, downcase anything else | ||
:* ''active'' – link items, if <code>true</code> | :* ''active'' – link items, if <code>true</code> | ||
:* ''alert'' – string with category title in case of error | :* ''alert'' – string with category title in case of error | ||
Revision as of 12:22, 5 October 2014
Template:LuaModuleDoc
Multilingual – Module with functions in context of languages, language codes, language names.
Template:Anker Functions for templates
All functions expect one unnamed parameter 1 with the key information, and sometimes more optionals. Whitespace ahead and after any content is ignored. Upcasing of language code segments like in en-US does not matter; results are downcased.
The return value is an empty string (“nothing”), if the parameter value does not fulfil the expectations. If there is a result or the query condition is true, at least one visible character will be returned. The result does not begin or end with a space.
- findCode Template:Anker
- Retrieve code of language name in local (current project) language.
- A code itself will be identified, too.
- format Template:Anker
- Format one or more languages.
1– language list or single itemslang– language of the answer, if not native*– native (default)!– current project- any valid code
shift– capitalizationc– capitalize alld– downcase everythingf– capitalize first item only
link=1– link itemsscream– category title in case of errorsplit– split pattern, if list expected; e.g.split=,– otherwise1is regarded as single itemseparator– list separator, elsesplit
- getBase Template:Anker
- Retrieve base language from possibly combined ISO language code.
- getName Template:Anker
- Which name is assigned to this language code?
2– language of the answer*– in that language itself (default)!– in project language- Any ISO code.
- isLang Template:Anker
- Could this be an ISO language code?
- nothing – if not
- isLangWiki Template:Anker
- Could this be a Wiki language version?
- nothing – if not
- kannDeutsch Template:Anker
- Might someone with this language code understand German?
- nothing – if not
- userLang Template:Anker
- Try to support user language by application.
1– space separated list of available ISO 639 codes- Result:
- If the current user language is not a list element, the first element is used.
- If the current user language is a variant like
en-USoren-GBand that is not mentioned explicitly in list, base language (hereen) will be tried. - If nothing matches and no list is provided, the project language (here
en), at leastenfor English will be returned.
Examples (test page)
A test page illustrates practical use.
Template:Anker Functions for Lua modules (API)
All functions described above can be used by other modules:
local lucky, Multilingual = pcall( require, "Module:Multilingual" )
if type( Multilingual ) == "table" then
Multilingual = Multilingual.Multilingual()
else
-- failure; Multilingual is the error message
return "<span class='error'>" .. Multilingual .. "</span>"
end
Subsequently there are available:
- Multilingual.findCode( ask ) Template:Anker
- Multilingual.format( apply, alien, alter, active, alert, frame, assembly, adjacent ) Template:Anker
-
- apply – string with language list or single item
- alien – language of the answer
nil false "*"– native"!"– current project- any valid code
- alter – capitalization
"c"– capitalize"d"– downcase everything"f"– capitalize first item only, downcase anything else
- active – link items, if
true - alert – string with category title in case of error
- frame – if available
- assembly – string with split pattern, if list expected
- adjacent – string with list separator, else assembly
- Multilingual.getBase( ask ) Template:Anker
- Multilingual.getName( ask, alien ) Template:Anker
-
- alien – language of the answer
nil false "*"– native"!"– current project- Any ISO code.
- alien – language of the answer
- Multilingual.isLang( ask ) Template:Anker
- Multilingual.isLangWiki( ask ) Template:Anker
- Multilingual.kannDeutsch( ask ) Template:Anker
- Multilingual.userLang( accept, frame ) Template:Anker
-
- accept – string with space separated list of available ISO 639 codes
- frame – if available
If succeeding, the Multilingual.get*() return a string, the Multilingual.is*() true; on failure false.
Usage
General library; no limitations.
Dependencies
None.
- [[../../WLink|WLink]]
- /config – optional project specific adaption