Zum Inhalt springen

Wikipedia:Lua/Modul/Multilingual/en

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 5. Oktober 2014 um 11:45 Uhr durch PerfektesChaos (Diskussion | Beiträge) (Setup). Sie kann sich erheblich von der aktuellen Version unterscheiden.
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
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 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
  • link=1 – link items
  • scream – category title in case of error
  • split – split pattern, if list expected; else 1 is regarded as single item
  • separator – list separator, else split
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 de), at least en 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.
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.