Module:Citation/CS1/Suggestions

In this article, we will explore the fascinating world of Module:Citation/CS1/Suggestions and everything that this topic entails. From its impact on society to its implications on daily life, Module:Citation/CS1/Suggestions has been the subject of interest and debate for years. Throughout the next few lines, we will analyze its meaning, its different perspectives and its relevance in today's world. Whether Module:Citation/CS1/Suggestions is a person, a historical event, an abstract concept, or anything else, we're sure there's a lot to learn and reflect on. Join us on this journey of discovery and reflection about Module:Citation/CS1/Suggestions.

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

suggestions = {
	 = 'asin-tld',													-- old parameter name
	 = 'access-date',													-- German
	 = 'access-date',										-- German
	 = 'access-date',
	 = 'access-date',												-- Italian
	 = 'access-date',
	 = 'access-date',												-- Brazilian Portuguese
	 = 'first',															-- Turkish
	 = 'location',
	 = 'date',															-- Italian
	 = 'access-date',											-- Italian
	 = 'access-date',											-- Italian
	 = 'orig-date',											-- Italian
	 = 'date',															-- French
	 = 'last',														-- Spanish
	 = 'last',														-- Spanish
	 = 'archive-date',											-- German
	 = 'archive-url',												-- German
	 = 'archive-date',                                          -- misspelling
	 = 'archive-url',											-- misspelling
	 = 'archive-url',	                                        -- old parameter name
     = 'archive-url',												-- German	
     = 'archive-date',											-- Swedish, Norwegian
     = 'archive-url',											    -- Swedish, Norwegian	
     = 'others',
	 = 'archive-date',											-- Turkish
	 = 'archive-url',												-- Turkish
	 = 'archive-date',											-- Turkish
	 = 'archive-url',												-- Turkish
	 = 'edition',													-- German
	 = 'author',														-- French
	 = 'author',                                                      -- misspelling
	 = 'author-link',											-- Polish
	 = 'author-first',											-- old parameter name
	 = 'author-given',											-- old parameter name
	 = 'author-last',												-- old parameter name
	 = 'author-mask',												-- old parameter name
	 = 'author-surname',										-- old parameter name
	 = 'author',														-- Spanish, German (singular and plural)
	 = 'author',														-- Italian
	 = 'author',                                                     -- misspelling
	 = 'month',															-- Turkish
	 = 'date',															-- Spanish
	 = 'orig-date',												-- Spanish
	 = 'access-date',												-- Spanish
	 = 'orig-date',												-- Spanish
	 = 'volume',														-- German
	 = 'volume',													-- German
	 = 'edition',														-- Turkish
	 = 'title',														-- Turkish
	 = 'date',															-- old parameter name (cite serial only); or orig-date=
	 = 'book-title',												-- old parameter name
	 = 'language',														-- German (as 'language=de-CH')
	 = 'chapter',
	 = 'chapter-url',												-- old parameter name
	 = 'ref',															-- Italian
	 = 'volume',														-- Turkish
	 = 'quote',															-- Spanish
	 = 'quote',													-- Italian
	 = 'location',														-- Italian
	 = 'location',														-- old parameter name (cite serial only)
	 = 'author',
	 = 'author',
	 = 'author',													-- Spanish
	 = 'author',													-- Italian
	 = 'last',														-- Italian
	 = 'conference-url',										-- old parameter name
	 = 'access-date',											-- French
	 = 'contribution-url',									-- old parameter name
	 = 'publisher',													-- Italian
	 = 'journal',													-- Polish
	 = 'access-date',											-- Polish
	 = 'date',															-- Polish, Italian
	 = 'access-date',											-- Italian
	 = 'archive-date',											-- Italian
	 = 'date',															-- German, Swedish
	 = 'url-status',												-- old parameter name
	 = 'url-status',                                                -- old parameter name
	 = 'url-status',													-- old parameter name
	 = 'work',															-- Turkish
	 = 'language',														-- Turkish
	 = 'display-authors',										-- old parameter name
	 = 'display-editors',										-- old parameter name
	 = 'publisher',
	 = 'id',																-- German (as 'id={{DNB-IDN|...}}')
	 = 'doi-broken-date',											-- old parameter alias
	 = 'doi-broken-date',										-- invalid name found in mainspace
	 = 'doi-broken-date',									-- old parameter alias
	 = 'doi-broken-date',										-- old parameter alias
	 = 'doi-inactive-date',									-- old parameter alias
	 = 'doi-broken-date',											-- invalid name found in mainspace
	 = 'doi-broken-date',										-- invalid name found in mainspace
	 = 'eprint',														-- misspelling
	--  = 'edition',														-- avoid suggestion as in English this could be short for editor or edition
	--  = 'publisher',												-- can be either editor or publisher
	--  = 'agency',													-- can be either publisher or agency
	--  = 'editor',													-- can be either editor or publisher
	--  = 'publisher',												-- can be either publisher or work
	 = 'edition',													-- misspelling
	 = 'edition',														-- misspelling
	 = 'editor-first',											-- old parameter name
	 = 'editor-given',											-- old parameter name
	 = 'editor-last',												-- old parameter name
	 = 'editor-link',												-- old parameter name
	 = 'editor-mask',												-- old parameter name
	 = 'editor',														-- old parameter name (can be emulated using multiple singular |editor= params)
	 = 'editor-surname',										-- old parameter name
	 = 'edition',													-- Italian
	 = 'pmc-embargo-date',											-- old parameter name
	 = 'date',															-- old parameter name (cite serial only)
	 = 'archive-date',											-- French
	 = 'encyclopedia',
	 = 'author-link',											-- Spanish
	 = 'url-status',												-- Spanish
	 = 'episode-link',											-- old parameter name
	 = 'access-date',											-- Turkish
	 = 'work',															-- Turkish
	 = 'surname',														-- misguess
	 = 'date',															-- Spanish
	 = 'access-date',											-- Spanish
	 = 'archive-date',											-- Spanish
	 = 'format',
	 = 'format',														-- misspelling
	 = 'given',													-- misguess/misspelling
	 = 'given',														-- misguess
	 = 'author',                                                  -- Swedish, Norwegian
     = 'format',														-- Spanish, Italian, Polish
	 = 'first',														-- misspelling
	 = 'at',														-- German
	 = 'work',														-- Turkish
	 = 'journal',													-- Italian
     = 'access-date',											    -- Swedish	
     = 'editor',													-- German (singular and plural)
	 = 'publisher',														-- German
	 = 'editor',													-- German
	 = 'language',													-- Spanish
	 = 'isbn',												-- old parameter (can be fully emulated using ((syntax)))
	 = 'isbn',												-- old parameter alias (suggest |isbn as |ignore-isbn-error is deprecated), not a direct replacement, but can be fully emulated using ((syntax))
	 = 'first',															-- Polish
	 = 'inset',														-- misspelling
	 = 'interviewer-link',									-- old parameter alias
	 = 'interviewer-mask',									-- old parameter alias
	 = 'isbn',													-- German (suggest |isbn as |ignore-isbn-error is deprecated), not a direct replacement, but can be fully emulated using ((syntax))
	 = 'isbn',												-- German (suggest |isbn as |ignore-isbn-error is deprecated), not a direct replacement, but can be fully emulated using ((syntax))
	 = 'isbn',											-- German (suggest |isbn as |ignore-isbn-error is deprecated), not a direct replacement, but can be fully emulated using ((syntax))
	 = 'isbn',															-- misspelling
	 = 'issn',												-- German (can be fully emulated using ((syntax)))
	 = 'date',															-- German
	 = 'orig-date',													-- German (not a direct replacement, but can be emulated)
	 = 'chapter',													-- German
	 = 'language',													-- misspelling
	 = 'language',													-- French
	 = 'name-list-style',									-- old parameter name (as |name-list-style=amp)
	 = 'name-list-style',										-- old parameter name (as |name-list-style=amp)
	 = 'location',														-- French
	 = 'language',													-- Italian
	 = 'url',													-- French
	 = 'id',													-- German (as 'id=License No. ...')

	 = 'location',													-- misspelling
	 = 'location',														-- Brazilian Portuguese
	 = 'location',													-- misspelling
	 = 'location',														-- Spanish
	 = 'mailing-list',											-- old parameter name
	 = 'map-url',														-- old parameter name
	 = 'date',															-- Spanish (not a direct replacement)
	 = 'date',															-- Italian (not a direct replacement)
	 = 'location',													-- Polish
	 = 'date',														-- Polish
	 = 'date',															-- French
	 = 'date',															-- German
--	 = 'author',														-- 'name' is often erroneously used for 'title' and 'work' as well, so no suggestion is better than a wrong suggestion
	 = 'name-list-style',									-- old parameter name (as |name-list-style=amp)
	 = 'last',														-- Polish
	 = 'newspaper',													-- misspelling
	 = 'network',													-- misspelling
	 = 'newspaper',													-- misspelling
	 = 'newspaper',
	 = 'newsgroup',												-- misspelling
	 = 'newspaper',												-- misspelling
	 = 'no-tracking',													-- old parameter
	 = 'no-tracking',													-- old parameter
	 = 'last',															-- French
	 = 'first',														-- Spanish
	 = 'first',															-- Italian
	 = 'no-pp',															-- old parameter name
	 = 'no-tracking',												-- old parameter
	 = 'number',														-- Italian, Spanish
	 = 'number',														-- German
	 = 'number',													-- German
	 = 'work',															-- Spanish
	 = 'agency',											-- Polish
	 = 'url-status',													-- German (as 'url-status=dead')
	 = 'url',															-- German (not a direct replacement, but can be emulated)
	 = 'work',															-- Italian
	 = 'agency',												-- Polish
	 = 'orig-date',													-- misspelling
	 = 'orig-date',												-- German
	 = 'publication-place',										-- German
	 = 'language',											-- German
	 = 'title',												-- German (if 'originaltitel' is specified, any possible contents of 'title' should be put in 'trans-title')
	 = 'publication-place',												-- German
	 = 'publication-place',											-- German (not a direct replacement, but can be emulated)
	 = 'others',
	 = 'agency',													-- Polish
	 = 'pages',														-- misspelling
	 = 'page',														-- Italian
	 = 'pages',														-- Italian
	 = 'pages',														-- Italian
	 = 'pages',														-- Italian
	 = 'pages',														-- French
	 = 'magazine',													-- Spanish
	 = 'publisher',												-- misspelling
	 = 'pmc',
	 = 'postscript',												-- misspelling
	 = 'work',															-- Polish
	 = 'first',														-- Spanish
	 = 'first',														-- French
	 = 'first1',														-- French
	 = 'postscript',
	 = 'publisher',
	--  = 'magazine',											-- could be any kind of work
	--  = 'journal',												-- could be any kind of work
	 = 'publication-date',									-- old parameter name
	--  = 'publisher',												-- could be date, location, or name of publisher
	 = 'publication-place',									-- old parameter name
	 = 'publication-place',								-- misspelling
	 = 'page',														-- Spanish
	 = 'pages',														-- Spanish
	 = 'publisher',												-- French
	 = 'url-access',											-- old parameter name
	 = 'series',														-- German
	 = 'access-date',                                              -- old parameter name
	 = 'url-access',									-- Italian (as |url-access=subscription)
	 = 'magazine',                                                   -- Italian
     = 'date',															-- Polish
	 = 'title',                                                       -- Swedish
     = 'work',													-- German
	 = 'page',															-- Turkish
	 = 'pages',														-- Turkish
	 = 'issue',															-- Turkish
	 = 'postscript',												-- misspelling
	 = 'transcript',											-- misspelling
	 = 'date',														-- old parameter name (cite serial only)
	 = 'section-url',												-- old parameter name
	 = 'pages',														-- German
	 = 'series',														-- Spanish, Polish
	 = 'series',														-- Italian
	 = 'series',														-- French
	 = 'series-link',												-- old parameter name
	 = 'series-number',												-- old parameter name
	 = 'agency',
	 = 'website',													-- Spanish
	 = 'website',														-- Italian
	 = 'last',														-- Turkish
	 = 'at',															-- German (not a direct replacement, but can be emulated)
	 = 'language',													-- German
	 = 'language',                                                     -- Swedish, Norwegian
     = 'page',															-- Polish
	 = 'pages',														-- Polish
	 = 'subject-link',											-- old parameter name
	 = 'url-access',											-- old parameter name (emulated as |url-access=subscription)
	 = 'surname',													-- misspelling
	 = 'url-access',												-- Spanish, Polish (as |url-access=subscription)
	 = 'date',															-- German
	 = 'date',															-- Turkish
	 = 'no-tracking',										-- old parameter alias
	 = 'work',                                                       -- Swedish
     = 'title',															-- misspelling
	 = 'time-caption',											-- old parameter name
	 = 'title-link',												-- old parameter name
	 = 'type',															-- Italian
	 = 'title',															-- misspelling
	 = 'title',														-- German
	 = 'title',														-- German ('postscript=none' should be added as well)
	 = 'contribution',												-- German (not a direct replacement, but can be emulated)
	 = 'title',														-- Brazilian Portuguese
	 = 'title',														-- Italian
	 = 'title',														-- French
	 = 'transcript',											-- misspelling
	 = 'trans-chapter',										-- old parameter alias
	 = 'trans-title',											-- old parameter alias
	 = 'trans-chapter',
	 = 'transcript-url',										-- old parameter name
	 = 'transcript',												-- misspelling
	 = 'transcript-format',								-- misspelling
	 = 'transcript-url',										-- misspelling
	 = 'transcript-url',										-- misspelling
	 = 'trans-title',
	 = 'author-mask',													-- German (not a direct replacement, but the only valid argument 'typ=wl' can be emulated using 'author-mask')
	 = 'title',														-- Polish
	 = 'title',
	 = 'title',														-- Spanish
	 = 'location',													-- Spanish
	 = 'archive-url',											-- Italian
	 = 'archive-url',												-- Spanish
	 = 'url-status',												-- Italian
	 = 'id',																-- German (as 'id={{URN|...}}')
	 = 'vauthors',													-- misspelling
	 = 'veditors',													-- misspelling
	 = 'publisher',													-- German
	 = 'publisher',													-- German (not a direct replacement, but can be emulated)
	 = 'volume',
	 = 'volume',														-- Spanish
	 = 'work',															-- German
	 = 'contribution',												-- German (not a direct replacement, but can be emulated)
	 = 'author-link',												-- Italian
	 = 'volume',														-- Polish
	 = 'number',														-- Polish
	 = 'publisher',													-- French
	 = 'author',											-- Turkish
	 = 'publisher',													-- Turkish
	 = 'publisher',													-- Turkish
	 = 'author',														-- Turkish
	 = 'author-link',												-- Turkish
	 = 'location',														-- Turkish
	 = 'date',															-- Turkish
	 = 'publisher',											-- French
	 = 'id',																-- German (as 'id={{ZDB|...}}')
	 = 'quote',														-- German
	 = 'access-date',												-- German
	 = 'editor',														-- French
	 = 'url-status',													-- Turkish
	 = 'translator',												-- German (singular and plural)
}



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

