This Lua module is used on
approximately 1,690,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.
local p = {}
function p.init(aliasesP)
p = {
"errors" = {
"unknown-data-type" = "Unknown or unsupported datatype '$1'.",
"missing-required-parameter" = "No required parameters defined, needing at least one",
"extra-required-parameter" = "Parameter '$1' 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 "$1" does not exist', -- equal to the standard module error message
"malformed-reference" = "Error: Unable to display the reference properly. See [[Module:wd/doc#References|the documentation]] for details.[[Category:Module:Wd reference errors]]"
},
"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" = {
"version" = "5", -- increment this each time the below parameters are changed to avoid conflict errors
"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.retrieved = "access-date",
aliasesP.title = "title",
aliasesP.archiveURL = "archive-url",
aliasesP.archiveDate = "archive-date",
aliasesP.language = "language",
aliasesP.author = "author", -- existence of author1, author2, author3, etc. is assumed
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.retrieved = "access-date"
}
}
}
p.getOrdinalSuffix = function(num)
if tostring(num):sub(-2,-2) == '1' then
return "th" -- 10th, 11th, 12th, 13th, ... 19th
end
num = tostring(num):sub(-1)
if num == '1' then
return "st"
elseif num == '2' then
return "nd"
elseif num == '3' then
return "rd"
else
return "th"
end
end
p.addDelimiters = function(n)
local left, num, right = string.match(n, "^([^%d]*%d)(%d*)(.-)$")
if left and num and right then
return left .. (num:reverse():gsub("(%d%d%d)", "%1" .. p'numeric']['delimiter']):reverse()) .. right
else
return n
end
end
return p
end
return p