VOOZH about

URL: https://en.wikipedia.org/wiki/Module:Wd/i18n

⇱ Module:Wd/i18n - Wikipedia


Jump to content
From Wikipedia, the free encyclopedia
👁 Image
Module documentation
[view] [edit] [history] [purge]
👁 Warning
This Lua module is used on approximately 1,910,000 pages, or roughly 3% of all pages.
To avoid major disruption and server load, any changes should be tested in the module's /sandbox or /testcases subpages, or in your own module sandbox. The tested changes can be added to this page in a single edit. Consider discussing changes on the talk page before implementing them.

This submodule is used by Module:Wd for internationalization (i18n) purposes and has been separated to allow for locale-independent updating of the module's logic.

-- The values and functions in this submodule should be localized per wiki.
localp={}
functionp.init(aliasesP)
p={
["version"]="8",-- increment this each time the below parameters are changed to avoid reference conflict errors
["errors"]={
["unknown-data-type"]="Unknown or unsupported datatype '%s'.",
["missing-required-parameter"]="No required parameters defined, needing at least one",
["extra-required-parameter"]="Parameter '%s' must be defined as optional",
["no-function-specified"]="You must specify a function to call",-- equal to the standard module error message
["main-called-twice"]='The function "main" cannot be called twice',
["no-such-function"]='The function "%s" does not exist',-- equal to the standard module error message
["no-such-reference-template"]='Error: template "%s", which is set in %s as the output template for the citation-output type "%s", does not exist',
-- Parts of the error message signalling a malformed reference.
["malformed-reference-header"]="<span style=\"color:#dd3333\">\nError: Unable to display the reference from Wikidata properly. Technical details:\n",
["malformed-reference-footer"]="See [[Module:wd/doc#References|the documentation]] for further details.\n</span>\n[[Category:Module:Wd reference errors]]",
["template-failure-reason"]="* Reason for the failure of {{tl|%s}}: %s\n",
["missing-mandatory-param"]='The output template call would miss the mandatory parameter <code>%s</code>.',
["unknown-property-in-ref"]='The Wikidata reference contains the property {{property|%s}}, which is not assigned to any parameter of this template.'
},
["info"]={
["edit-on-wikidata"]="Edit this on Wikidata"
},
["numeric"]={
["decimal-mark"]=".",
["delimiter"]=","
},
["datetime"]={
["prefixes"]={
["decade-period"]=""
},
["suffixes"]={
["decade-period"]="s",
["millennium"]=" millennium",
["century"]=" century",
["million-years"]=" million years",
["billion-years"]=" billion years",
["year"]=" year",
["years"]=" years"
},
["julian-calendar"]="Julian calendar",-- linked page title
["julian"]="Julian",
["BCE"]="BCE",
["CE"]="CE",
["common-era"]="Common Era"-- linked page title
},
["coord"]={
["latitude-north"]="N",
["latitude-south"]="S",
["longitude-east"]="E",
["longitude-west"]="W",
["degrees"]="°",
["minutes"]="'",
["seconds"]='"',
["separator"]=", "
},
["values"]={
["unknown"]="unknown",
["none"]="none"
},
["cite"]={
["output-types"]={"web","q"},-- In this order, the output types will be tried
["param-mapping"]={
["web"]={
-- <= left side: all allowed reference properties for *web page sources* per https://www.wikidata.org/wiki/Help:Sources
-- => right side: corresponding parameter names in (equivalent of) [[:en:Template:Cite web]] (if non-existent, keep empty i.e. "")
[aliasesP.statedIn]="website",
[aliasesP.referenceURL]="url",
[aliasesP.publicationDate]="date",
[aliasesP.lastUpdate]="date",
[aliasesP.retrieved]="access-date",
[aliasesP.title]="title",
[aliasesP.subjectNamedAs]="title",
[aliasesP.archiveURL]="archive-url",
[aliasesP.archiveDate]="archive-date",
[aliasesP.language]="language",
[aliasesP.author]="author",
[aliasesP.authorNameString]="author",
[aliasesP.publisher]="publisher",
[aliasesP.quote]="quote",
[aliasesP.pages]="pages",-- extra option
[aliasesP.publishedIn]="website",
[aliasesP.sectionVerseOrParagraph]="at"
},
["q"]={
-- <= left side: all allowed reference properties for *sources other than web pages* per https://www.wikidata.org/wiki/Help:Sources
-- => right side: corresponding parameter names in (equivalent of) [[:en:Template:Cite Q]] (if non-existent, keep empty i.e. "")
[aliasesP.statedIn]="1",
[aliasesP.pages]="pages",
[aliasesP.column]="at",
[aliasesP.chapter]="chapter",
[aliasesP.sectionVerseOrParagraph]="section",
["external-id"]="id",-- used for any type of database property ID
[aliasesP.title]="title",
[aliasesP.publicationDate]="date",
[aliasesP.lastUpdate]="date",
[aliasesP.retrieved]="access-date"
}
},
["config"]={
-- supported fields:
-- - template: name of the template used for output
-- - numbered-params: citation params accepting an arbitrary number of values by numbering the params (e.g. author1, author2)
-- - raw-value-params: params taking a raw value (which means the property is rendered with getValue with raw=true)
-- - mandatory-params: params that are required be in the template call (after potentially appending numbers to params listed in numbered-params)
-- - prioritization: table associating a list of properties, in the order in which they are preferred, to template parameters;
-- properties not mentioned here have the lowest priority;
-- prioritization of properties handled through additionalProcessedProperties is unsupported;
-- no key of this table can be from numbered-params 
-- Leaving out the "template" field causes the output type to be ignored.
["web"]={
["template"]="Cite web",
["numbered-params"]={"author"},
["mandatory-params"]={"url"},
["prioritization"]={
["date"]={aliasesP.lastUpdate,aliasesP.publicationDate},
["title"]={aliasesP.title,aliasesP.subjectNamedAs}
}
},
["q"]={
["template"]="Cite Q",
["raw-value-params"]={"1"},-- the first, unnamed parameter of CiteQ takes a QID, not the name of the item cited
["mandatory-params"]={"1"},
["prioritization"]={
["date"]={aliasesP.lastUpdate,aliasesP.publicationDate}
}
}
}
}
}
p.getOrdinalSuffix=function(num)
iftostring(num):sub(-2,-2)=='1'then
return"th"-- 10th, 11th, 12th, 13th, ... 19th
end
num=tostring(num):sub(-1)
ifnum=='1'then
return"st"
elseifnum=='2'then
return"nd"
elseifnum=='3'then
return"rd"
else
return"th"
end
end
p.addDelimiters=function(n)
localleft,num,right=string.match(n,"^([^%d]*%d)(%d*)(.-)$")
ifleftandnumandrightthen
returnleft..(num:reverse():gsub("(%d%d%d)","%1"..p['numeric']['delimiter']):reverse())..right
else
returnn
end
end
returnp
end
returnp