Here we use Lua patterns to make suggestions.  The form is

	 = '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+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 = {
	 = 'access-date',										-- misspelling
	?(%d+)$'] = 'last$1',											-- Spanish, enumerated
	+r$'] = 'author',													-- misspelling
	+r(%d+)$'] = 'author$1',											-- misspelling, enumerated
	 = 'author-link$1',									-- Polish, enumerated
	?(%d+)$'] = 'author$1',											-- Italian/Spanish/German, enumerated
	 = 'author-first$1',									-- old parameter name, enumerated
	 = 'author-first$1',									-- old parameter name, enumerated
	 = 'author-given$1',									-- old parameter name, enumerated
	 = 'author-given$1',									-- old parameter name, enumerated
	 = 'author-last$1',									-- old parameter name, enumerated
	 = 'author-last$1',									-- old parameter name, enumerated
	 = 'author-mask$1',									-- old parameter name, enumerated
	 = 'author-mask$1',									-- old parameter name, enumerated
	 = 'author-surname$1',								-- old parameter name, enumerated
	 = 'author-surname$1',								-- old parameter name, enumerated
	 = 'last$1',												-- Italian, enumerated
	 = 'editor-first$1',									-- old parameter name, enumerated
	 = 'editor-first$1',									-- old parameter name, enumerated
	 = 'editor-given$1',									-- old parameter name, enumerated
	 = 'editor-given$1',									-- old parameter name, enumerated
	 = 'editor-last$1',									-- old parameter name, enumerated
	 = 'editor-last$1',									-- old parameter name, enumerated
	 = 'editor-link$1',									-- old parameter name, enumerated
	 = 'editor-link$1',									-- old parameter name, enumerated
	 = 'editor-mask$1',									-- old parameter name, enumerated
	 = 'editor-mask$1',									-- old parameter name, enumerated
	 = 'editor-surname$1',								-- old parameter name, enumerated
	 = 'editor-surname$1',								-- old parameter name, enumerated
	 = 'author-link$1',									-- Spanish, enumerated
	 = 'first$1',												-- enumerated
	 = 'last$1',												-- enumerated
	?(%d+)$'] = 'last$1',												-- Italian/French, enumerated
	 = 'first$1',												-- Spanish, enumerated
	 = 'first$1',												-- Spanish, enumerated
	+ers?$'] = 'publisher',											-- misspelling
	 = 'subject-link$1',									-- old parameter name, enumerated
	 = 'subject-link$1',									-- old parameter name, enumerated
	 = 'author-link$1',										-- Italian, enumerated
	}

return {suggestions = suggestions, patterns=patterns};