Vorlagenprogrammierung | Diskussionen | Lua | Test | Unterseiten | |||
Modul | Deutsch | English
|
Modul: | Dokumentation |
Multilingual
– Module with functions in context of languages, language codes, language names.
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
- Retrieve code of language name in local (current project) language.
- A code itself will be identified, too.
- format
- 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; else1
is regarded as single itemseparator
– list separator, elsesplit
- getBase
- Retrieve base language from possibly combined ISO language code.
- getName
- 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
- Could this be an ISO language code?
- nothing – if not
- isLangWiki
- Could this be a Wiki language version?
- nothing – if not
- kannDeutsch
- Might someone with this language code understand German?
- nothing – if not
- userLang
- 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-US
oren-GB
and 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
de
), at leasten
for English will be returned.
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 )
- Multilingual.format( apply, alien, alter, active, alert, frame, assembly, adjacent )
-
- 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, if"f"
– capitalize first item only
- 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 )
- Multilingual.getName( ask, alien )
-
- alien – language of the answer
nil false "*"
– native"!"
– current project- Any ISO code.
- alien – language of the answer
- Multilingual.isLang( ask )
- Multilingual.isLangWiki( ask )
- Multilingual.kannDeutsch( ask )
- Multilingual.userLang( accept, frame )
-
- 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.