Modiwl:Citation/CS1/Suggestions

Documentation for this module may be created at Modiwl:Citation/CS1/Suggestions/doc

--Please insert new suggestions in alphabetical order
--The form is ['incorrect'] = 'correct',

suggestions = {
--	['acccessdate'] = 'access-date',
--	['accesdate'] = 'access-date',
--	['access date'] = 'access-date',
--	['accessate'] = 'access-date',
--	['accessdare'] = 'access-date',
--	['accessdatte'] = 'access-date',
--	['accessddate'] = 'access-date',
--	['accessdte'] = 'access-date',
--	['accessed'] = 'access-date',
--	['accessedate'] = 'access-date',
--	['accesssdate'] = 'access-date',
--	['accssdate'] = 'access-date',
--	['acessdate'] = 'access-date',
	['accessmonth'] = 'access-date', -- (no longer supported by us, but still by citation templates mirrored in foreign WPs; can be emulated using 'access-date')
	['accessyear'] = 'access-date', -- (no longer supported by us, but still by citation templates mirrored in foreign WPs; can be emulated using 'access-date')
	['address'] = 'location',
	['année'] = 'year', -- French
	['año'] = 'year',
	['año-original'] = 'orig-year',
	['añoacceso'] = 'access-date', -- Spanish, Italian
	['apellido'] = 'last', -- Spanish, Italian
	['archiv-datum'] = 'archive-date', -- German
	['archive date'] = 'archive-date',
	['archiv-url'] = 'archive-url', -- German
	['archive url'] = 'archive-url', -- Spanish, Italian
	['artist'] = 'others',
	['auflage'] = 'edition', -- German
	['auteur'] = 'author', -- French
	['auther'] = 'author',
--	['authorformat'] = 'name-list-format', -- remove after 2016-01-01
--	['author-format'] = 'name-list-format', -- remove after 2016-01-01
	['author link'] = 'author-link', -- Polish
	['author link2'] = 'author2-link', -- Polish
--	['autor'] = 'author', -- Spanish, Italian, Polish
	['autor'] = 'authors', -- German (singular and plural)
--	['autor2'] = 'author2', -- Spanish, Italian, Polish
--	['autor3'] = 'author3', -- Polish
	['autthor'] = 'author',
	['band'] = 'volume', -- German
--	['began'] = 'date', -- remove after 2016-01-01
	['chapter_title'] = 'chapter',
	['cita'] = 'quote', -- Spanish, Italian
	['coautores'] = 'coauthors', -- Spanish, Italian
	['consulté le'] = 'access-date', -- French
	['czasopismo'] = 'journal', -- Polish
	['data'] = 'date', -- Polish
	['data dostępu'] = 'access-date', -- Polish
	['datum'] = 'date', -- German
	['deadlink'] = 'dead-url',
	['distributor'] = 'publisher',
	['dnb'] = 'id', -- German (as 'id={{DNB-IDN|...}}') (not yet supported by us directly)
	['éditeur'] = 'editor', -- French
	['editon'] = 'edition',
	['editoin'] = 'edition',
--	['editorformat'] = 'name-list-format', -- remove after 2016-01-01
--	['editor-format'] = 'name-list-format', -- remove after 2016-01-01
--	['editorgiven'] = 'editor-given', -- remove after 2016-01-01
	['editorial'] = 'publisher',
--	['editorsurname'] = 'editor-surname', -- remove after 2016-01-01
	['en ligne le'] = 'archive-date', -- French
	['encyclopædia'] = 'encyclopedia',
--	['ended'] = 'date', -- remove after 2016-01-01
	['enlaceautor'] = 'author-link', -- Spanish, Italian
	['fecha'] = 'date', -- Spanish, Italian
	['fechaacceso'] = 'access-date', -- Spanish, Italian
	['fechaarchivo'] = 'archive-date', -- Spanish, Italian
	['filetype'] = 'format',
	['first 1'] = 'first1',
	['foramt'] = 'format',
	['formato'] = 'format', -- Spanish, Italian, Polish
	['frist'] = 'first',
	['herausgeber'] = 'editors', -- German (singular and plural)
	['idioma'] = 'language', -- Spanish, Italian
	['imię'] = 'first', -- Polish
	['isbnistformalfalsch'] = 'ignore-isbn-error', -- German
	['isnb'] = 'isbn',
	['jahr'] = 'year', -- German
	['kapitel'] = 'chapter', -- German
--	['kommentar'] = 'comment', -- German (not yet supported by us)
	['lang'] = 'language',
	['langauge'] = 'language',
	['langue'] = 'language', -- French
	['last 1'] = 'last1',
	['lieu'] = 'location', -- French
	['lire en ligne'] = 'url', -- French
	['lizenznummer'] = 'id', -- German (as 'id=License ...')
	['loaction'] = 'location',
	['locatoin'] = 'location',
	['lugar'] = 'location', -- Spanish
	['miejsce'] = 'location', -- Polish
	['miesiąc'] = 'date', -- Polish
	['mois'] = 'date', -- French
	['monat'] = 'date', -- German
--	['name'] = 'author', -- 'name' is often erroneously used for 'title' and 'work' as well, so no suggestion is better than a wrong suggestion
	['nazwisko'] = 'last', -- Polish
	['nespaper'] = 'newspaper',
	['newpaper'] = 'newspaper',
	['news'] = 'newspaper',
	['nom'] = 'last', -- French
	['nom1'] = 'last1', -- French
	['nombre'] = 'first', -- Spanish, Italian
	['nummer'] = 'number', -- German
	['obra'] = 'work', -- Spanish, Italian
	['odpowiedzialność'] = 'agency', -- Polish
	['offline'] = 'dead-url', -- German
	['online'] = 'url', -- German (not a direct replacement, but can be emulated)
	['opublikowany'] = 'agency', -- Polish
	['origdate'] = 'orig-year',
	['originaljahr'] = 'orig-year', -- German
	['originalort'] = 'location', -- German (if 'ort' is specified at the same time, the latter should be put in 'publication-place')
	['originalsprache'] = 'language', -- German
	['originaltitel'] = 'title', -- German (if 'originaltitel' is specified, any possible contents of 'title' should be put in 'trans-title')
	['ort'] = 'location', -- German
	['other'] = 'others',
	['oznaczenie'] = 'agency', -- Polish
	['pagees'] = 'pages',
	['página'] = 'page', -- Spanish, Italian
	['páginas'] = 'pages', -- Spanish, Italian
	['passage'] = 'pages', -- French
	['périodique'] = 'publisher', -- French
	['plublisher'] = 'publisher',
	['pmcid'] = 'pmc',
	['praca'] = 'work', -- Polish
	['prénom'] = 'first', -- French
	['prénom1'] = 'first1', -- French
	['ps'] = 'postscript',
	['pub'] = 'publisher',
--	['pubisher'] = 'publisher',
--	['publiser'] = 'publisher',
--	['publishers'] = 'publisher',
--	['publsher'] = 'publisher',
--	['publsiher'] = 'publisher',
	['pulbication-place'] = 'publication-place',
--	['pulbisher'] = 'publisher',
--	['pulisher'] = 'publisher',
	['reihe'] = 'series', -- German
	['retrieved'] = 'access-date',
	['rok'] = 'date', -- Polish
	['sammelwerk'] = 'work', -- German
	['seiten'] = 'pages', -- German
--	['separator'] = 'mode', -- remove after 2016-01-01
	['seria'] = 'series', -- Polish
	['série'] = 'work', -- French *RECHECK*
	['service'] = 'agency',
	['sitioweb'] = 'website', --Spanish
	['stron'] = 'page', -- Polish
	['strony'] = 'pages', -- Polish
	['spalten'] = 'at', -- German (not a direct replacement, but can be emulated)
	['sprache'] = 'language', -- German
	['suscripción'] = 'subscription', -- Spanish, Italian, Polish
	['tag'] = 'date', -- German
	['tile'] = 'title',
	['tite'] = 'title',
	['titel'] = 'title', -- German
	['titel-p'] = 'title', -- German ('postscript=none' should be added as well)
	['titelerg'] = 'contribution', -- German (not a direct replacement, but can be emulated)
	['titolo'] = 'title', -- Spanish, Italian
	['titre'] = 'title', -- French
	['títle'] = 'title',
	['título'] = 'title', -- Spanish, Italian
	['transchapter'] = 'trans-chapter',
	['translator'] = 'others',
	['transtitle'] = 'trans-title',
	['typ'] = 'author-mask', -- German (not a direct replacement, but the only valid argument 'typ=wl' can be emulated using 'author-mask')
	['tytuł'] = 'title', -- Polish
	['ubicación'] = 'location', -- Spanish, Italian
	['urlarchivo'] = 'archive-url', -- Spanish, Italian
	['urn'] = 'id', -- German (as 'id={{URN|...}}') (not yet supported by us directly)
	['übersetzer'] = 'translator', -- German (singular and plural)
	['verlag'] = 'publisher', -- German
	['vol'] = 'volume', 
	['volumen'] = 'volume', -- Spanish
	['werk'] = 'work', -- German
	['werkerg'] = 'contribution', -- German (not a direct replacement, but can be emulated)
	['wolumin'] = 'volume', -- Polish
	['wydanie'] = 'number', -- Polish
	['wydawca'] = 'publisher', -- French
	['zaprezentowany'] = 'publisher', -- French
	['zdb'] = 'id', -- German (as 'id={{ZDB|...}}') (not yet supported by us directly)
	['zitat'] = 'quote', -- German
	['zugriff'] = 'access-date', -- German
}


--[[--------------------------< P A T T E R N S >--------------------------------------------------------------

Here we use Lua patterns to make suggestions.  The form is ['pattern'] = 'correct',

Lua patterns are not regex though they are similar.  The escape character is '%', not '\'.  For more information about
lua patterns, see: Extension:Scribunto/Lua_reference_manual#Patterns

Patterns should probably always include the '^' and '$' anchor assertions to prevent a partial match from incorrectly
suggesting the wrong parameter name.  For instance, the pattern 'a[utho]+r' matches 'author' in the no-longer-supported
parameter |author-separator= so the code suggests '|author='; the same pattern also matches the no-longer-supported
parameter |separator= (returning 'ator') so again, the code suggests '|author='.

One capture is supported, typically the enumerator from an enumerated parameter (the '6' in |author6=, etc.)  The value from the
capture replaces $1 in the 'correct' value.

]]

local patterns = {
	['^ac+es+ ?d?a?t?e?$'] = 'access-date',
	['^a[utho]+r$'] = 'author',
	['^a[utho]+r(%d+)$'] = 'author$1', -- enumerated
	['^pu[blish]+ers?$'] = 'publisher',
	}

return {suggestions = suggestions, patterns=patterns};