Jump to content

Module:I18n/doc

From Wikipedia, the free encyclopedia
I18n
DescriptionLibrary for message storage in Lua datastores.
Author(s)
Code sourceI18n
StatusBeta
Dependencies
Using code byCqm

I18n library for message storage in Lua datastores. The module is designed to enable message separation from modules & templates. It has support for handling language fallbacks. This module is a Lua port of wikia:dev:I18n-js and i18n modules that can be loaded by it are editable through wikia:dev:I18nEdit.

Documentation

Package items

i18n.getMsg(frame) (function)
Localized message getter by key. Can be used to fetch messages in a specific language code through uselang parameter. Extra numbered parameters can be supplied for substitution into the datastore message.
Parameters:
frame Frame table from invocation. (table)
frame.args Metatable containing arguments. (table)
frame.args[1] ROOTPAGENAME of i18n submodule. (string)
frame.args[2] Key of i18n message. (string)
frame.args.lang Default language of message. (string; optional)
Error: 'missing arguments in i18n.getMsg' (line 271)
Returns: I18n message in localised language. (string)
i18n.loadMessages(...) (function)
I18n message datastore loader.
Parameter: ... ROOTPAGENAME/path for target i18n submodules. (string)
Error: 'no source supplied to i18n.loadMessages' (string; line 322)
Returns: I18n datastore instance. (table)
Usage: require('Module:I18n').loadMessages('1', '2')
i18n.getLang() (function)
Language code getter. Can validate a template's language code through uselang parameter.
Returns: Language code. (string)
i18n.main(frame) (function)
Wrapper for the module.
Parameter: frame Frame invocation object. (table)
Returns: Module output in template context. (string)
Usage: {{i18n}}
_i18n.isWikitext(msg) (function)
Checks whether a message contains unprocessed wikitext. Used to optimise message getter by not preprocessing pure text.
Parameter: msg Message to check. (string)
Returns: Whether the message contains wikitext. (boolean)

Data

I18n datastore class. This is used to control language translation and access to individual messages. The datastore instance provides language and message getter-setter methods, which can be used to internationalize Lua modules. The language methods (any ending in Lang) are all chainable.

Data:msg(opts, ...) (function)
Datastore message getter utility. This method returns localized messages from the datastore corresponding to a key. These messages may have $n parameters, which can be replaced by optional argument strings supplied by the msg call.
This function supports named arguments. The named argument syntax is more versatile despite its verbosity; it can be used to select message language & source(s).
Parameters:
opts Message configuration or key. (string|table)
opts.key Message key to return from the datastore. (string; optional)
opts.args Arguments to substitute into the message ($n). (table; optional)
opts.sources Source names to limit to (see Data:fromSources). (table; optional)
opts.lang Temporary language to use (see Data:inLang). (table; optional)
... Arguments to substitute into the message ($n). (string; optional)
Error: 'missing arguments in Data:msg' (string; line 115)
Returns: Localised datastore message or '<key>'. (string)
Usage:
ds:msg{
    key = 'message-name',
    lang = '',
    args = {...},
    sources = {}
}
ds:msg('message-name', ...)
Data:parameter(parameter, args) (function)
Datastore template parameter getter utility. This method, given a table of arguments, tries to find a parameter's localized name in the datastore and returns its value, or nil if not present. This method always uses the wiki's content language.
Parameters:
parameter Parameter's key in the datastore (string)
args Arguments to find the parameter in (table)
Error: 'missing arguments in Data:parameter' (string; line 176)
Returns: Parameter's value or nil if not present (string|nil)
Data:fromSource(...) (function)
Datastore temporary source setter to a specificed subset of datastores. By default, messages are fetched from the datastore in the same order of priority as i18n.loadMessages.
Parameter: ... Source name(s) to use. (string)
Returns: Datastore instance. (Data)
Data:getLang() (function)
Datastore default language getter.
Returns: Default language to serve datastore messages in. (string)
Data:useUserLang() (function)
Datastore language setter to wgUserLanguage.
Returns: Datastore instance. (Data)
Note: Scribunto only registers wgUserLanguage when an invocation is at the top of the call stack.
Data:useContentLang() (function)
Datastore language setter to wgContentLanguage.
Returns: Datastore instance. (Data)
Data:useLang(code) (function)
Datastore language setter to specificed language.
Parameter: code Language code to use. (string)
Returns: Datastore instance. (Data)
Data:inUserLang() (function)
Temporary datastore language setter to wgUserLanguage. The datastore language reverts to the default language in the next Data:msg call.
Returns: Datastore instance. (Data)
Data:inContentLang() (function)
Temporary datastore language setter to wgContentLanguage. Only affects the next Data:msg call.
Returns: Datastore instance. (Data)
Data:inLang(code) (function)
Temporary datastore language setter to a specificed language. Only affects the next Data:msg call.
Parameter: code Language code to use. (string)
Returns: Datastore instance. (Data)

See also