| 👁 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
Hidden category:
