Movatterモバイル変換


[0]ホーム

URL:


Va ô cuntinutu
WikipediaLa nciclupidìa lìbbira
Arriscedi

Mòdulu:TNT

Dâ Wikipedia, la nciclupidìa lìbbira.
warning Avviso:Non modificare. Questa pagina è mantenuta daun bot. Tutti gli edit devono essere fatti sumediawiki.org. (traduci questo avviso)
per favore aiuta atradurre questa pagina.

---- INTRO:   (!!! DO NOT RENAME THIS PAGE !!!)--    This module allows any template or module to be copy/pasted between--    wikis without any translation changes. All translation text is stored--    in the global  Data:*.tab  pages on Commons, and used everywhere.---- SEE:   https://www.mediawiki.org/wiki/Multilingual_Templates_and_Modules---- ATTENTION:--    Please do NOT rename this module - it has to be identical on all wikis.--    This code is maintained at https://www.mediawiki.org/wiki/Module:TNT--    Please do not modify it anywhere else, as it may get copied and override your changes.--    Suggestions can be made at https://www.mediawiki.org/wiki/Module_talk:TNT---- DESCRIPTION:--    The "msg" function uses a Commons dataset to translate a message--    with a given key (e.g. source-table), plus optional arguments--    to the wiki markup in the current content language.--    Use lang=xx to set language.  Example:----    {{#invoke:TNT | msg--     | I18n/Template:Graphs.tab  <!-- https://commons.wikimedia.org/wiki/Data:I18n/Template:Graphs.tab -->--     | source-table              <!-- uses a translation message with id = "source-table" -->--     | param1 }}                 <!-- optional parameter -->------    The "doc" function will generate the <templatedata> parameter documentation for templates.--    This way all template parameters can be stored and localized in a single Commons dataset.--    NOTE: "doc" assumes that all documentation is located in Data:Templatedata/* on Commons.----    {{#invoke:TNT | doc | Graph:Lines }}--        uses https://commons.wikimedia.org/wiki/Data:Templatedata/Graph:Lines.tab--        if the current page is Template:Graph:Lines/doc--localp={}locali18nDataset='I18n/Module:TNT.tab'-- Forward declaration of the local functionslocalsanitizeDataset,loadData,link,formatMessagefunctionp.msg(frame)localdataset,idlocalparams={}locallang=nilfork,vinpairs(frame.args)doifk==1thendataset=mw.text.trim(v)elseifk==2thenid=mw.text.trim(v)elseiftype(k)=='number'thenparams[k-2]=mw.text.trim(v)elseifk=='lang'andv~='_'thenlang=mw.text.trim(v)endendreturnformatMessage(dataset,id,params,lang)end-- Identical to p.msg() above, but used from other lua modules-- Parameters:  name of dataset, message key, optional arguments-- Example with 2 params:  format('I18n/Module:TNT', 'error_bad_msgkey', 'my-key', 'my-dataset')functionp.format(dataset,key,...)localcheckType=require('libraryUtil').checkTypecheckType('format',1,dataset,'string')checkType('format',2,key,'string')returnformatMessage(dataset,key,{...})end-- Identical to p.msg() above, but used from other lua modules with the language param-- Parameters:  language code, name of dataset, message key, optional arguments-- Example with 2 params:  formatInLanguage('es', I18n/Module:TNT', 'error_bad_msgkey', 'my-key', 'my-dataset')functionp.formatInLanguage(lang,dataset,key,...)localcheckType=require('libraryUtil').checkTypecheckType('formatInLanguage',1,lang,'string')checkType('formatInLanguage',2,dataset,'string')checkType('formatInLanguage',3,key,'string')returnformatMessage(dataset,key,{...},lang)end-- Obsolete function that adds a 'c:' prefix to the first param.-- "Sandbox/Sample.tab" -> 'c:Data:Sandbox/Sample.tab'functionp.link(frame)returnlink(frame.args[1])endfunctionp.doc(frame)localdataset='Templatedata/'..sanitizeDataset(frame.args[1])returnframe:extensionTag('templatedata',p.getTemplateData(dataset))..formatMessage(i18nDataset,'edit_doc',{link(dataset)})endfunctionp.getTemplateData(dataset)-- TODO: add '_' parameter once lua starts reindexing properly for "all" languageslocaldata=loadData(dataset)localnames={}for_,fieldinipairs(data.schema.fields)dotable.insert(names,field.name)endlocalnumOnly=truelocalparams={}localparamOrder={}for_,rowinipairs(data.data)dolocalnewVal={}localname=nilforpos,columnNameinipairs(names)doifcolumnName=='name'thenname=row[pos]elsenewVal[columnName]=row[pos]endendifnamethenif((type(name)~="number")and((type(name)~="string")ornotstring.match(name,"^%d+$")))thennumOnly=falseendparams[name]=newValtable.insert(paramOrder,name)endend-- Work around json encoding treating {"1":{...}} as an [{...}]ifnumOnlythenparams['zzz123']=''endlocaljson=mw.text.jsonEncode({params=params,paramOrder=paramOrder,description=data.description,})ifnumOnlythenjson=string.gsub(json,'"zzz123":"",?',"")endreturnjsonend-- Local functionssanitizeDataset=function(dataset)ifnotdatasetthenreturnnilenddataset=mw.text.trim(dataset)ifdataset==''thenreturnnilelseifstring.sub(dataset,-4)~='.tab'thenreturndataset..'.tab'elsereturndatasetendendloadData=function(dataset,lang)dataset=sanitizeDataset(dataset)ifnotdatasetthenerror(formatMessage(i18nDataset,'error_no_dataset',{}))end-- Give helpful error to thirdparties who try and copy this module.ifnotmw.extornotmw.ext.dataornotmw.ext.data.getthenerror(string.format([['''Missing JsonConfig extension, or not properly configured;Cannot load https://commons.wikimedia.org/wiki/Data:%s.See https://www.mediawiki.org/wiki/Extension:JsonConfig#Supporting_Wikimedia_templates''']],dataset))endlocaldata=mw.ext.data.get(dataset,lang)ifdata==falsethenifdataset==i18nDatasetthen-- Prevent cyclical callserror('Missing Commons dataset '..i18nDataset)elseerror(formatMessage(i18nDataset,'error_bad_dataset',{link(dataset)}))endendreturndataend-- Given a dataset name, convert it to a title with the 'commons:data:' prefixlink=function(dataset)return'c:Data:'..mw.text.trim(datasetor'')endformatMessage=function(dataset,key,params,lang)for_,rowinpairs(loadData(dataset,lang).data)dolocalid,msg=unpack(row)ifid==keythenlocalresult=mw.message.newRawMessage(msg,unpack(paramsor{}))returnresult:plain()endendifdataset==i18nDatasetthen-- Prevent cyclical callserror('Invalid message key "'..key..'"')elseerror(formatMessage(i18nDataset,'error_bad_msgkey',{key,link(dataset)}))endendreturnp
Pigghiatu di "https://scn.wikipedia.org/w/index.php?title=Mòdulu:TNT&oldid=740372"

[8]ページ先頭

©2009-2025 Movatter.jp