Module:Multilingual/doc
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.
- fair
- Format language code according to RFC 5646 and check validity
- Result: empty, if invalid
- 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 onlym– downcase every first word in 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, elsesplitstart– prepend first list element, if any
- 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-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.
- failsafe
- Version ID:
2020-12-10 - optional parameter
1– required version- result: empty, if requirement not met
Examples (test page)
A test page illustrates practical use.
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.fair( ask )
-
- ask – string, or table according to getLang()
- 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 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
- ahead – string for optional prepending first element, if any
- Multilingual.getBase( ask )
- Multilingual.getLang( ask )
- Split language code into components
- Returns: table
.base– Basic language (2–3 lowercase letters).region– Country (2 uppercase letters).script– Scripting (4 letters, capitalized).year– year (4 digits).extension– Extension (1 lowercase letter).other– More.legal– true if valid.n– Number of components
- 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
- Multilingual.failsafe( atleast )
-
- atleast
optional
nil or required version - Returns: string or false
- atleast
If succeeding, the Multilingual.get*() return a string, the Multilingual.is*() true; on failure false.
Usage
General library; no limitations.
Dependencies
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.