Module:Citation/CS1/Suggestions: Difference between revisions

en>Brainulator9
(Replacing dead-url with url-status)
 
m (1 revision imported)
 
(2 intermediate revisions by 2 users not shown)
Line 1:
-- Please insert new suggestions in alphabetical order
-- The form is ['incorrect'] = 'correct',
 
suggestions = {
['ASIN-TLD'] = 'asin-tld', -- old parameter name
['accessmonth'] = 'access-date', -- no longer supported by us, but still by citation templates mirrored in foreign WPs; can be emulated using 'access-date'
['abruf'] = 'access-date', -- German
['abruf-verborgen'] = 'access-date', -- German
['accessmonth'] = 'access-date',
['accesso'] = 'access-date', -- Italian
['accessyear'] = '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'
['acessodata'] = 'access-date', -- Brazilian Portuguese
['ad'] = 'first', -- Turkish
['address'] = 'location',
['annéeanno'] = 'yeardate', -- FrenchItalian
['año'] = 'year',
['año-original'] = 'orig-year',
['añoacceso'] = 'access-date', -- Spanish
['annoaccesso'] = 'access-date', -- Italian
['annodiaccesso'] = 'access-date', -- Italian
['annooriginale'] = 'orig-date', -- Italian
['année'] = 'date', -- French
['apellido'] = 'last', -- Spanish
['apellidos'] = 'last', -- Spanish
['archiv-datum'] = 'archive-date', -- German
['archiv-url'] = 'archive-url', -- German
['archive date'] = 'archive-date',
['archiv-url'] = 'archive-url', -- German
['archive url'] = 'archive-url', -- Spanish
['archive-link'] = 'archive-url',
['artikelnr'] = 'id', -- German (as 'id=Article No. ...')
['artist'] = 'others',
['arşiv-tarihi'] = 'archive-date', -- Turkish
['arşiv-url'] = 'archive-url', -- Turkish
['arşivtarihi'] = 'archive-date', -- Turkish
['arşivurl'] = 'archive-url', -- Turkish
['auflage'] = 'edition', -- German
['auteur'] = 'author', -- French
['auther'] = 'author',
['author link'] = 'author-link', -- Polish
['author link2authorfirst'] = 'author2author-linkfirst', -- Polishold parameter name
['autorauthorgiven'] = 'authorsauthor-given', -- German (singularold andparameter plural)name
['authorlast'] = 'author-last', -- old parameter name
['authormask'] = 'author-mask', -- old parameter name
['authorsurname'] = 'author-surname', -- old parameter name
['autor'] = 'author', -- Spanish, German (singular and plural)
['autore'] = 'author', -- Italian
['autthor'] = 'author',
['ay'] = 'month', -- Turkish
['año'] = 'date', -- Spanish
['año-original'] = 'orig-date', -- Spanish
['añoacceso'] = 'access-date', -- Spanish
['añooriginal'] = 'orig-date', -- Spanish
['band'] = 'volume', -- German
['bandreihe'] = 'volume', -- German
['baskı'] = 'edition', -- Turkish
['başlık'] = 'title', -- Turkish
['began'] = 'date', -- old parameter name (cite serial only); or orig-date=
['booktitle'] = 'book-title', -- old parameter name
['ch'] = 'language', -- German (as 'language=de-CH')
['chapter_title'] = 'chapter',
['chapterurl'] = 'chapter-url', -- old parameter name
['cid'] = 'ref', -- Italian
['cilt'] = 'volume', -- Turkish
['cita'] = 'quote', -- Spanish
['citazione'] = 'quote', -- Italian
['città'] = 'location', -- Italian
['city'] = 'location', -- old parameter name (cite serial only)
['coauthor'] = 'author',
['coauthors'] = 'author',
Line 36 ⟶ 67:
['coautori'] = 'author', -- Italian
['cognome'] = 'last', -- Italian
['conferenceurl'] = 'conference-url', -- old parameter name
['consulté le'] = 'access-date', -- French
['contributionurl'] = 'contribution-url', -- old parameter name
['curatore'] = 'publisher', -- Italian
['czasopismo'] = 'journal', -- Polish
['data dostępu'] = 'access-date', -- Polish
['data'] = 'date', -- Polish, Italian
['dataaccesso'] = 'access-date', -- Italian
['dataarchivio'] = 'archive-date', -- Italian
['data dostępu'] = 'access-date', -- Polish
['datum'] = 'date', -- German
['dead-url'] = 'url-status', -- old parameter name
['deadlink'] = 'url-status',
['deadurl'] = 'url-status', -- old parameter name
['dergi'] = 'work', -- Turkish
['dil'] = 'language', -- Turkish
['displayauthors'] = 'display-authors', -- old parameter name
['displayeditors'] = 'display-editors', -- old parameter name
['distributor'] = 'publisher',
['dnb'] = 'id', -- German (as 'id={{DNB-IDN|...}}') (not yet supported by us directly)
['éditeurdoi-broken'] = 'editordoi-broken-date', -- Frenchold parameter alias
['doi-inactive'] = 'doi-broken-date', -- invalid name found in mainspace
['editon'] = 'edition',
['doi-inactive-date'] = 'doi-broken-date', -- old parameter alias
['editoin'] = 'edition',
['editoradoi_brokendate'] = 'publisherdoi-broken-date', -- Portugueseold parameter alias
['doi_inactivedate'] = 'doi-inactive-date', -- old parameter alias
['editorial'] = 'publisher',
['doibroken'] = 'doi-broken-date', -- invalid name found in mainspace
['doiinactive'] = 'doi-broken-date', -- invalid name found in mainspace
['e-print'] = 'eprint', -- misspelling
-- ['ed'] = 'edition', -- avoid suggestion as in English this could be short for editor or edition
-- ['editora'] = 'publisher', -- can be either editor or publisher
-- ['editore'] = 'agency', -- can be either publisher or agency
-- ['editori'] = 'editor', -- can be either editor or publisher
-- ['editorial'] = 'publisher', -- can be either publisher or work
['editoin'] = 'edition', -- misspelling
['editon'] = 'edition', -- misspelling
['editorfirst'] = 'editor-first', -- old parameter name
['editorgiven'] = 'editor-given', -- old parameter name
['editorlast'] = 'editor-last', -- old parameter name
['editorlink'] = 'editor-link', -- old parameter name
['editormask'] = 'editor-mask', -- old parameter name
['editors'] = 'editor', -- old parameter name (can be emulated using multiple singular |editor= params)
['editorsurname'] = 'editor-surname', -- old parameter name
['edizione'] = 'edition', -- Italian
['embargo'] = 'pmc-embargo-date', -- old parameter name
['ended'] = 'date', -- old parameter name (cite serial only)
['en ligne le'] = 'archive-date', -- French
['encyclopædia'] = 'encyclopedia',
['enlaceautor'] = 'author-link', -- Spanish
['enlaceroto'] = 'url-status', -- Spanish
['episodelink'] = 'episode-link', -- old parameter name
['erişimtarihi'] = 'access-date', -- Turkish
['eser'] = 'work', -- Turkish
['family'] = 'surname', -- misguess
['fecha'] = 'date', -- Spanish
['fechaacceso'] = 'access-date', -- Spanish
['fechaarchivo'] = 'archive-date', -- Spanish
['filetype'] = 'format',
['first 1foramt'] = 'first1format', -- misspelling
['fore-name'] = 'given', -- misguess/misspelling
['foramt'] = 'format',
['forename'] = 'given', -- misguess
['formato'] = 'format', -- Spanish, Italian, Polish
['frist'] = 'first', -- misspelling
['herausgeberfundstelle'] = 'editorsat', -- German (singular and plural)
['idiomagazete'] = 'languagework', -- Spanish, ItalianTurkish
['giornale'] = 'journal', -- Italian
['herausgeber'] = 'editor', -- German (singular and plural)
['hrsg'] = 'publisher', -- German
['hrsgreihe'] = 'editor', -- German
['idioma'] = 'language', -- Spanish
['ignore-isbn-error'] = 'isbn', -- old parameter (can be fully emulated using ((syntax)))
['ignoreisbnerror'] = 'isbn', -- old parameter alias (suggest |isbn as |ignore-isbn-error is deprecated), not a direct replacement, but can be fully emulated using ((syntax))
['imię'] = 'first', -- Polish
['isbnistformalfalschin-set'] = 'ignore-isbn-errorinset', -- Germanmisspelling
['interviewerlink'] = 'interviewer-link', -- old parameter alias
['isnb'] = 'isbn',
['jahrinterviewermask'] = 'yearinterviewer-mask', -- Germanold parameter alias
['isbndefekt'] = 'isbn', -- German (suggest |isbn as |ignore-isbn-error is deprecated), not a direct replacement, but can be fully emulated using ((syntax))
['isbnformalfalsch'] = 'isbn', -- German (suggest |isbn as |ignore-isbn-error is deprecated), not a direct replacement, but can be fully emulated using ((syntax))
['isbnistformalfalsch'] = 'isbn', -- German (suggest |isbn as |ignore-isbn-error is deprecated), not a direct replacement, but can be fully emulated using ((syntax))
['isnb'] = 'isbn', -- misspelling
['issnformalfalsch'] = 'issn', -- German (can be fully emulated using ((syntax)))
['jahr'] = 'date', -- German
['jahrea'] = 'orig-date', -- German (not a direct replacement, but can be emulated)
['kapitel'] = 'chapter', -- German
-- ['kommentarlangauge'] = 'commentlanguage', -- German (not yet supported by us)misspelling
['lang'] = 'language',
['langauge'] = 'language',
['langue'] = 'language', -- French
['last-author-amp'] = 'name-list-style', -- old parameter name (as |name-list-style=amp)
['last 1'] = 'last1',
['lastauthoramp'] = 'name-list-style', -- old parameter name (as |name-list-style=amp)
['lieu'] = 'location', -- French
['lingua'] = 'language', -- Italian
['lire en ligne'] = 'url', -- French
['lizenznummer'] = 'id', -- German (as 'id=License No. ...')
 
['loaction'] = 'location',
['locatoinloaction'] = 'location', -- misspelling
['local'] = 'location', -- Brazilian Portuguese
['locatoin'] = 'location', -- misspelling
['lugar'] = 'location', -- Spanish
['mailinglist'] = 'mailing-list', -- old parameter name
['mapurl'] = 'map-url', -- old parameter name
['mes'] = 'date', -- Spanish (not a direct replacement)
['mese'] = 'date', -- Italian (not a direct replacement)
['miejsce'] = 'location', -- Polish
['miesiąc'] = 'date', -- Polish
Line 85 ⟶ 171:
['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
['name-list-format'] = 'name-list-style', -- old parameter name (as |name-list-style=amp)
['nazwisko'] = 'last', -- Polish
['nespaper'] = 'newspaper', -- misspelling
['net-work'] = 'network', -- misspelling
['newpaper'] = 'newspaper',
['newpaper'] = 'newspaper', -- misspelling
['news'] = 'newspaper',
['news-group'] = 'newsgroup', -- misspelling
['news-paper'] = 'newspaper', -- misspelling
['no-cat'] = 'no-tracking', -- old parameter
['nocat'] = 'no-tracking', -- old parameter
['nom'] = 'last', -- French
['nom1'] = 'last1', -- French
['nombre'] = 'first', -- Spanish
['nome'] = 'first', -- Italian
['nopp'] = 'no-pp', -- old parameter name
['notracking'] = 'no-tracking', -- old parameter
['numero'] = 'number', -- Italian, Spanish
['nummer'] = 'number', -- German
['nummerreihe'] = 'number', -- German
['obra'] = 'work', -- Spanish
['odpowiedzialność'] = 'agency', -- Polish
['offline'] = 'url-status', -- German (as 'url-status=dead')
['online'] = 'url', -- German (not a direct replacement, but can be emulated)
['opublikowany'] = 'agency', -- Polish
['opera'] = 'work', -- Italian
['origdateopublikowany'] = 'orig-yearagency', -- Polish
['originaljahrorigdate'] = 'orig-yeardate', -- Germanmisspelling
['originalortoriginaljahr'] = 'locationorig-date', -- German (if 'ort' is specified at the same time, the latter should be put in 'publication-place')
['originalort'] = 'publication-place', -- German
['originalsprache'] = 'language', -- German
['originaltitel'] = 'title', -- German (if 'originaltitel' is specified, any possible contents of 'title' should be put in 'trans-title')
['ort'] = 'locationpublication-place', -- German
['ortea'] = 'publication-place', -- German (not a direct replacement, but can be emulated)
['other'] = 'others',
['oznaczenie'] = 'agency', -- Polish
['pagees'] = 'pages', -- misspelling
['páginapagina'] = 'page', -- Spanish, Italian
['páginas'] = 'pages', -- Spanish, Italian
['passage'] = 'pages', -- French
['pagina'] = 'pages', -- Italian
['pagine'] = 'pages', -- Italian
['périodiquepagine'] = 'publisherpages', -- FrenchItalian
['plublisherpassage'] = 'publisherpages', -- French
['periodico'] = 'magazine', -- Spanish
['plublisher'] = 'publisher', -- misspelling
['pmcid'] = 'pmc',
['post-script'] = 'postscript', -- misspelling
['praca'] = 'work', -- Polish
['primero'] = 'first', -- Spanish
['prénom'] = 'first', -- French
['prénom1'] = 'first1', -- French
['ps'] = 'postscript',
['pub'] = 'publisher',
-- ['pubblicazione'] = 'magazine', -- could be any kind of work
['pulbication-place'] = 'publication-place',
-- ['publicación'] = 'journal', -- could be any kind of work
['publicationdate'] = 'publication-date', -- old parameter name
-- ['published'] = 'publisher', -- could be date, location, or name of publisher
['publicationplace'] = 'publication-place', -- old parameter name
['pulbication-place'] = 'publication-place', -- misspelling
['página'] = 'page', -- Spanish
['páginas'] = 'pages', -- Spanish
['périodique'] = 'publisher', -- French
['registration'] = 'url-access', -- old parameter name
['reihe'] = 'series', -- German
['retrieved'] = 'access-date',
['richiestasottoscrizione'] = 'url-access', -- Italian (as |url-access=subscription)
['rok'] = 'date', -- Polish
['sammelwerk'] = 'work', -- German
['sayfa'] = 'page', -- Turkish
['sayfalar'] = 'pages', -- Turkish
['sayı'] = 'issue', -- Turkish
['script-post'] = 'postscript', -- misspelling
['script-trans'] = 'transcript', -- misspelling
['season'] = 'date', -- old parameter name (cite serial only)
['sectionurl'] = 'section-url', -- old parameter name
['seiten'] = 'pages', -- German
['seria'] = 'series', -- Spanish, Polish
['sérieserie'] = 'workseries', -- French *RECHECK*Italian
['série'] = 'series', -- French
['serieslink'] = 'series-link', -- old parameter name
['seriesno'] = 'series-number', -- old parameter name
['service'] = 'agency',
['sitioweb'] = 'website', -- Spanish
['sito'] = 'website', -- Italian
['stronsoyadı'] = 'pagelast', -- PolishTurkish
['strony'] = 'pages', -- Polish
['spalten'] = 'at', -- German (not a direct replacement, but can be emulated)
['sprache'] = 'language', -- German
['suscripciónstron'] = 'subscriptionpage', -- Spanish, Polish
['strony'] = 'pages', -- Polish
['subjectlink'] = 'subject-link', -- old parameter name
['subscription'] = 'url-access', -- old parameter name (emulated as |url-access=subscription)
['sur-name'] = 'surname', -- misspelling
['suscripción'] = 'url-access', -- Spanish, Polish (as |url-access=subscription)
['tag'] = 'date', -- German
['tiletarih'] = 'titledate', -- Turkish
['template doc demo'] = 'no-tracking', -- old parameter alias
['tite'] = 'title',
['tile'] = 'title', -- misspelling
['timecaption'] = 'time-caption', -- old parameter name
['titlelink'] = 'title-link', -- old parameter name
['tipo'] = 'type', -- Italian
['tite'] = 'title', -- misspelling
['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)
['titolotitled'] = 'title', -- Spanish,Brazilian ItalianPortuguese
['titolo'] = 'title', -- Italian
['titre'] = 'title', -- French
['trans-script'] = 'transcript', -- misspelling
['títle'] = 'title',
['títulotrans_chapter'] = 'titletrans-chapter', -- Spanishold parameter alias
['trans_title'] = 'trans-title', -- old parameter alias
['transchapter'] = 'trans-chapter',
['transcripturl'] = 'transcript-url', -- old parameter name
['translator'] = 'others',
['transscript'] = 'transcript', -- misspelling
['transscript-format'] = 'transcript-format', -- misspelling
['transscript-url'] = 'transcript-url', -- misspelling
['transscripturl'] = 'transcript-url', -- misspelling
['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
['títle'] = 'title',
['título'] = 'title', -- Spanish
['ubicación'] = 'location', -- Spanish
['urlarchivio'] = 'archive-url', -- Italian
['urlarchivo'] = 'archive-url', -- Spanish
['urlarchiviourlmorto'] = 'archive-url-status', -- Italian
['urn'] = 'id', -- German (as 'id={{URN|...}}') (not yet supported by us directly)
['übersetzerv-authors'] = 'translatorvauthors', -- German (singular and plural)misspelling
['v-editors'] = 'veditors', -- misspelling
['verlag'] = 'publisher', -- German
['verlagea'] = 'publisher', -- German (not a direct replacement, but can be emulated)
['vol'] = 'volume',
['vol'] = 'volume',
['volumen'] = 'volume', -- Spanish
['werk'] = 'work', -- German
Line 167 ⟶ 305:
['wydanie'] = 'number', -- Polish
['wydawca'] = 'publisher', -- French
['yardımcıyazarlar'] = 'author', -- Turkish
['yayımcı'] = 'publisher', -- Turkish
['yayıncı'] = 'publisher', -- Turkish
['yazar'] = 'author', -- Turkish
['yazarbağı'] = 'author-link', -- Turkish
['yer'] = 'location', -- Turkish
['yıl'] = 'date', -- Turkish
['zaprezentowany'] = 'publisher', -- French
['zdb'] = 'id', -- German (as 'id={{ZDB|...}}') (not yet supported by us directly)
['zitat'] = 'quote', -- German
['zugriff'] = 'access-date', -- German
['éditeur'] = 'editor', -- French
['ölüurl'] = 'url-status', -- Turkish
['übersetzer'] = 'translator', -- German (singular and plural)
}
 
 
 
--[[--------------------------< P A T T E R N S >--------------------------------------------------------------
 
Here we use Lua patterns to make suggestions. The form is ['pattern'] = 'correct',
 
['pattern'] = 'correct',
 
Lua patterns are not regexREGEX though they are similar. The escape character is '%', not '\'. For more information about
luaFor 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
match from incorrectly suggesting the wrong parameter name. For instance, the pattern 'a[utho]+r' matches 'author' in the no-longer-supported
matches 'author' in the no-longer-supported parameter |author-separator= so the code suggests '|author='; the same pattern also matches the no-longer-supported
'|author='; the same pattern also matches the no-longer-supported parameter |separator= (returning 'ator')
parameter |separator= (returning 'ator') so again, the code suggests '|author='.
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
The value from the capture replaces $1 in the 'correct' value.
 
]]
 
local patterns = {
['^ac+es+ ?d?a?t?e?$'] = 'access-date', -- misspelling
['^aapellido[uthos]?(%d+r)$'] = 'authorlast$1', -- Spanish, enumerated
['^a[utho]+r(%d+)$'] = 'author$1', -- enumeratedmisspelling
['^pua[blishutho]+ers?r(%d+)$'] = 'publisherauthor$1', -- misspelling, enumerated
['^author link(%d+)$'] = 'author-link$1', -- Polish, enumerated
['^autor[e]?(%d+)$'] = 'author$1', -- Italian/Spanish/German, enumerated
['^authorfirst(%d+)$'] = 'author-first$1', -- old parameter name, enumerated
['^author(%d+)first$'] = 'author-first$1', -- old parameter name, enumerated
['^authorgiven(%d+)$'] = 'author-given$1', -- old parameter name, enumerated
['^author(%d+)given$'] = 'author-given$1', -- old parameter name, enumerated
['^authorlast(%d+)$'] = 'author-last$1', -- old parameter name, enumerated
['^author(%d+)last$'] = 'author-last$1', -- old parameter name, enumerated
['^authormask(%d+)$'] = 'author-mask$1', -- old parameter name, enumerated
['^author(%d+)mask$'] = 'author-mask$1', -- old parameter name, enumerated
['^authorsurname(%d+)$'] = 'author-surname$1', -- old parameter name, enumerated
['^author(%d+)surname$'] = 'author-surname$1', -- old parameter name, enumerated
['^cognome(%d+)$'] = 'last$1', -- Italian, enumerated
['^editorfirst(%d+)$'] = 'editor-first$1', -- old parameter name, enumerated
['^editor(%d+)first$'] = 'editor-first$1', -- old parameter name, enumerated
['^editorgiven(%d+)$'] = 'editor-given$1', -- old parameter name, enumerated
['^editor(%d+)given$'] = 'editor-given$1', -- old parameter name, enumerated
['^editorlast(%d+)$'] = 'editor-last$1', -- old parameter name, enumerated
['^editor(%d+)last$'] = 'editor-last$1', -- old parameter name, enumerated
['^editorlink(%d+)$'] = 'editor-link$1', -- old parameter name, enumerated
['^editor(%d+)link$'] = 'editor-link$1', -- old parameter name, enumerated
['^editormask(%d+)$'] = 'editor-mask$1', -- old parameter name, enumerated
['^editor(%d+)mask$'] = 'editor-mask$1', -- old parameter name, enumerated
['^editorsurname(%d+)$'] = 'editor-surname$1', -- old parameter name, enumerated
['^editor(%d+)surname$'] = 'editor-surname$1', -- old parameter name, enumerated
['^enlaceautore(%d+)$'] = 'author-link$1', -- Spanish, enumerated
['^first (%d+)$'] = 'first$1', -- enumerated
['^last (%d+)$'] = 'last$1', -- enumerated
['^nom[e]?(%d+)$'] = 'last$1', -- Italian/French, enumerated
['^nombre(%d+)$'] = 'first$1', -- Spanish, enumerated
['^primero(%d+)$'] = 'first$1', -- Spanish, enumerated
['^pu[blish]+ers?$'] = 'publisher', -- misspelling
['^subjectlink(%d+)$'] = 'subject-link$1', -- old parameter name, enumerated
['^subject(%d+)link$'] = 'subject-link$1', -- old parameter name, enumerated
['^wkautore(%d+)$'] = 'author-link$1', -- Italian, enumerated
}
 

Latest revision as of 19:41, 8 November 2022


This is a list of suggested alternatives to use when an unknown parameter is encountered by a citation template. When an unknown parameter is found within a citation template an error message is generated, and when possible the software makes a suggestion for what the user may have meant by consulting this list of common mistakes and typos.

Each entry takes the form: ['bad input parameter'] = 'suggested parameter to use'

The bad input parameter will have been transformed to lower case before checking this list, so all input forms on this list should be written in lowercase.


These files comprise the module support for cs1|2 citation templates:

cs1 | cs2 modules
live sandbox description
Gold padlock Module:Citation/CS1 Module:Citation/CS1/sandbox [edit] Rendering and support functions
Module:Citation/CS1/Configuration Module:Citation/CS1/Configuration/sandbox [edit] Translation tables; error and identifier handlers
Module:Citation/CS1/Whitelist Module:Citation/CS1/Whitelist/sandbox [edit] List of active, deprecated, and obsolete cs1|2 parameters
Module:Citation/CS1/Date validation Module:Citation/CS1/Date validation/sandbox [edit] Date format validation functions
Module:Citation/CS1/Identifiers Module:Citation/CS1/Identifiers/sandbox [edit] Functions that support the named identifiers (isbn, doi, pmid, etc)
Module:Citation/CS1/Utilities Module:Citation/CS1/Utilities/sandbox [edit] Common functions and tables
Module:Citation/CS1/COinS Module:Citation/CS1/COinS/sandbox [edit] Functions that render a cs1|2 template's metadata
Module:Citation/CS1/styles.css Module:Citation/CS1/sandbox/styles.css [edit] CSS styles applied to the cs1|2 templates
Silver padlock Module:Citation/CS1/Suggestions Module:Citation/CS1/Suggestions/sandbox [edit] List that maps common erroneous parameter names to valid parameter names

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

suggestions = {
	['ASIN-TLD'] = 'asin-tld',													-- old parameter name
	['abruf'] = 'access-date',													-- German
	['abruf-verborgen'] = 'access-date',										-- German
	['accessmonth'] = 'access-date',
	['accesso'] = 'access-date',												-- Italian
	['accessyear'] = 'access-date',
	['acessodata'] = 'access-date',												-- Brazilian Portuguese
	['ad'] = 'first',															-- Turkish
	['address'] = 'location',
	['anno'] = 'date',															-- Italian
	['annoaccesso'] = 'access-date',											-- Italian
	['annodiaccesso'] = 'access-date',											-- Italian
	['annooriginale'] = 'orig-date',											-- Italian
	['année'] = 'date',															-- French
	['apellido'] = 'last',														-- Spanish
	['apellidos'] = 'last',														-- Spanish
	['archiv-datum'] = 'archive-date',											-- German
	['archiv-url'] = 'archive-url',												-- German
	['archive date'] = 'archive-date',
	['archive url'] = 'archive-url',											-- Spanish
	['archive-link'] = 'archive-url',	
	['artikelnr'] = 'id',														-- German (as 'id=Article No. ...')
	['artist'] = 'others',
	['arşiv-tarihi'] = 'archive-date',											-- Turkish
	['arşiv-url'] = 'archive-url',												-- Turkish
	['arşivtarihi'] = 'archive-date',											-- Turkish
	['arşivurl'] = 'archive-url',												-- Turkish
	['auflage'] = 'edition',													-- German
	['auteur'] = 'author',														-- French
	['auther'] = 'author',
	['author link'] = 'author-link',											-- Polish
	['authorfirst'] = 'author-first',											-- old parameter name
	['authorgiven'] = 'author-given',											-- old parameter name
	['authorlast'] = 'author-last',												-- old parameter name
	['authormask'] = 'author-mask',												-- old parameter name
	['authorsurname'] = 'author-surname',										-- old parameter name
	['autor'] = 'author',														-- Spanish, German (singular and plural)
	['autore'] = 'author',														-- Italian
	['autthor'] = 'author',
	['ay'] = 'month',															-- Turkish
	['año'] = 'date',															-- Spanish
	['año-original'] = 'orig-date',												-- Spanish
	['añoacceso'] = 'access-date',												-- Spanish
	['añooriginal'] = 'orig-date',												-- Spanish
	['band'] = 'volume',														-- German
	['bandreihe'] = 'volume',													-- German
	['baskı'] = 'edition',														-- Turkish
	['başlık'] = 'title',														-- Turkish
	['began'] = 'date',															-- old parameter name (cite serial only); or orig-date=
	['booktitle'] = 'book-title',												-- old parameter name
	['ch'] = 'language',														-- German (as 'language=de-CH')
	['chapter_title'] = 'chapter',
	['chapterurl'] = 'chapter-url',												-- old parameter name
	['cid'] = 'ref',															-- Italian
	['cilt'] = 'volume',														-- Turkish
	['cita'] = 'quote',															-- Spanish
	['citazione'] = 'quote',													-- Italian
	['città'] = 'location',														-- Italian
	['city'] = 'location',														-- old parameter name (cite serial only)
	['coauthor'] = 'author',
	['coauthors'] = 'author',
	['coautores'] = 'author',													-- Spanish
	['coautori'] = 'author',													-- Italian
	['cognome'] = 'last',														-- Italian
	['conferenceurl'] = 'conference-url',										-- old parameter name
	['consulté le'] = 'access-date',											-- French
	['contributionurl'] = 'contribution-url',									-- old parameter name
	['curatore'] = 'publisher',													-- Italian
	['czasopismo'] = 'journal',													-- Polish
	['data dostępu'] = 'access-date',											-- Polish
	['data'] = 'date',															-- Polish, Italian
	['dataaccesso'] = 'access-date',											-- Italian
	['dataarchivio'] = 'archive-date',											-- Italian
	['datum'] = 'date',															-- German
	['dead-url'] = 'url-status',												-- old parameter name
	['deadlink'] = 'url-status',
	['deadurl'] = 'url-status',													-- old parameter name
	['dergi'] = 'work',															-- Turkish
	['dil'] = 'language',														-- Turkish
	['displayauthors'] = 'display-authors',										-- old parameter name
	['displayeditors'] = 'display-editors',										-- old parameter name
	['distributor'] = 'publisher',
	['dnb'] = 'id',																-- German (as 'id={{DNB-IDN|...}}')
	['doi-broken'] = 'doi-broken-date',											-- old parameter alias
	['doi-inactive'] = 'doi-broken-date',										-- invalid name found in mainspace
	['doi-inactive-date'] = 'doi-broken-date',									-- old parameter alias
	['doi_brokendate'] = 'doi-broken-date',										-- old parameter alias
	['doi_inactivedate'] = 'doi-inactive-date',									-- old parameter alias
	['doibroken'] = 'doi-broken-date',											-- invalid name found in mainspace
	['doiinactive'] = 'doi-broken-date',										-- invalid name found in mainspace
	['e-print'] = 'eprint',														-- misspelling
	-- ['ed'] = 'edition',														-- avoid suggestion as in English this could be short for editor or edition
	-- ['editora'] = 'publisher',												-- can be either editor or publisher
	-- ['editore'] = 'agency',													-- can be either publisher or agency
	-- ['editori'] = 'editor',													-- can be either editor or publisher
	-- ['editorial'] = 'publisher',												-- can be either publisher or work
	['editoin'] = 'edition',													-- misspelling
	['editon'] = 'edition',														-- misspelling
	['editorfirst'] = 'editor-first',											-- old parameter name
	['editorgiven'] = 'editor-given',											-- old parameter name
	['editorlast'] = 'editor-last',												-- old parameter name
	['editorlink'] = 'editor-link',												-- old parameter name
	['editormask'] = 'editor-mask',												-- old parameter name
	['editors'] = 'editor',														-- old parameter name (can be emulated using multiple singular |editor= params)
	['editorsurname'] = 'editor-surname',										-- old parameter name
	['edizione'] = 'edition',													-- Italian
	['embargo'] = 'pmc-embargo-date',											-- old parameter name
	['ended'] = 'date',															-- old parameter name (cite serial only)
	['en ligne le'] = 'archive-date',											-- French
	['encyclopædia'] = 'encyclopedia',
	['enlaceautor'] = 'author-link',											-- Spanish
	['enlaceroto'] = 'url-status',												-- Spanish
	['episodelink'] = 'episode-link',											-- old parameter name
	['erişimtarihi'] = 'access-date',											-- Turkish
	['eser'] = 'work',															-- Turkish
	['family'] = 'surname',														-- misguess
	['fecha'] = 'date',															-- Spanish
	['fechaacceso'] = 'access-date',											-- Spanish
	['fechaarchivo'] = 'archive-date',											-- Spanish
	['filetype'] = 'format',
	['foramt'] = 'format',														-- misspelling
	['fore-name'] = 'given',													-- misguess/misspelling
	['forename'] = 'given',														-- misguess
	['formato'] = 'format',														-- Spanish, Italian, Polish
	['frist'] = 'first',														-- misspelling
	['fundstelle'] = 'at',														-- German
	['gazete'] = 'work',														-- Turkish
	['giornale'] = 'journal',													-- Italian
	['herausgeber'] = 'editor',													-- German (singular and plural)
	['hrsg'] = 'publisher',														-- German
	['hrsgreihe'] = 'editor',													-- German
	['idioma'] = 'language',													-- Spanish
	['ignore-isbn-error'] = 'isbn',												-- old parameter (can be fully emulated using ((syntax)))
	['ignoreisbnerror'] = 'isbn',												-- old parameter alias (suggest |isbn as |ignore-isbn-error is deprecated), not a direct replacement, but can be fully emulated using ((syntax))
	['imię'] = 'first',															-- Polish
	['in-set'] = 'inset',														-- misspelling
	['interviewerlink'] = 'interviewer-link',									-- old parameter alias
	['interviewermask'] = 'interviewer-mask',									-- old parameter alias
	['isbndefekt'] = 'isbn',													-- German (suggest |isbn as |ignore-isbn-error is deprecated), not a direct replacement, but can be fully emulated using ((syntax))
	['isbnformalfalsch'] = 'isbn',												-- German (suggest |isbn as |ignore-isbn-error is deprecated), not a direct replacement, but can be fully emulated using ((syntax))
	['isbnistformalfalsch'] = 'isbn',											-- German (suggest |isbn as |ignore-isbn-error is deprecated), not a direct replacement, but can be fully emulated using ((syntax))
	['isnb'] = 'isbn',															-- misspelling
	['issnformalfalsch'] = 'issn',												-- German (can be fully emulated using ((syntax)))
	['jahr'] = 'date',															-- German
	['jahrea'] = 'orig-date',													-- German (not a direct replacement, but can be emulated)
	['kapitel'] = 'chapter',													-- German
	['langauge'] = 'language',													-- misspelling
	['langue'] = 'language',													-- French
	['last-author-amp'] = 'name-list-style',									-- old parameter name (as |name-list-style=amp)
	['lastauthoramp'] = 'name-list-style',										-- old parameter name (as |name-list-style=amp)
	['lieu'] = 'location',														-- French
	['lingua'] = 'language',													-- Italian
	['lire en ligne'] = 'url',													-- French
	['lizenznummer'] = 'id',													-- German (as 'id=License No. ...')

	['loaction'] = 'location',													-- misspelling
	['local'] = 'location',														-- Brazilian Portuguese
	['locatoin'] = 'location',													-- misspelling
	['lugar'] = 'location',														-- Spanish
	['mailinglist'] = 'mailing-list',											-- old parameter name
	['mapurl'] = 'map-url',														-- old parameter name
	['mes'] = 'date',															-- Spanish (not a direct replacement)
	['mese'] = 'date',															-- Italian (not a direct replacement)
	['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
	['name-list-format'] = 'name-list-style',									-- old parameter name (as |name-list-style=amp)
	['nazwisko'] = 'last',														-- Polish
	['nespaper'] = 'newspaper',													-- misspelling
	['net-work'] = 'network',													-- misspelling
	['newpaper'] = 'newspaper',													-- misspelling
	['news'] = 'newspaper',
	['news-group'] = 'newsgroup',												-- misspelling
	['news-paper'] = 'newspaper',												-- misspelling
	['no-cat'] = 'no-tracking',													-- old parameter
	['nocat'] = 'no-tracking',													-- old parameter
	['nom'] = 'last',															-- French
	['nombre'] = 'first',														-- Spanish
	['nome'] = 'first',															-- Italian
	['nopp'] = 'no-pp',															-- old parameter name
	['notracking'] = 'no-tracking',												-- old parameter
	['numero'] = 'number',														-- Italian, Spanish
	['nummer'] = 'number',														-- German
	['nummerreihe'] = 'number',													-- German
	['obra'] = 'work',															-- Spanish
	['odpowiedzialność'] = 'agency',											-- Polish
	['offline'] = 'url-status',													-- German (as 'url-status=dead')
	['online'] = 'url',															-- German (not a direct replacement, but can be emulated)
	['opera'] = 'work',															-- Italian
	['opublikowany'] = 'agency',												-- Polish
	['origdate'] = 'orig-date',													-- misspelling
	['originaljahr'] = 'orig-date',												-- German
	['originalort'] = 'publication-place',										-- German
	['originalsprache'] = 'language',											-- German
	['originaltitel'] = 'title',												-- German (if 'originaltitel' is specified, any possible contents of 'title' should be put in 'trans-title')
	['ort'] = 'publication-place',												-- German
	['ortea'] = 'publication-place',											-- German (not a direct replacement, but can be emulated)
	['other'] = 'others',
	['oznaczenie'] = 'agency',													-- Polish
	['pagees'] = 'pages',														-- misspelling
	['pagina'] = 'page',														-- Italian
	['pagina'] = 'pages',														-- Italian
	['pagine'] = 'pages',														-- Italian
	['pagine'] = 'pages',														-- Italian
	['passage'] = 'pages',														-- French
	['periodico'] = 'magazine',													-- Spanish
	['plublisher'] = 'publisher',												-- misspelling
	['pmcid'] = 'pmc',
	['post-script'] = 'postscript',												-- misspelling
	['praca'] = 'work',															-- Polish
	['primero'] = 'first',														-- Spanish
	['prénom'] = 'first',														-- French
	['prénom1'] = 'first1',														-- French
	['ps'] = 'postscript',
	['pub'] = 'publisher',
	-- ['pubblicazione'] = 'magazine',											-- could be any kind of work
	-- ['publicación'] = 'journal',												-- could be any kind of work
	['publicationdate'] = 'publication-date',									-- old parameter name
	-- ['published'] = 'publisher',												-- could be date, location, or name of publisher
	['publicationplace'] = 'publication-place',									-- old parameter name
	['pulbication-place'] = 'publication-place',								-- misspelling
	['página'] = 'page',														-- Spanish
	['páginas'] = 'pages',														-- Spanish
	['périodique'] = 'publisher',												-- French
	['registration'] = 'url-access',											-- old parameter name
	['reihe'] = 'series',														-- German
	['retrieved'] = 'access-date',
	['richiestasottoscrizione'] = 'url-access',									-- Italian (as |url-access=subscription)
	['rok'] = 'date',															-- Polish
	['sammelwerk'] = 'work',													-- German
	['sayfa'] = 'page',															-- Turkish
	['sayfalar'] = 'pages',														-- Turkish
	['sayı'] = 'issue',															-- Turkish
	['script-post'] = 'postscript',												-- misspelling
	['script-trans'] = 'transcript',											-- misspelling
	['season'] = 'date',														-- old parameter name (cite serial only)
	['sectionurl'] = 'section-url',												-- old parameter name
	['seiten'] = 'pages',														-- German
	['seria'] = 'series',														-- Spanish, Polish
	['serie'] = 'series',														-- Italian
	['série'] = 'series',														-- French
	['serieslink'] = 'series-link',												-- old parameter name
	['seriesno'] = 'series-number',												-- old parameter name
	['service'] = 'agency',
	['sitioweb'] = 'website',													-- Spanish
	['sito'] = 'website',														-- Italian
	['soyadı'] = 'last',														-- Turkish
	['spalten'] = 'at',															-- German (not a direct replacement, but can be emulated)
	['sprache'] = 'language',													-- German
	['stron'] = 'page',															-- Polish
	['strony'] = 'pages',														-- Polish
	['subjectlink'] = 'subject-link',											-- old parameter name
	['subscription'] = 'url-access',											-- old parameter name (emulated as |url-access=subscription)
	['sur-name'] = 'surname',													-- misspelling
	['suscripción'] = 'url-access',												-- Spanish, Polish (as |url-access=subscription)
	['tag'] = 'date',															-- German
	['tarih'] = 'date',															-- Turkish
	['template doc demo'] = 'no-tracking',										-- old parameter alias
	['tile'] = 'title',															-- misspelling
	['timecaption'] = 'time-caption',											-- old parameter name
	['titlelink'] = 'title-link',												-- old parameter name
	['tipo'] = 'type',															-- Italian
	['tite'] = 'title',															-- misspelling
	['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)
	['titled'] = 'title',														-- Brazilian Portuguese
	['titolo'] = 'title',														-- Italian
	['titre'] = 'title',														-- French
	['trans-script'] = 'transcript',											-- misspelling
	['trans_chapter'] = 'trans-chapter',										-- old parameter alias
	['trans_title'] = 'trans-title',											-- old parameter alias
	['transchapter'] = 'trans-chapter',
	['transcripturl'] = 'transcript-url',										-- old parameter name
	['transscript'] = 'transcript',												-- misspelling
	['transscript-format'] = 'transcript-format',								-- misspelling
	['transscript-url'] = 'transcript-url',										-- misspelling
	['transscripturl'] = 'transcript-url',										-- misspelling
	['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
	['títle'] = 'title',
	['título'] = 'title',														-- Spanish
	['ubicación'] = 'location',													-- Spanish
	['urlarchivio'] = 'archive-url',											-- Italian
	['urlarchivo'] = 'archive-url',												-- Spanish
	['urlmorto'] = 'url-status',												-- Italian
	['urn'] = 'id',																-- German (as 'id={{URN|...}}')
	['v-authors'] = 'vauthors',													-- misspelling
	['v-editors'] = 'veditors',													-- misspelling
	['verlag'] = 'publisher',													-- German
	['verlagea'] = 'publisher',													-- German (not a direct replacement, but can be emulated)
	['vol'] = 'volume',
	['volumen'] = 'volume',														-- Spanish
	['werk'] = 'work',															-- German
	['werkerg'] = 'contribution',												-- German (not a direct replacement, but can be emulated)
	['wkautore'] = 'author-link',												-- Italian
	['wolumin'] = 'volume',														-- Polish
	['wydanie'] = 'number',														-- Polish
	['wydawca'] = 'publisher',													-- French
	['yardımcıyazarlar'] = 'author',											-- Turkish
	['yayımcı'] = 'publisher',													-- Turkish
	['yayıncı'] = 'publisher',													-- Turkish
	['yazar'] = 'author',														-- Turkish
	['yazarbağı'] = 'author-link',												-- Turkish
	['yer'] = 'location',														-- Turkish
	['yıl'] = 'date',															-- Turkish
	['zaprezentowany'] = 'publisher',											-- French
	['zdb'] = 'id',																-- German (as 'id={{ZDB|...}}')
	['zitat'] = 'quote',														-- German
	['zugriff'] = 'access-date',												-- German
	['éditeur'] = 'editor',														-- French
	['ölüurl'] = 'url-status',													-- Turkish
	['übersetzer'] = 'translator',												-- German (singular and plural)
}



--[[--------------------------< 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',										-- misspelling
	['^apellido[s]?(%d+)$'] = 'last$1',											-- Spanish, enumerated
	['^a[utho]+r$'] = 'author',													-- misspelling
	['^a[utho]+r(%d+)$'] = 'author$1',											-- misspelling, enumerated
	['^author link(%d+)$'] = 'author-link$1',									-- Polish, enumerated
	['^autor[e]?(%d+)$'] = 'author$1',											-- Italian/Spanish/German, enumerated
	['^authorfirst(%d+)$'] = 'author-first$1',									-- old parameter name, enumerated
	['^author(%d+)first$'] = 'author-first$1',									-- old parameter name, enumerated
	['^authorgiven(%d+)$'] = 'author-given$1',									-- old parameter name, enumerated
	['^author(%d+)given$'] = 'author-given$1',									-- old parameter name, enumerated
	['^authorlast(%d+)$'] = 'author-last$1',									-- old parameter name, enumerated
	['^author(%d+)last$'] = 'author-last$1',									-- old parameter name, enumerated
	['^authormask(%d+)$'] = 'author-mask$1',									-- old parameter name, enumerated
	['^author(%d+)mask$'] = 'author-mask$1',									-- old parameter name, enumerated
	['^authorsurname(%d+)$'] = 'author-surname$1',								-- old parameter name, enumerated
	['^author(%d+)surname$'] = 'author-surname$1',								-- old parameter name, enumerated
	['^cognome(%d+)$'] = 'last$1',												-- Italian, enumerated
	['^editorfirst(%d+)$'] = 'editor-first$1',									-- old parameter name, enumerated
	['^editor(%d+)first$'] = 'editor-first$1',									-- old parameter name, enumerated
	['^editorgiven(%d+)$'] = 'editor-given$1',									-- old parameter name, enumerated
	['^editor(%d+)given$'] = 'editor-given$1',									-- old parameter name, enumerated
	['^editorlast(%d+)$'] = 'editor-last$1',									-- old parameter name, enumerated
	['^editor(%d+)last$'] = 'editor-last$1',									-- old parameter name, enumerated
	['^editorlink(%d+)$'] = 'editor-link$1',									-- old parameter name, enumerated
	['^editor(%d+)link$'] = 'editor-link$1',									-- old parameter name, enumerated
	['^editormask(%d+)$'] = 'editor-mask$1',									-- old parameter name, enumerated
	['^editor(%d+)mask$'] = 'editor-mask$1',									-- old parameter name, enumerated
	['^editorsurname(%d+)$'] = 'editor-surname$1',								-- old parameter name, enumerated
	['^editor(%d+)surname$'] = 'editor-surname$1',								-- old parameter name, enumerated
	['^enlaceautore(%d+)$'] = 'author-link$1',									-- Spanish, enumerated
	['^first (%d+)$'] = 'first$1',												-- enumerated
	['^last (%d+)$'] = 'last$1',												-- enumerated
	['^nom[e]?(%d+)$'] = 'last$1',												-- Italian/French, enumerated
	['^nombre(%d+)$'] = 'first$1',												-- Spanish, enumerated
	['^primero(%d+)$'] = 'first$1',												-- Spanish, enumerated
	['^pu[blish]+ers?$'] = 'publisher',											-- misspelling
	['^subjectlink(%d+)$'] = 'subject-link$1',									-- old parameter name, enumerated
	['^subject(%d+)link$'] = 'subject-link$1',									-- old parameter name, enumerated
	['^wkautore(%d+)$'] = 'author-link$1',										-- Italian, enumerated
	}

return {suggestions = suggestions, patterns=patterns};