I18n library for message storage in Lua datastore collections. 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 I18n-js and i18n modules that can be loaded by it are editable through I18nEdit.
Documentation
Package items
i18n.getMsg(frame)(function)- Gets a localized message by data module key. Can be used to fetch messages in a specific language code through
uselangparameter. Extra numbered parameters can be supplied for substitution into the data collection's message. - Parameters:
- Error: 'missing arguments in i18n.getMsg' (line 271)
- Returns: I18n message in localised language. (string)
- Usage:
{{i18n|<getMsg>|<source>|<key>|<arg1>|<arg2>|uselang [[:Template: = <]] code>}} i18n.loadMessages(...)(function)- I18n data loader for message collections.
- Parameter:
...ROOTPAGENAME/path for target i18n submodules. (string) - Error: 'no source supplied to i18n.loadMessages' (line 322)
- Returns: I18n datastore instance. (table)
- Usage:
require('Dev:I18n').loadMessages('1', '2') i18n.getContentLang()(function)- Gets the language code of the wiki or page contents.
- Returns: Content language code. (string)
- Usage:
{{i18n|<getContentLang>}} i18n.getLang()(function)- Gets the language code of the content. Can validate a template's language code through
uselangparameter. - Returns: Language code. (string)
- Usage:
{{i18n|<getLang>|uselang [[:Template: = <]] code>}} i18n.main(frame)(function)- Template wrapper for Template:I18n.
- Parameter:
frameFrame invocation object. (table) - Returns: Module output in template context. (string)
- Usage:
{{#invoke:i18n|main}} _i18n.isWikitext(msg)(function)- Checks whether a message contains unprocessed wikitext. Used to optimise message getter by not preprocessing pure text.
- Parameter:
msgMessage 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()(function)- Gets data message utility. This method returns localized messages from the datastore corresponding to a
key. These messages may have$nparameters, which can be replaced by optional argument strings supplied by themsgcall. - 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).
Data:msg(opts, ...)(function)- Parameters:
- Error: 'missing arguments in Data:msg' (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)- Gets localised template parameter from a datastore. 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:
- Error: 'missing arguments in Data:parameter' (line 176)
- Returns: Parameter's value or nil if not present (string|nil)
Data:fromSource(...)(function)- Sets temporary source 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)- Gets data default language.
- Returns: Default language to serve datastore messages in. (string)
Data:useUserLang()(function)- Sets data language to
wgUserLanguage. - Returns: Datastore instance. (Data)
- Note: Scribunto only registers
wgUserLanguagewhen an invocation is at the top of the call stack. Data:useContentLang()(function)- Sets data language to
wgContentLanguage. - Returns: Datastore instance. (Data)
Data:useLang(code)(function)- Sets data language to specificed language.
- Parameter:
codeLanguage code to use. (string) - Returns: Datastore instance. (Data)
Data:inUserLang()(function)- Sets temporary data language to
wgUserLanguage. The data language reverts to the default language in the nextData:msgcall. - Returns: Datastore instance. (Data)
Data:inContentLang()(function)- Sets temporary data language to
wgContentLanguage. Only affects the nextData:msgcall. - Returns: Datastore instance. (Data)
Data:inLang(code)(function)- Sets temporary data language to a specificed language. Only affects the next
Data:msgcall. - Parameter:
codeLanguage code to use. (string) - Returns: Datastore instance. (Data)
Data:useLanguageConversionType(convType)(function)- Sets temporary data language to a specificed language conversion resolution. Only affects the next
Data:msgcall. - Parameter:
convTypeLanguage conversion type to use. (string) - Returns: Datastore instance. (Data)
See also