Anonymous
    ×
    Create a new article
    Write your page title here:
    We currently have 187 articles on Edge of Twilight Wiki. Type your article name above or click on one of the titles below and start writing!



    Edge of Twilight Wiki

    Documentation for this module may be created at Module:Wd/i18n/doc

    -- The values and functions in this submodule should be localized per wiki.
    
    local p = {}
    
    function p.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)
    		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