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 item
  • slang – language of the answer, if not native
    • * – native (default)
    • ! – current project
    • any valid code
  • shift – capitalization
    • c – capitalize all
    • d – downcase everything
    • f – capitalize first item only
    • m – downcase every first word in item only
  • link=1 – link items
  • scream – category title in case of error
  • split – split pattern, if list expected; e.g. split=, – otherwise 1 is regarded as single item
  • separator – list separator, else split
  • start – 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-US or en-GB and that is not mentioned explicitly in list, base language (here en) will be tried.
    • If nothing matches and no list is provided, the project language (here en), at least en for 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
.legaltrue if valid
.n – Number of components
Multilingual.getName( ask, alien )
  • alien – language of the answer
    • nil false "*" – native
    • "!" – current project
    • Any ISO code.
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

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.

  1. 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:
  2. 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.
  3. 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.
  4. 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.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.