Модуль:Citation/CS1/Configuration/пісочниця/гілка1
Зовнішній вигляд
Документація модуля[перегляд] [редагувати] [історія] [очистити кеш]
Цей модуль використовується для тестування дуже ранніх ідей, які не планується поки включати в головну гілку тестування.
Документація вище включена з Модуль:Citation/CS1/Configuration/пісочниця/гілка1/документація. (ред. | історія) Дописувачі можуть експериментувати на підсторінках пісочниця (створити | дзеркало) та тести (створити) цього модуля. Будь ласка, додавайте категорії до підсторінки /CS1/Configuration/пісочниця/гілка1/документація. Підсторінки цієї сторінки. |
--[[--------------------------< S E T T I N G S >--------------------------------------------------------------
булеві налаштування, що керують різними речами. Ці налаштовування розташованні тут, щоб легше їх знайти
]]
local use_identifier_redirects = false; -- коли true, то використовує ім'я перенаправлення для посилань під назвою ідентифікатора; завжди true в en.wiki; вимкнути, бо не створено перенаправлення
local date_name_auto_xlate_enable = --[[false]] true; -- when true translates English month-names to the local-wiki's language month names; always false at en.wiki
--[[
Список просторів назв, що не повинні включатися у категоріях сторінок з
помилками посилань на джерела. Те саме, що встановлення notracking = true
за замовчуванням.
Для вікі, що мають поточну версію Module:cs1 documentation support, цей #invoke поверне не відсортований
список назв проторів та індентифікаторів, що з ним пов'язані:
{{#invoke:cs1 documentation support|uncategorized_namespace_lister|all=<anything>}}
]]
uncategorized_namespaces_t = {[2]=true}; -- init з id простуру користувач
for k, _ in pairs (mw.site.talkNamespaces) do -- додавання id всіх просторів обговорення
uncategorized_namespaces_t[k] = true;
end
local uncategorized_subpages = {'/[Пп]ісочниця', '/[Тт]ести', '/[^/]*[Ll]og', '/[Аа]рхів'}; -- список закономірностей Lua, що знайдені в назвах сторінок, які ми не повинні категоризувати
--[[
Таблиця перекладів
Далі йдуть фіксовані тексти, що використовуються як частини посилання на
джерело. Вони відділені від головного модуля, щоб спростити переклад.
]]
local messages = {
['published'] = 'опубліковано $1',
['lay summary'] = 'Загальний огляд',
['retrieved'] = 'Процитовано $1',
['dsturetrieved'] = 'Дата звернення: $1',
['inactive'] = 'неактивний',
['archived-dead'] = 'Архів $1 за $2',
['archived-not-dead'] = '$1 оригіналу за $2',
['archived-unfit'] = 'Архів оригіналу за ',
['archived'] = 'Архів',
['cartography'] = 'Картографування: $1',
['inset'] = 'Карта-врізка: $1',
['interview'] = 'Інтерв\'юери: $1',
['original'] = 'оригіналу',
['origdate'] = ' [$1]',
['editor'] = 'ред.',
['editors'] = 'ред.',
['dstueditor'] = 'за ред.',
['edition'] = '(вид. $1)',
['episode'] = 'Епізод $1',
['season'] = 'Сезон $1',
['section'] = '§ $1',
['sections'] = '§§ $1',
['series'] = '$1 $2', -- $1 є sepc, $2 є серіалом
['seriesnum'] = 'Сезон $1',
['translated'] = 'Переклад: $1',
['dstutranslated'] = 'пер. $1',
['written'] = 'Написано у $1',
['in'] = 'У',
['et al'] = 'та ін.',
['language'] = '($1)',
['dstulanguage'] = '[$1]',
['via'] = " — через $1",
['event'] = 'Подія сталася на',
['minutes'] = 'На $1 хвилині',
['vol'] = '$1 Т. $2', -- $1 є sepc; журний журнальний стиль тому є presentation{}
['vol-no'] = '$1 Т. $2, № $3', -- sepc, volume, issue (альтернативно вставляє $1 після $2, але потім ми повинні змінити капіталізацію)
['issue'] = '$1 № $2', -- $1 є sepc
['art'] = '$1 Ст. $2', -- $1 є sepc; лише для {{cite conference}}
['vol-art'] = '$1 Т. $2, ст. $3', -- sepc, volume, article-number; лише для {{cite conference}}
['j-vol'] = '$1 $2', -- sepc, volume; журний журнальний стиль тому є presentation{}
['j-issue'] = ' ($1)',
['j-article-num'] = ' $1', -- TODO: any punctuation here? static text?
['quoted-title'] = '$1',
['italic-title'] = "''$1''",
['trans-quoted-title'] = "[$1]",
['trans-italic-title'] = "[''$1'']",
['dstu-trans-quoted-title'] = "= $1",
['dstu-trans-italic-title'] = "= ''$1''",
['quoted-text'] = '«$1»',
['parameter'] = '<code class="cs1-code">|$1=</code>',
['parameter-separator'] = ', ',
['parameter-final-separator'] = ' та ',
['parameter-pair-separator'] = ' та ',
-- Визначає місцезнаходження сторінки довідки
['help page link'] = 'Довідка:Помилки CS1',
['help page label'] = 'довідка',
-- Категорії
['cat wikilink'] = '[[Category:$1]]', -- $1 є назвою категорії
[':cat wikilink'] = '[[:Category:$1|посилання]]', -- назва категорії як вікіпосилання повідомлення обслуговування; $1 є назвою категорії
-- Внутрішні помилки (можуть статися лише у випадку поганої конфігурації)
['undefined_error'] = 'Виклик з невизначеною умовою помилки',
['unknown_manual_ID'] = 'Нерозпізнаний ручний режим ID',
['unknown_ID_mode'] = 'Нерозпізнаний режим ID',
['unknown_argument_map'] = 'Словник аргументів не визначений для цієї змінної',
['bare_url_no_origin'] = 'Bare url found but origin indicator is nil or empty',
['warning_msg_e'] = '<span style="color:#d33">Один або більше шаблонів <code style="color: inherit; background: inherit; border: none; padding: inherit;">{{$1}}</code> мають помилки</span>; повідомлення можуть бути приховані ([[Довідка:Помилки CS1#Керування відображенням повідомлень про помилки|допомога]]).'; -- $1 є посиланням на шаблон
['warning_msg_m'] = '<span style="color:#3a3">Один або більше шаблонів <code style="color: inherit; background: inherit; border: none; padding: inherit;">{{$1}}</code> мають повідомлення обслуговування</span>; повідомлення можуть бути приховані ([[Довідка:Помилки CS1#Керування відображенням повідомлень про помилки|допомога]]).'; -- $1 є посиланням на шаблон
}
--[[--------------------------< C I T A T I O N _ C L A S S _ M A P >------------------------------------------
Ця таблиця накладає значення присвоєне |CitationClass= у шаблоні cs1|2 на кононічну назву шаблону, коли
значення присвоєне |CitationClass= відрізняється від канонічної назви шаблону. Значення |CitationClass=
використані як атрибути класу в тегах <cite>, що огортає цитату, таким чином, що ці назви можуть не містити пробілів, коли
канонічні назви шаблонів можуть. Ці назви використовуються в warning_msg_e та warning_msg_m, щоб створювати посилання на
докумантацію шаблонів, коли стаття відображена в режимі попереднього перегляду.
Більшість значень |CitationClass= шаблонів cs1|2 в en.wiki відповідають їхнім канонічним назвам шаблонів, а тому вони тут не приведені.
]]
local citation_class_map_t = { -- TODO: if kept, these and all other config.CitationClass 'names' require some sort of i18n
['arxiv'] = 'arXiv',
['audio-visual'] = 'AV media',
['AV-media-notes'] = 'AV media notes',
['biorxiv'] = 'bioRxiv',
['citeseerx'] = 'CiteSeerX',
['encyclopaedia'] = 'encyclopedia',
['mailinglist'] = 'mailing list',
['medrxiv'] = 'medRxiv',
['pressrelease'] = 'press release',
['ssrn'] = 'SSRN',
['techreport'] = 'tech report',
}
--[=[-------------------------< E T _ A L _ P A T T E R N S >--------------------------------------------------
Ця таблиця надає шаблони Lua для фрази «et al» та її варіантів в текстах з ім'ям
(автор, редактор тощо). Основний модуль використовує їх для визначення і виведення повідомлення «та ні.».
]=]
local et_al_patterns = {
"[;,]? *[\"']*%f[%a][Ee][Tt]%.? *[Aa][Ll][%.;,\"']*$", -- варіації на тему «et al»
"[;,]? *[\"']*%f[%a][Ee][Tt]%.? *[Aa][Ll][Ii][AaIi][Ee]?[%.;,\"']*$", -- варіації на теми «et alia», «et alii» та «et aliae» (хибно позитивний «et aliie» неможливо співставить)
"[;,]? *%f[%a]and [Oo]thers", -- альтернатива для et al.
"%[%[ *[Ee][Tt]%.? *[Aa][Ll]%.? *%]%]", -- вікіфікована форма
"%(%( *[Ee][Tt]%.? *[Aa][Ll]%.? *%)%)", -- форма в подвійних квадратних дужках (щоб обійти часткове вуличення синтаксису ((...)) )
"[%(%[] *[Ee][Tt]%.? *[Aa][Ll]%.? *[%)%]]", -- форма в квадратних дужках
--українські варіанти et_al
"[;,]? *[\"']*%f[%a][Тт][Аа] *[Іі][Нн][%.;,\"']*$",
"%[%[ *[Тт][Аа] *[Іі][Нн]%.? *%]%]", -- вікіфікована форма
"%(%( *[Тт][Аа] *[Іі][Нн]%.? *%)%)", -- форма в подвійних квадратних дужках (щоб обійти часткове вуличення синтаксису ((...)) )
"[%(%[] *[Тт][Аа] *[Іі][Нн]%.? *[%)%]]", -- форма в квадратних дужках
}
--[[--------------------------< P R E S E N T A T I O N >------------------------
Фіксована розмітка представлення. Початково це була частина citation_config.messages,
але вона була переміщена окреме, з семантичної точки зору більш правильне, місце.
]]
local presentation = {
-- Вивід помилок
['hidden-error'] = '<span class="cs1-hidden-error error citation-comment">$1</span>',
['visible-error'] = '<span class="cs1-visible-error citation-comment">$1</span>',
['hidden-maint'] = '<span class="cs1-maint citation-comment">$1</span>',
['bdi'] = '<bdi$1>$2</bdi>', -- двонаправна ізоляція (bidirectional isolation) використана з |script-title= і подібними йому параметрами
['cite'] = '<cite class="$1">$2</cite>', -- для використання, коли citation не має namelist та не встановлено |ref= і відповідно не має id="..." значення
['cite-id'] = '<cite id="$1" class="$2">$3</cite>', -- для використання, коли |ref= або коли citation має namelist
-- різні рівні доступу, для параметрів |access=, |doi-access=, |arxiv=, ...
-- narrow no-break space   may work better than nowrap CSS. Or not? Browser support?
['ext-link-access-signal'] = '<span class="$1" title="$2">$3</span>', -- зовнішнє посилання з відповідним значком
['free'] = {class='cs1-lock-free', title='Безкоштовний доступ'}, -- класи визначені у Module:Citation/CS1/styles.css
['registration'] = {class='cs1-lock-registration', title='Потрібна безкоштовна реєстрація'},
['limited'] = {class='cs1-lock-limited', title='Безкоштовний доступ за умови пробної версії, а, зазвичай, потрібна підписка'},
['subscription'] = {class='cs1-lock-subscription', title='Потрібна платна підписка'},
['parameter'] = '<code class="cs1-code">|$1=</code>',
['ps_cs1'] = '.', -- завершальний символ (postscript) стилю CS1
['ps_cs2'] = '', -- завершальний символ (postscript) стилю CS2 (пустий рядок (string))
['ps_dstu2006'] = '.', -- авершальний символ (postscript) стилю DSTU2006
['sep_cs1'] = '.', -- роздільник елементів CS1
['sep_cs2'] = ',', -- роздільник CS2
['sep_dstu2006'] = '. —', -- роздільник DSTU2006
['sep_sp_dstu2006'] = ' /', -- роздільник / DSTU2006
['sep_dsp_dstu2006'] = ' //', -- роздільник // DSTU2006
['sep_colon_dstu2006'] = " : ", -- роздільник : DSTU2006
['sep_nl'] = ';', -- роздільником списку-імен (name-list separator) стилю CS1|2 між ім'ями є дві крапки
['sep_nl_and'] = ' та ', -- використовується як останній nl sep коли |name-list-style=and
['sep_name'] = ', ', -- першим роздільником стилю CS1|2 є <comma><space>
['sep_nl_vanc_dstu'] = ',', -- роздільником списку-імен (name-list separator) стилю Ванкувер (Vancouver)/ДСТУ 2006 є кома
['sep_name_vanc_dstu'] = ' ', -- першим роздільником стилю стилю Ванкувер (Vancouver)/ДСТУ 2006 є пробіл
['sep_list_pair'] = ' та ', -- використовується для |language= коли список 2 об'єкта
['vol-bold'] = '$1 <b>$2</b>', -- sepc, volume; для жирного журнального посилання; для інших посилання: ['vol'] у messages{}
}
-- Таблиця словника аргументів
local aliases = {
['AccessDate'] = {'access-date', 'accessdate', 'дата-доступу'},
['Agency'] = {'agency', 'агенство'},
['ArchiveDate'] = {'archive-date', 'archivedate', 'дата-архіву'},
['ArchiveURL'] = {'archive-url', 'archiveurl', 'url-архіву'},
['ASINTLD'] = {'ASIN-TLD', 'asin-tld'},
['At'] = {'at', 'частина-джерела', 'у'},
['Authors'] = {'authors', 'people', 'credits', 'автори', 'особи', 'титри'},
['AuthorFormat'] = {"author-format", "authorformat" },
['AuthorSeparator'] = {'author-separator', 'роздільник-авторів'},
['AuthorNameSeparator'] = {'author-name-separator', 'роздільник-імен-авторів'},
['BookTitle'] = {'book-title', 'booktitle', 'назва-книги'},
['Cartography'] = {'cartography', 'картографія'},
['Chapter'] = {'chapter', 'contribution', 'entry', 'article', 'section', 'розділ',
'внесок', 'запис', 'стаття', 'секція'},
['ChapterLink'] = {'chapterlink', 'розділ-посилання'},
['ChapterURL'] = {'chapter-url', 'chapterurl', 'contribution-url', 'contributionurl', 'article-url', 'section-url', 'url-розділу',
'url-внеску', 'url-запису', 'url-статті', 'url-секції' },
['ChapterUrlAccess'] = {'chapter-url-access', 'contribution-url-access',
'entry-url-access', 'article-url-access', 'section-url-access', 'доступ-до-url-розділу',
'доступ-до-url-внеску', 'доступ-до-url-запису', 'доступ-до-url-статті',
'доступ-до-url-секції' }, -- Використовується InternetArchiveBot
['Class'] = {'class', 'клас'}, -- cite arxiv and arxiv identifier
['Coauthors'] = {'coauthors', 'coauthor', 'співавтори', 'співавтор' },
['Conference'] = {'conference', 'конференція'},
['ConferenceURL'] = {'conference-url', 'conferenceurl', 'конференція-url'},
['Date'] = {'date', 'дата', 'air-date', 'airdate', 'дата-показу'},
['Day'] = {'day', 'день'},
['DeadURL'] = {'deadurl', 'dead-url', 'мертвий-url', 'deadlink'},
['Degree'] = {'degree', 'ступінь'},
['DF'] = {'df', 'фд'},
['DisplayAuthors'] = {"display-authors", "displayauthors", 'display-subjects', "показувати-авторів", "показувати-суб'єктів"},
['DisplayEditors'] = {"display-editors", "displayeditors", "показувати-редакторів"},
['DisplayInterviewers'] = {'display-interviewers', "показувати-інтерв'юерів"},
['DisplayTranslators'] = {'display-translators', "показувати-перекладачів"},
['DoiBroken'] = {'doi-broken-date', 'doi_inactivedate', 'doi_brokendate', 'DoiBroken', 'поламана-дата-doi'},
['Edition'] = {'edition', 'видання'},
['Editors'] = {'editors', 'редактори'},
['EditorFormat'] = {"editor-format", "editorformat" },
['EditorSeparator'] = 'editor-separator',
['EditorNameSeparator'] = 'editor-name-separator',
['Embargo'] = {'pmc-embargo-date', 'Embargo', 'embargo', 'дата-ембарго-pmc'},
['Episode'] = {'episode', 'епізод'}, -- тільки для шаблону cite serial TODO: make available to cite episode?
['Format'] = {'format', 'формат'},
['ID'] = {'id', 'ID', 'docket'},
['IgnoreISBN'] = {'ignore-isbn-error', 'ignoreisbnerror'},
['Inset'] = {'inset', 'карта-врізка', 'мапа-врізка'},
['Issue'] = {'issue', 'number', 'випуск', 'номер'},
['Language'] = {'language', 'lang', 'in', 'мова', 'мовою'},
['LastAuthorAmp'] = 'lastauthoramp',
['LayDate'] = 'laydate',
['LaySource'] = 'laysource',
['LayURL'] = {'layurl', 'laysummary'},
['MailingList'] = {'mailing-list', 'mailinglist', 'список-розсилки'}, -- тільки для шаблону cite mailing list
['Map'] = {'map', 'карта', 'мапа'}, -- тільки для шаблону cite map
--['MapFormat'] = {'map-format', 'формат-карти', 'формат-мапи'}, -- тільки для шаблону cite map (тимчасово не реалізовано)
['MapURL'] = {'map-url', 'mapurl', 'url-карти', 'url-мапи'}, -- тільки для шаблону cite map -- Використовується InternetArchiveBot
['MapUrlAccess'] = {'map-url-access', 'доступ-до-url-мапи', 'доступ-до-url-карти'}, -- тільки для шаблону cite map -- Використовується InternetArchiveBot
['Minutes'] = { 'minutes', 'хвилини'},
['Mode'] = {'mode', 'режим'},
['Month'] = {'month', 'місяць'},
['NameListStyle'] = {'name-list-style', 'стиль-списку-імен'},
['NameSeparator'] = 'name-separator',
['Network'] = {'network', 'мережа', 'канал'},
['NoPP'] = 'nopp',
['NoTracking'] = {"template doc demo", 'template-doc-demo', 'nocat',
'notracking', "no-tracking"},
['OrigDate'] = {'orig-date', 'orig-year', 'origyear', 'дата-оригіналу', 'рік-оригіналу'},
['Others'] = {'others', 'інші'},
['Page'] = {'p', 'page', 'сторінка', 'ст'},
['Pages'] = {'pp', 'pages', 'сторінки'},
['Periodical'] = {'journal', 'newspaper', 'magazine', 'work',
'website', 'periodical', 'encyclopedia', 'encyclopaedia', 'dictionary',
'журнал', 'газета', 'праця', 'вебсайт', 'веб-сайт', 'періодика', 'енциклопедія', 'словник'},
['Place'] = {'place', 'location', 'місце', 'розміщення', 'знаходження'},
['PPrefix'] = 'PPrefix',
['PPPrefix'] = 'PPPrefix',
['PostScript'] = {'postscript', 'завершення'},
['PublicationDate'] = {'publicationdate', 'publication-date', 'дата-публікації' },
['PublicationPlace'] = {'publication-place', 'publicationplace', 'місце-публікації' },
['PublisherName'] = {'publisher', 'institution', 'видавець', 'видавництво', 'установа'},
['Quote'] = {'quote', 'quotation', 'цитата', 'цитування'},
['Ref'] = {'ref', 'Ref', 'анкер', 'якірець'},
['Scale'] = {'scale', 'масштаб'},
['ScriptChapter'] = {'script-chapter', 'script-contribution', 'script-entry',
'script-article', 'script-section', 'письмо-розділу', 'письмо-внеску',
'письмо-запису', 'письмо-статті', 'письмо-секції'},
['ScriptMap'] = {'script-map', 'письмо-мапи', 'письмо-карти'}, -- тільки для шаблону cite map
['ScriptPeriodical'] = {'script-journal', 'script-magazine', 'script-newspaper',
'script-periodical', 'script-website', 'script-work', 'письмо-журналу',
'письмо-газети', 'письмо-періодики', 'письмо-вебсайту', 'письмо-праці'},
['ScriptQuote'] = {'script-quote', 'письмо-цитати'},
['ScriptTitle'] = {'script-title', 'письмо-назви'},
['Season'] = {'season', 'сезон'},
['Sections'] = {'sections', 'частини-мапи', 'частини-карти'}, -- тільки для шаблону cite map
['Separator'] = {'separator', 'роздільник'},
['Series'] = {'series', 'version', 'серія', 'версія', 'серіал'},
['SeriesSeparator'] = {'series-separator', 'роздільник-серії'},
['SeriesLink'] = {'series-link', 'serieslink', 'серіал-посилання'},
['SeriesNumber'] = {'series-number', 'series-no', 'seriesnumber', 'seriesno', 'номер-серіалу'},
--['Sheet'] = {'sheet', 'аркуш'}, -- тільки для шаблону cite map (поки не реалізовано, потрібно переписувати код Chapter)
--['Sheets'] = {'sheets', 'аркуші'}, -- тільки для шаблону cite map (поки не реалізовано, потрібно переписувати код Chapter)
['Station'] = {'station', 'станція'},
['SubscriptionRequired'] = 'subscription',
['Time'] = {'time', 'час'},
['TimeCaption'] = {'time-caption', 'timecaption', 'підпис-часу'},
['Title'] = {'title', 'назва', 'заголовок'},
['TitleLink'] = {'title-link', 'titlelink', 'episode-link', 'episodelink', 'назва-посилання',
'заголовок-посилання', 'епізод-посилання', 'серія-посилання' },
['TitleNote'] = {'department', 'відділ' },
['TitleType'] = {'type', 'тип', 'medium', 'медіум'},
['TransChapter'] = {'trans-article', 'trans-chapter', 'trans-contribution',
'trans-entry', 'trans-section', 'trans-chapter', 'trans_chapter', 'переклад-розділу',
'переклад-внеску', 'переклад-запису', 'переклад-статті', 'переклад-секції' },
['Transcript'] = {'transcript', 'стенограма'},
['TranscriptURL'] = {'transcript-url', 'transcripturl', 'url-стенограми'},
['TransMap'] = {'trans-map', 'переклад-карти', 'переклад-мапи'}, -- тільки для шаблону cite map
['TransPeriodical'] = {'trans-journal', 'trans-magazine', 'trans-newspaper',
'trans-periodical', 'trans-website', 'trans-work', 'переклад-журналу',
'переклад-газети', 'переклад-періодики', 'переклад-вебсайту', 'переклад-праці'},
['TransQuote'] = {'trans-quote', 'переклад-цитати' },
['TransTitle'] = {'trans-title', 'trans_title', 'переклад-назви' },
['URL'] = {'url', 'URL'},
['UrlAccess'] = {'url-access', 'доступ-до-url'},
['UrlStatus'] = {'url-status', 'статус-url'},
['Vauthors'] = {'vauthors', 'вавтори'},
['Veditors'] = {'veditors', 'вредактори'},
['Via'] = {'via', 'через'},
['Volume'] = {'volume', 'том'},
['Year'] = {'year', 'рік'},
['AuthorList-First'] = {"author#-first", "author-first#",
"first#", "given#","author-given#", "author#-given",
"subject-first#", "subject#-first", "subject-given#",
"subject#-given", "автор#-ім'я", "автор-ім'я#",
"ім'я#", "суб'єкт#-ім'я", "суб'єкт-ім'я#"},
['AuthorList-Last'] = {"author#-last", "author-last#",
"author-surname#", "author#-surname", "last#",
"surname#", "Author#", "author#",
"host#","subject-last#", "subject#-last",
"subject-surname#", "subject#-surname", "subject#",
"автор#-прізвище", "автор-прізвище#", "прізвище#",
"автор#", "ведучий#", "ведуча#",
"суб'єкт#-прізвище", "суб'єкт-прізвище#", "суб'єкт#",
},
['AuthorList-Link'] = {"author#-link", "author-link#",
"author#link", "authorlink#", "subject-link#",
"subject#-link", "автор#-посилання",
"автор-посилання#", "автор#посилання", "суб'єкт#-посилання",
"суб'єкт-посилання#"},
['AuthorList-Mask'] = {"author#-mask", "author-mask#",
"author#mask", "authormask#", "автор#-маска", "автор-маска#",
"автор#маска", "subject-mask#", "subject#-mask", "суб'єкт#-маска", "суб'єкт-маска#"},
['EditorList-First'] = {"editor#-first",
"editor-first#", "editor-given#", "editor#-given",
"редактор#-ім'я", "редактор-ім'я#"},
['EditorList-Last'] = {"editor#-last", "editor-last#",
"editor-surname#", "editor#-surname", "Editor#", "editor#",
"редактор#-прізвище", "редактор-прізвище#", "редактор#"},
['EditorList-Link'] = {"editor#-link", "editor-link#",
"editor#link", "editorlink#", "редактор#-посилання", "редактор-посилання#",
"редактор#посилання"},
['EditorList-Mask'] = {"editor#-mask", "editor-mask#",
"editor#mask", "editormask#", "редактор#-маска", "редактор-маска#",
"редактор#маска"},
['InterviewerList-First'] = {'interviewer-first#', 'interviewer#-first',
'interviewer-given#', 'interviewer#-given',
"інтерв'юер#-ім'я", "інтерв'юер-ім'я#"},
['InterviewerList-Last'] = {'interviewer-last#', 'interviewer#-last',
'interviewer-surname#', 'interviewer#-surname', 'interviewer#',
"інтерв'юер#-прізвище", "інтерв'юер-прізвище#", "інтерв'юер#"},
['InterviewerList-Link'] = {'interviewer-link#', 'interviewer#-link',
"інтерв'юер#-посилання", "інтерв'юер-посилання#"},
['InterviewerList-Mask'] = {'interviewer-mask#', 'interviewer#-mask',
"інтерв'юер#-маска", "інтерв'юер-маска#"},
['TranslatorList-First'] = {'translator-first#', 'translator#-first',
'translator-given#', 'translator#-given',
"перекладач#-ім'я", "перекладач-ім'я#"},
['TranslatorList-Last'] = {'translator-last#', 'translator#-last',
'translator-surname#', 'translator#-surname', 'translator#',
"перекладач#-прізвище", "перекладач-прізвище#", "перекладач#" },
['TranslatorList-Link'] = {'translator-link#', 'translator#-link',
"перекладач#-посилання", "перекладач-посилання#"},
['TranslatorList-Mask'] = {'translator-mask#', 'translator#-mask',
"перекладач#-маска", "перекладач-маска#"},
}
--[[--------------------------< D A T E _ N A M E S >----------------------------------------------------------
Ця таблиця таблиць перераховує назви дати місцевою мовою та назви дат англійською мовою як запасного варіанту.
Код у Date_validation спершу прогляне за таблицею місцевої мови щодо дійсних назв дат.
Якщо назви дат не знайдено в таблиці місцевої мови, то код прогляне англійську таблицю.
Через те, що посилання на джерела можуть копіюватися з en.wiki в місцеву вікі, то необхідні англійські назви
коли використовується функція перекладу назв дат date_name_xlate().
У цих таблицях, нумерацція сезонів визначена
специфікацією Extended Date/Time Format (EDTF) (https://www.loc.gov/standards/datetime/)
яка стала частиною ISO 8601 у 2019. Дивіться «§Sub-year groupings». Стандарт
визначає різні відділи, використовуючи числа 21-41. CS1|2 підтримує лише загальні сезони.
EDTF підтримує різницію між сезонами північної і південної півкулі
але CS1|2 не може ніяк впровадити цю різницю.
33-36 = Квартал 1, Квартал 2, Квартал 3, Квартал 4 (кожні 3 місяці)
Стандарт не вирішує питання іменованих дат, тому з цією метою для шаблонів CS1|2,
Великдень та Різдво визначені тут як 98 та 99, що на певний час повинні бути за межами
інтервалу, що використовує ISO 8601 (EDTF).
local_date_names_from_mediawiki є булевим значенням. Коли встановлено:
true — модуль стягне місцеві назви місяців з MediaWiki для обох значень date_names['local']['long'] та date_names['local']['short']
false — модуль *не* стягне місцеві назви місяців з MediaWiki
Зверніть увагу: Не має жодної гарантії, що MediaWiki надасть короткі назви місяців. У вашій вікі ви можете перевірити
результати стягування з MediaWiki, ввівши цю команду у консолі налагодження (резульатат відсортовано за абеткою):
=mw.dumpObject (p.date_names['local'])
Коли модуль стягує назви з MediaWiki, то він не може стягнути квартали, сезони та іменовані назви дат
з MediaWiki. Їх потрібно вручну перекладати.
]]
local date_names = {
['en'] = { -- англійською мовою
['long'] = {['January'] = 1, ['February'] = 2, ['March'] = 3, ['April'] = 4, ['May'] = 5, ['June'] = 6, ['July'] = 7, ['August'] = 8, ['September'] = 9, ['October'] = 10, ['November'] = 11, ['December'] = 12},
['short'] = {['Jan'] = 1, ['Feb'] = 2, ['Mar'] = 3, ['Apr'] = 4, ['May'] = 5, ['Jun'] = 6, ['Jul'] = 7, ['Aug'] = 8, ['Sep'] = 9, ['Oct'] = 10, ['Nov'] = 11, ['Dec'] = 12},
['quarter'] = {['First Quarter'] = 33, ['Second Quarter'] = 34, ['Third Quarter'] = 35, ['Fourth Quarter'] = 36},
['season'] = {['Winter'] = 24, ['Spring'] = 21, ['Summer'] = 22, ['Fall'] = 23, ['Autumn'] = 23},
['named'] = {['Easter'] = 98, ['Christmas'] = 99},
},
-- коли local_date_names_from_mediawiki = false
['local'] = { -- замініть ці англійські назви дат на відповідники місцевою мовою
['long'] = {['Січень'] = 1, ['Лютий'] = 2, ['Березень'] = 3, ['Квітень'] = 4, ['Травень'] = 5, ['Червень'] = 6, ['Липень'] = 7, ['Серпень'] = 8, ['Вересень'] = 9, ['Жовтень'] = 10, ['Листопад'] = 11, ['Грудень'] = 12,
['січня'] = 1, ['лютого'] = 2, ['березня'] = 3, ['квітня'] = 4, ['травня'] = 5, ['червня'] = 6, ['липня'] = 7, ['серпня'] = 8, ['вересня'] = 9, ['жовтня'] = 10, ['листопада'] = 11, ['грудня'] = 12
},
['short'] = {['Січ'] = 1, ['Лют'] = 2, ['Бер'] = 3, ['Квіт'] = 4, ['Трав'] = 5, ['Черв'] = 6, ['Лип'] = 7, ['Серп'] = 8, ['Вер'] = 9, ['Жовт'] = 10, ['Лист'] = 11, ['Груд'] = 12},
['quarter'] = {['Перший квартал'] = 33, ['Другий квартал'] = 34, ['Третій квартал'] = 35, ['Четвертий квартал'] = 36},
['season'] = {['Зима'] = 24, ['Весна'] = 21, ['Літо'] = 22, ['Осінь'] = 23, ['Осінь'] = 23},
['named'] = {['Великдень'] = 98, ['Різдо'] = 99},
},
['inv_local_long'] = {[1] = 'січня', [2] = 'лютого', [3] = 'березня', [4] = 'квітня', [5] = 'травня', [6] = 'червня', [7] = 'липня', [8] = 'серпня', [9] = 'вересня', [10] = 'жовтня', [11] = 'листопада', [12] = 'грудня'}, -- використовується в переформатуванні та перекладі дат; скопіюйте date_names['local'].long де k/v є інвертованими: [1]='<назва місцевою мовою>' тощо.
['inv_local_short'] = {[1] = 'Січ', [2] = 'Лют', [3] = 'Бер', [4] = 'Квіт', [5] = 'Трав', [6] = 'Черв', [7] = 'Лип', [8] = 'Серп', [9] = 'Вер', [10] = 'Жовт', [11] = 'Лист', [12] = 'Груд'}, -- використовується в переформатуванні та перекладі дат; скопіюйте date_names['local'].short де k/v є інвертованими: [1]='<назва місцевою мовою>' тощо.
['inv_local_quarter'] = {}, -- використовується в перекладі дат; скопіюйте date_names['local'].quarter де k/v є інвертованими: [1]='<назва місцевою мовою>' тощо.
['inv_local_season'] = {[24] = 'Зима', [21] = 'Весна', [22] = 'Літо', [23] = 'Осінь'}, -- використовується в перекладі дат; скопіюйте date_names['local'].season де k/v є інвертованими: [1]='<назва місцевою мовою>' тощо.
['inv_local_named'] = {[98] = 'Великдень', [99] = 'Різдо'}, -- used in date translation; скопіюйте date_names['local'].named де k/v є інвертованими: [1]='<назва місцевою мовою>' тощо.
['local_digits'] = {['0'] = '0', ['1'] = '1', ['2'] = '2', ['3'] = '3', ['4'] = '4', ['5'] = '5', ['6'] = '6', ['7'] = '7', ['8'] = '8', ['9'] = '9'}, -- використовується для перетворення цифр місцевої мови у західні цифри 0-9
--['xlate_digits'] = {},
}
--[[--------------------------< S I N G L E - L E T T E R S E C O N D - L E V E L D O M A I N S >----------
це список tlds, про які відоми, що вони мають доменне ім'я другого рівня, що складається з однієї літери.
Цей список не включає ccTLDs, що приймаються в is_domain_name().
]]
local single_letter_2nd_lvl_domains_t = {'cash', 'company', 'foundation', 'org', 'today'};
-- Значення параметрів за замовчуванням
local defaults = {
['DeadURL'] = 'yes',
-- ['Separator'] = '.',
['AuthorSeparator'] = ';',
['EditorSeparator'] = ';',
['NameSeparator'] = ',',
['PPrefix'] = "с. ",
['PPPrefix'] = "с. ",
}
--[[----------------------< L A N G U A G E S U P P O R T >-------------------
Ці таблиці і константи підтримують різні мовноорієнтовані функціональності.
]]
local this_wiki_code = mw.getContentLanguage():getCode(); -- отримати мовний код цієї вікі
--local this_wiki_code = lang_obj:getCode(); -- отримати мовний код цієї вікі
if string.match (mw.site.server, 'wikidata') then
this_wiki_code = mw.getCurrentFrame():callParserFunction('int', {'lang'}); -- на Вікіданих, тому використовувати натомість налаштування мови інтерфейсу
end
local mw_languages_by_tag_t = mw.language.fetchLanguageNames (this_wiki_code, 'all'); -- отримання таблиці пари назви/ тегу мови, що відома Вікімедії; використовується для тестів міжмовних вікі
local inter_wiki_map = {}; -- таблиця міжмовних вікі префіксу, що є префіксами мовних кодів
for k, v in pairs (mw.site.interwikiMap ('local')) do -- проходимо через базову таблиця міжмовних вікі (що обмежена local)
if mw_languages_by_tag_t[v["prefix"]] then -- якщо префікс збігається з відомим мовним тегом
inter_wiki_map[v["prefix"]] = true; -- додаємо до нашої локальної таблиці
end
end
--[[--------------------< S C R I P T _ L A N G _ C O D E S >-------------------
Ці таблиця використовується, щоб зберігати двозначний ISO 639-1 і трьохзначний ISO 639-3
мовний код, застосовується лише у |script-title= та |script-chapter=
]]
local script_lang_codes = {
'ab', 'am', 'ar', 'be', 'bg', 'bn', 'bo', 'bs', 'dv', 'dz', 'el', 'fa', 'gu', 'he',
'hi', 'hy', 'ja', 'ka', 'kk', 'km', 'kn', 'ko', 'ku', 'ky', 'lo', 'mk', 'ml', 'mn',
'mni', 'mr', 'my', 'ne', 'or', 'ota', 'pa', 'ps', 'ru', 'sd', 'si', 'sr', 'syc', 'ta',
'te', 'tg', 'th', 'ti', 'tt', 'ug', 'uk', 'ur', 'uz', 'yi', 'yue', 'zh'
};
--[[---------------< L A N G U A G E R E M A P P I N G >----------------------
Ці таблиці містять інформацію про мови, що відрізняються від визначень MediaWiki
Для кожного ['<tag>'] = 'language name' у lang_code_remap{} повинен бути збіг із ['language name'] = {'language name', '<tag>'} у lang_name_remap{}
lang_tag_remap{}:
ключем є завжди ISO 639-1, -2, -3 мовний код малими буквами або дійсний IETF мовний код малими буквами
значенням є правильно написане і капіталізоване назву мову, що пов'язане з <tag>
тільки одна нпзва мови на <tag>;
пара кляча/значення має збігатися із записом у lang_name_remap{}
lang_name_remap{}:
ключем є завжди назвою мови малими буквами
значенням є таблицею, що містить правильно написане і капіталізоване назву мову [1] та пов'язаний із нею тег [2] (тег має збігатися із тегом ключа у lang_tag_remap{})
може мати кілька ключів, що покликаються до спільної назви, якій надається перевага, і тегу; Наприклад:
['kolsch'] і ['kölsch'] обидва покликаються до 'Kölsch' і 'ksh'
]]
local lang_tag_remap = { -- використовується для |language= та |script-title= / |script-chapter=
['als'] = 'Tosk Albanian', -- MediaWiki поветрає Alemannisch
['bh'] = 'Bihari', -- MediaWiki викоритстовує 'bh' як піддоменне ім'я для Bhojpuri Wikipedia: bh.wikipedia.org
['bla'] = 'Blackfoot', -- MediaWiki/IANA/ISO 639: Siksika; для використання ім'я, якому надає перевага en.wiki
['ca-valencia'] = 'Valencian', -- IETF варіант Catalan
['fkv'] = 'Kven', -- MediaWiki поветрає Kvensk
['ilo'] = 'Ilocano', -- MediaWiki/IANA/ISO 639: Iloko; для використання ім'я, якому надає перевага en.wiki
['ksh'] = 'Kölsch', -- MediaWiki: Colognian; для використання ім'я, якому надає перевага IANA/ISO 639
['ksh-x-colog'] = 'Colognian', -- перезаписує MediaWiki ksh; немає коду IANA/ISO 639 для Colognian; приватний код IETF створено у Module:Lang/data
['mis-x-ripuar'] = 'Ripuarian', -- перезаписує MediaWiki ksh; немає коду IANA/ISO 639 для Ripuarian; приватний код IETF створено уt Module:Lang/data
['nan-tw'] = 'Taiwanese Hokkien', -- створено місце для MediaWiki/IANA/ISO 639 nan: Min Nan Chinese та підтримки ім'я, якому надає перевага en.wiki
}
--[[---------------< P R O P E R T I E S _ C A T E G O R I E S >----------------
Категорії властовистей. Вони використовуються для дослідження якостей цитат.
]]
local prop_cats = {
['long-vol'] = 'CS1: том із великими значення', -- скоріше тимчасова категорія, що визначити масштаб значень |volume= більших ніж 4 символа
['script'] = 'CS1 використовує письмо коду мови $2 ($1)', -- |script-title=xx: має катагорію, що співпадає; $1 є назвою мови, $2 є ISO639-1 кодом
['tracked-param'] = 'CS1 відстежує параметр: $1', -- $1 є основною (прибирається нумерування) назвою параметра
}
--[[-------------------< T I T L E _ T Y P E S >--------------------------------
Тут ми присвоємо CitationClass шаблону до TitleType (стандартні значення для параметра |type=)
]]
local title_types = {
-- ['AV-media-notes'] = 'Media notes',
['document'] = 'Документ',
['interview'] = 'Інтерв\'ю',
['mailinglist'] = 'Список розсилки',
['map'] = 'Карта',
['podcast'] = 'Подкаст',
['pressrelease'] = 'Пресреліз',
['report'] = 'Звіт',
['speech'] = 'Промова',
['techreport'] = 'Технічний звіт',
['thesis'] = 'Дипломна робота',
}
--[[--------------------------< B U I L D _ K N O W N _ F R E E _ D O I _ R E G I S T R A N T S _ T A B L E >--
створює таблицю реєстрантів doi, які відомі тим, що до них є вільним доступ. У doi, ID реєстранта є серія цифр
між «10.» та першим «/»: у doi 10.1100/sommat, 1100 є ID реєстранта
]]
local function build_free_doi_registrants_table()
local registrants_t = {};
for _, v in ipairs ({
'1100', '1155', '1186', '1371', '1629', '1989', '1999', '2147', '2196', '3285', '3389', '3390', '3410',
'3748', '3814', '3847', '3897', '4061', '4089', '4103', '4172', '4175', '4236', '4239', '4240', '4251',
'4252', '4253', '4254', '4291', '4292', '4329', '4330', '4331', '5194', '5306', '5312', '5313', '5314',
'5315', '5316', '5317', '5318', '5319', '5320', '5321', '5334', '5402', '5409', '5410', '5411', '5412',
'5492', '5493', '5494', '5495', '5496', '5497', '5498', '5499', '5500', '5501', '5527', '5528', '5662',
'6064', '6219', '7167', '7217', '7287', '7482', '7490', '7554', '7717', '7766', '11131', '11569', '11647',
'11648', '12688', '12703', '12715', '12998', '13105', '14293', '14303', '15215', '15412', '15560', '16995',
'17645', '19080', '19173', '20944', '21037', '21468', '21767', '22261', '22459', '24105', '24196', '24966',
'26775', '30845', '32545', '35711', '35712', '35713', '35995', '36648', '37126', '37532', '37871', '47128',
'47622', '47959', '52437', '52975', '53288', '54081', '54947', '55667', '55914', '57009', '58647', '59081',
}) do
registrants_t[v] = true; -- створюємо k/v таблицю відомих реєстрантів doi з вільним доступом
end
return registrants_t;
end
--[[--------------------------< K E Y W O R D S >-------------------------------
Ці таблиці містять ключові слова для тих параметрів, що мають визначений список допустимих ключових слів.
]]
--[[-------------------< K E Y W O R D S T A B L E >--------------------------
Це список ключових слівth; кожен ключ у списку пов'язаний із таблицею
синонімічних ключових слів, що можуть бути з інших мов.
Для I18N: додайте ключові слова місцевої мови до значень у таблиці; не змінюйте ключ.
Наприклад, додаючи німецьке ключове слово «ja»:
['affirmative'] = {'yes', 'true', 'y', 'ja'},
У зв'язку з тим, що шаблони CS1|2 зі статей en.wiki часто копіюються в інші місцеві вікі,
то рекомендується, щоб англійські ключові слова лишалися в цих таблицях.
]]
local keywords = {
['amp'] = {'&', 'amp', 'ampersand'}, -- |name-list-style=
['and'] = {'and', 'serial'}, -- |name-list-style=
['affirmative'] = {'yes', 'true', 'y', 'так'}, -- |no-tracking=, |no-pp= -- Used by InternetArchiveBot
['afterword'] = {'afterword'}, -- |contribution=
['bot: unknown'] = {'bot: unknown'}, -- |url-status= -- Used by InternetArchiveBot
['cs1'] = {'cs1'}, -- |mode=
['cs2'] = {'cs2'}, -- |mode=
['dead'] = {'dead', 'deviated'}, -- |url-status= -- Used by InternetArchiveBot
['dmy'] = {'dmy'}, -- |df=
['dmy-all'] = {'dmy-all'}, -- |df=
['foreword'] = {'foreword'}, -- |contribution=
['free'] = {'free'}, -- |<id>-access= -- Used by InternetArchiveBot
['harv'] = {'harv'}, -- |ref=; this no longer supported; is_valid_parameter_value() called with <invert> = true
['introduction'] = {'introduction'}, -- |contribution=
['limited'] = {'limited'}, -- |url-access= -- Used by InternetArchiveBot
['live'] = {'live'}, -- |url-status= -- Used by InternetArchiveBot
-- ['mdy'] = {'mdy'}, -- |df=
-- ['mdy-all'] = {'mdy-all'}, -- |df=
['none'] = {'none'}, -- |postscript=, |ref=, |title=, |type= -- Used by InternetArchiveBot
['off'] = {'off'}, -- |title= (potentially also: |title-link=, |postscript=, |ref=, |type=)
['preface'] = {'preface'}, -- |contribution=
['registration'] = {'registration'}, -- |url-access= -- Used by InternetArchiveBot
['subscription'] = {'subscription'}, -- |url-access= -- Used by InternetArchiveBot
['unfit'] = {'unfit'}, -- |url-status= -- Used by InternetArchiveBot
['usurped'] = {'usurped'}, -- |url-status= -- Used by InternetArchiveBot
['vanc'] = {'vanc'}, -- |name-list-style=
['ymd'] = {'ymd'}, -- |df=
['ymd-all'] = {'ymd-all'}, -- |df=
-- ['yMd'] = {'yMd'}, -- |df=; not supported at en.wiki
-- ['yMd-all'] = {'yMd-all'}, -- |df=; not supported at en.wiki
}
--[[------------------------< X L A T E _ K E Y W O R D S >---------------------
this function builds a list, keywords_xlate{}, of the keywords found in keywords{} where the values from keywords{}
become the keys in keywords_xlate{} and the keys from keywords{} become the values in keywords_xlate{}:
['affirmative'] = {'yes', 'true', 'y'}, -- in keywords{}
becomes
['yes'] = 'affirmative', -- in keywords_xlate{}
['true'] = 'affirmative',
['y'] = 'affirmative',
the purpose of this function is to act as a translator between a non-English keyword and its English equivalent
that may be used in other modules of this suite
]]
local function xlate_keywords ()
local out_table = {}; -- output goes here
for k, keywords_t in pairs (keywords) do -- spin through the keywords table
for _, keyword in ipairs (keywords_t) do -- for each keyword
out_table[keyword] = k; -- create an entry in the output table where keyword is the key
end
end
return out_table;
end
local keywords_xlate = xlate_keywords (); -- the list of translated keywords
--[[----------------< M A K E _ K E Y W O R D S _ L I S T >---------------------
this function assembles, for parameter-value validation, the list of keywords appropriate to that parameter.
keywords_lists{}, is a table of tables from keywords{}
]]
local function make_keywords_list (keywords_lists)
local out_table = {}; -- output goes here
for _, keyword_list in ipairs (keywords_lists) do -- spin through keywords_lists{} and get a table of keywords
for _, keyword in ipairs (keyword_list) do -- spin through keyword_list{} and add each keyword, ...
table.insert (out_table, keyword); -- ... as plain text, to the output list
end
end
return out_table;
end
--[[----------------< K E Y W O R D S _ L I S T S >-----------------------------
this is a list of lists of valid keywords for the various parameters in [key].
Generally the keys in this table are the canonical en.wiki parameter names though
some are contrived because of use in multiple differently named parameters:
['yes_true_y'], ['id-access'].
The function make_keywords_list() extracts the individual keywords from the
appropriate list in keywords{}.
The lists in this table are used to validate the keyword assignment for the
parameters named in this table's keys.
]]
local keywords_lists = {
['yes_true_y'] = make_keywords_list ({keywords.affirmative}),
['contribution'] = make_keywords_list ({keywords.afterword, keywords.foreword, keywords.introduction, keywords.preface}),
['df'] = make_keywords_list ({keywords.dmy, keywords['dmy-all'], keywords.ymd, keywords['ymd-all']}),
--['df'] = make_keywords_list ({keywords.dmy, keywords['dmy-all'], keywords.mdy, keywords['mdy-all'], keywords.ymd, keywords['ymd-all']}),
-- ['df'] = make_keywords_list ({keywords.dmy, keywords['dmy-all'], keywords.mdy, keywords['mdy-all'], keywords.ymd, keywords['ymd-all'], keywords.yMd, keywords['yMd-all']}), -- not supported at en.wiki
['mode'] = make_keywords_list ({keywords.cs1, keywords.cs2}),
['name-list-style'] = make_keywords_list ({keywords.amp, keywords['and'], keywords.vanc}),
['ref'] = make_keywords_list ({keywords.harv}), -- inverted check; |ref=harv no longer supported
['url-access'] = make_keywords_list ({keywords.subscription, keywords.limited, keywords.registration}),
['url-status'] = make_keywords_list ({keywords.dead, keywords.live, keywords.unfit, keywords.usurped, keywords['bot: unknown']}),
['id-access'] = make_keywords_list ({keywords.free}),
}
--[[---------------------< S T R I P M A R K E R S >----------------------------
Часті шаблони визначення шляху для stripmarkers, щоб ми не мали необхідності so that we don't have to go
їх шукати, якщо (коли) MediaWiki змінить їхню форму.
]]
local stripmarkers = {
['any'] = '\127[^\127]*UNIQ%-%-(%a+)%-[%a%d]+%-QINU[^\127]*\127', -- ловить і повертає назву stripmarker
['math'] = '\127[^\127]*UNIQ%-%-math%-[%a%d]+%-QINU[^\127]*\127' -- math stripmarkers використовується в coins_cleanup() та coins_replace_math_stripmarker()
}
--[[
Індійське письмо використовує з'єднувач нульової ширини як модифікатор символів, тому
символи zwj мають бути залишені. Цей шаблон охоплює всі символи unicode
для цих мов:
Devanagari 0900–097F – https://unicode.org/charts/PDF/U0900.pdf
Devanagari extended A8E0–A8FF – https://unicode.org/charts/PDF/UA8E0.pdf
Bengali 0980–09FF – https://unicode.org/charts/PDF/U0980.pdf
Gurmukhi 0A00–0A7F – https://unicode.org/charts/PDF/U0A00.pdf
Gujarati 0A80–0AFF – https://unicode.org/charts/PDF/U0A80.pdf
Oriya 0B00–0B7F – https://unicode.org/charts/PDF/U0B00.pdf
Tamil 0B80–0BFF – https://unicode.org/charts/PDF/U0B80.pdf
Telugu 0C00–0C7F – https://unicode.org/charts/PDF/U0C00.pdf
Kannada 0C80–0CFF – https://unicode.org/charts/PDF/U0C80.pdf
Malayalam 0D00–0D7F – https://unicode.org/charts/PDF/U0D00.pdf
плюс не зовсім необхідні індійські писемсності для Sinhala та Burmese:
Sinhala 0D80-0DFF - https://unicode.org/charts/PDF/U0D80.pdf
Myanmar 1000-109F - https://unicode.org/charts/PDF/U1000.pdf
Myanmar extended A AA60-AA7F - https://unicode.org/charts/PDF/UAA60.pdf
Myanmar extended B A9E0-A9FF - https://unicode.org/charts/PDF/UA9E0.pdf
шаблон використовується в has_invisible_chars() та coins_cleanup()
]]
local indic_script = '[\224\164\128-\224\181\191\224\163\160-\224\183\191\225\128\128-\225\130\159\234\167\160-\234\167\191\234\169\160-\234\169\191]';
--[[===================<< E R R O R M E S S A G I N G >>======================
]]
--[[----------< E R R O R M E S S A G E S U P P L I M E N T S >-------------
I18N для повідомлень, в яким потрібно подавати додатковий специфічний текст, що
опису причину, через яку сталася помилка
]]
local err_msg_supl = {
['char'] = 'недійсний символ', -- |isbn=, |sbn=
['check'] = 'контрольна сума', -- |isbn=, |sbn=
['form'] = 'недійсна форма', -- |isbn=, |sbn=
['group'] = 'недійсна група ідентифікатора', -- |isbn=
['initials'] = 'ініціали', -- Ванкувер
['invalid language code'] = 'недійсний код мови', -- |script-<param>=
['journal'] = 'журнал', -- |bibcode=
['length'] = 'довжина', -- |isbn=, |sbn=
['length accusative'] = 'довжину', -- |bibcode=
['missing comma'] = 'пропущено кому', -- Ванкувер
['missing prefix'] = 'пропущено префікс', -- |script-<param>=
['missing title part'] = 'пропущено частину title', -- |script-<param>=
['name'] = 'ім\'я', -- Ванкувер
['non-Latin char'] = 'нелатинські символи', -- Ванкувер
['prefix'] = 'недійсний префікс', -- |isbn=
['punctuation'] = 'пунктуація', -- Ванкувер
['suffix'] = 'суфікс', -- Ванкувер
['unknown language code'] = 'невідомий код мови', -- |script-<param>=
['value'] = 'значення', -- |bibcode=
['year'] = 'рік', -- |bibcode=
}
--[[
Таблиця умов помилок
Далі йде список ідентифікаторів для різних умов помилок, визначених у коді.
Для кожного ідентифікаторі визначено текст повідомлення для відображення,
категорія сторінок з помилками, до якої включати, а також чи потрібно
повідомлення про помилку відображати як прихований коментар.
У разі будь-яких змін до якірців потрібно робити ідентичні зміни до відповідних
якірців на сторінці Довідка:Помилки посилань на джерела
]]
local error_conditions = {
err_accessdate_missing_url = {
message = '<code class="cs1-code">|access-date=</code> вимагає <code class="cs1-code">|url=</code>',
anchor = 'accessdate_missing_url',
category = 'Помилки CS1: Сторінки з посиланнями на джерела з access-date і без URL',
hidden = false },
err_archive_date_missing_url = {
message = '<code class="cs1-code">|archive-date=</code> вимагає <code class="cs1-code">|archive-url=</code>',
anchor = 'archive_date_missing_url',
category = 'Помилки CS1: Сторінки з помилками посилань на джерела з archive-url',
hidden = false
},
err_archive_missing_date = {
message = '<code class="cs1-code">|archive-url=</code> вимагає <code class="cs1-code">|archive-date=</code>',
anchor = 'archive_missing_date',
category = 'Помилки CS1: Сторінки з помилками посилань на джерела з archive-url',
hidden = false },
err_archive_missing_url = {
message = '<code class="cs1-code">|archive-url=</code> вимагає <code class="cs1-code">|url=</code>',
anchor = 'archive_missing_url',
category = 'Помилки CS1: Сторінки з помилками посилань на джерела з archive-url',
hidden = false },
err_arxiv_missing = {
message = '<code class="cs1-code">|arxiv=</code> є обов\'язковим параметром',
anchor = 'arxiv_missing',
category = 'Помилки CS1: Сторінки з помилками arXiv', -- така ж сама як і в bad arxiv
hidden = false
},
err_asintld_missing_asin = {
message = '<code class="cs1-code">|$1=</code> вимагає <code class="cs1-code">|asin=</code>', -- $1 є ім'ям параметра
anchor = 'asintld_missing_asin',
category = 'Помилки CS1: Сторінки з помилками ASIN TLD',
hidden = false
},
err_bad_arxiv = {
message = 'Перевірте значення <code class="cs1-code">|arxiv=</code>',
anchor = 'bad_arxiv',
category = 'Помилки CS1: Сторінки з помилками arXiv',
hidden = false
},
err_bad_asin = {
message = 'Перевірте значення <code class="cs1-code">|asin=</code>',
anchor = 'bad_asin',
category ='Помилки CS1: Сторінки з помилками ASIN',
hidden = false
},
err_bad_asin_tld = {
message = 'Перевірте значення <code class="cs1-code">|asin-tld=</code>',
anchor = 'bad_asin_tld',
category ='Помилки CS1: Сторінки з помилками ASIN TLD',
hidden = false
},
err_bad_bibcode = {
message = 'Перевірте $1 <code class="cs1-code">|bibcode=</code>', -- $1 є детальним описом повідомлення про помлку
anchor = 'bad_bibcode',
category = 'Помилки CS1: Сторінки з помилками bibcode',
hidden = false
},
err_bad_biorxiv = {
message = 'Перевірте значення <code class="cs1-code">|biorxiv=</code>',
anchor = 'bad_biorxiv',
category = 'Помилки CS1: Сторінки з помилками bioRxiv',
hidden = false
},
err_bad_citeseerx = {
message = 'Перевірте значення <code class="cs1-code">|citeseerx=</code>',
anchor = 'bad_citeseerx',
category = 'Помилки CS1: Сторінки з помилками citeseerx',
hidden = false
},
-- err_bad_date = {
-- message = 'Перевірте значення дати у: $1', -- $1 є списком назв параметрів
-- anchor = 'bad_date',
-- category = 'Помилки CS1: Сторінки з помилками дати',
-- hidden = false
-- }, (додано буде в наступних оновленнях)
err_bad_doi = {
message = 'Перевірте значення <code class="cs1-code">|doi=</code>',
anchor = 'bad_doi',
category = 'Сторінки з помилками DOI',
hidden = false },
err_bad_hdl = {
message = 'Перевірте значення <code class="cs1-code">|hdl=</code>',
anchor = 'bad_hdl',
category = 'Помилки CS1: Сторінки з помилками HDL',
hidden = false
},
err_bad_isbn = {
message = 'Перевірте значення <code class="cs1-code">|isbn=</code>: $1',
anchor = 'bad_isbn',
category = 'Сторінки з помилками ISBN',
hidden = false },
err_bad_ismn = {
message = 'Перевірте значення <code class="cs1-code">|ismn=</code>',
anchor = 'bad_ismn',
category = 'Помилки CS1: Сторінки з помилками ISMN',
hidden = false
},
err_bad_issn = {
message = 'Перевірте значення <code class="cs1-code">|$1issn=</code>', -- $1 є 'e' або '' для eissn або issn
anchor = 'bad_issn',
category = 'Помилки CS1: Сторінки з помилками ISSN',
hidden = false
},
err_bad_jfm = {
message = 'Перевірте значення <code class="cs1-code">|jfm=</code>',
anchor = 'bad_jfm',
category = 'Помилки CS1: Сторінки з помилками JFM',
hidden = false
},
err_bad_jstor = {
message = 'Перевірте значення <code class="cs1-code">|jstor=</code>',
anchor = 'bad_jstor',
category = 'Помилки CS1: Сторінки з помилками JSTOR',
hidden = false
},
err_bad_lccn = {
message = 'Перевірте значення <code class="cs1-code">|lccn=</code>',
anchor = 'bad_lccn',
category = 'Помилки CS1: Сторінки з помилками LCCN',
hidden = false
},
err_bad_medrxiv = {
message = 'Перевірте значення <code class="cs1-code">|medrxiv=</code>',
anchor = 'bad_medrxiv',
category = 'Помилки CS1: Сторінки з помилками medRxiv',
hidden = false
},
err_bad_mr = {
message = 'Перевірте значення <code class="cs1-code">|mr=</code>',
anchor = 'bad_mr',
category = 'Помилки CS1: Сторінки з помилками MR',
hidden = false
},
err_bad_oclc = {
message = 'Перевірте значення <code class="cs1-code">|oclc=</code>',
anchor = 'bad_oclc',
category = 'Помилки CS1: Сторінки з помилками OCLC',
hidden = false
},
err_bad_ol = {
message = 'Перевірте значення <code class="cs1-code">|ol=</code>',
anchor = 'bad_ol',
category = 'Сторінки з помилками OL',
hidden = false },
err_bad_osti = {
message = 'Перевірте значення <code class="cs1-code">|osti=</code>',
anchor = 'bad_osti',
category = 'Помилки CS1: Сторінки з помилками OSTI',
hidden = false
},
err_bad_paramlink = { -- для |title-link=, |author/editor/translator-link=, |series-link=, |episode-link=
message = 'Перевірте значення <code class="cs1-code">|$1=</code>', -- $1 є ім'ям параметра
anchor = 'bad_paramlink',
category = 'Помилки CS1: Сторінки з помилками використання параметра link',
hidden = false
},
err_bad_pmc = {
message = 'Перевірте значення <code class="cs1-code">|pmc=</code>',
anchor = 'bad_pmc',
category = 'Помилки CS1: Сторінки з помилками PMC',
hidden = false
},
err_bad_pmid = {
message = 'Перевірте значення <code class="cs1-code">|pmid=</code>',
anchor = 'bad_pmid',
category = 'Помилки CS1: Сторінки з помилками PMID',
hidden = false
},
err_bad_rfc = {
message = 'Перевірте значення <code class="cs1-code">|rfc=</code>',
anchor = 'bad_rfc',
category = 'Помилки CS1: Сторінки з помилками RFC',
hidden = false
},
err_bad_s2cid = {
message = 'Перевірте значення <code class="cs1-code">|s2cid=</code>',
anchor = 'bad_s2cid',
category = 'Помилки CS1: Сторінки з помилками S2CID',
hidden = false
},
err_bad_sbn = {
message = 'Перевірте значення <code class="cs1-code">|sbn=</code>: $1', -- $1 є детальним описом повідомлення про помлку
anchor = 'bad_sbn',
category = 'Помилки CS1: Сторінки з помилками SBN',
hidden = false
},
err_bad_ssrn = {
message = 'Перевірте значення <code class="cs1-code">|ssrn=</code>',
anchor = 'bad_ssrn',
category = 'Помилки CS1: Сторінки з помилками SSRN',
hidden = false
},
err_bad_url = {
message = 'Перевірте схему <code class="cs1-code">|url=</code>',
anchor = 'bad_url',
category = 'Сторінки з помилками URL',
hidden = false },
err_bad_usenet_id = {
message = 'Перевірте значення <code class="cs1-code">|message-id=</code>',
anchor = 'bad_message_id',
category = 'Помилки CS1: Сторінки з помилками message-id',
hidden = false
},
err_bad_zbl = {
message = 'Перевірте значення <code class="cs1-code">|zbl=</code>',
anchor = 'bad_zbl',
category = 'Помилки CS1: Сторінки з помилками Zbl',
hidden = false
},
err_bare_url_missing_title = {
message = 'Пропущений або порожній <code class="cs1-code">|title=</code>',
anchor = 'bare_url_missing_title',
category = 'Сторінки з URL без назв',
hidden = false },
err_biorxiv_missing = {
message = '<code class="cs1-code">|biorxiv=</code> є обов\'язковим параметром',
anchor = 'biorxiv_missing',
category = 'Помилки CS1: Сторінки з помилками bioRxiv', -- така ж сама як і в bad bioRxiv
hidden = false
},
err_citation_missing_title = {
message = 'Пропущений або порожній <code class="cs1-code">|title=</code>',
anchor = 'citation_missing_title',
category = 'Сторінки з посиланнями на джерела без назв',
hidden = false },
err_citeseerx_missing = {
message = '<code class="cs1-code">|citeseerx=</code> є обов\'язковим параметром',
anchor = 'citeseerx_missing',
category = 'Помилки CS1: Сторінки з помилками citeseerx', -- така ж сама як і в bad citeseerx
hidden = false
},
err_cite_web_url = {
message = 'Пропущений або порожній <code class="cs1-code">|url=</code>',
anchor = 'cite_web_url',
category = 'Сторінки з посиланнями на web-джерела без URL',
hidden = false },
err_class_ignored = {
message = 'Проігноровано <code class="cs1-code">|class=</code>',
anchor = 'class_ignored',
category = 'Помилки CS1: Сторінки з помилками використання параметра class',
hidden = false
},
err_deprecated_params = {
message = 'Cite використовує застарілий параметр <code class="cs1-code">|$1=</code>', -- $1 є ім'ям параметра
anchor = 'deprecated_params',
category = 'Помилки CS1: Сторінки з посиланнями на джерела зі застарілими параметрами',
hidden = false
},
err_disp_name = {
message = 'Недійсний <code class="cs1-code">|$1=$2</code>', -- $1 є ім'ям параметра $2 є значенням параметру
anchor = 'disp_name',
category = 'Помилки CS1:Сторінки з недійсним значенням параметра display-names',
hidden = false,
},
err_doibroken_missing_doi = {
message = '<code class="cs1-code">|$1=</code> вимагає <code class="cs1-code">|doi=</code>', -- $1 є ім'ям параметра
anchor = 'doibroken_missing_doi',
category = 'Сторінки з помилками DOI',
hidden = false
},
err_embargo_missing_pmc = {
message = '<code class="cs1-code">|$1=</code> вимагає <code class="cs1-code">|pmc=</code>', -- $1 є ім'ям параметра
anchor = 'embargo_missing_pmc',
category = 'Помилки CS1: Сторінки з помилками використання параметра PMC embargo',
hidden = false
},
err_empty_citation = {
message = 'Порожнє посилання на джерело',
anchor = 'empty_citation',
category = 'Сторінки з порожніми посиланнями на джерела',
hidden = false },
err_etal = {
message = 'Явне використання «та ін.» у: <code class="cs1-code">|$1=</code>', -- $1 є ім'ям параметра
anchor = 'explicit_et_al',
category = 'Помилки CS1: Сторінки з явним використання та ін.',
hidden = false
},
err_extra_pages = {
message = 'Зайве <code class="cs1-code">|pages=</code> або <code class="cs1-code">|at=</code>',
anchor = 'extra_pages',
category = 'Сторінки з посиланнями на джерела з суперечливими параметрами сторінок',
hidden = false },
err_first_missing_last = {
message = '<code class="cs1-code">|$1=</code> з пропущеним <code class="cs1-code">|$2=</code>', -- $1 є псевдонімом first, $2 є відповідним псевдонімом last
anchor = 'first_missing_last',
category = 'Помилки CS1: Сторінки з пропущеним ім\'ям', -- author, contributor, editor, interviewer, translator
hidden = false
},
err_format_missing_url = {
message = '<code class="cs1-code">|format=</code> вимагає <code class="cs1-code">|url=</code>',
anchor = 'format_missing_url',
category = 'Сторінки з посиланнями на джерела з format і без URL',
hidden = false },
err_invalid_param_val = {
message = 'Недійсний <code class="cs1-code">|$1=$2</code>', -- $1 є ім'ям параметра $2 є значенням параметру
anchor = 'invalid_param_val',
category = 'Помилки CS1:Сторінки з недійсним значенням параметра',
hidden = false
},
err_medrxiv_missing = {
message = '<code class="cs1-code">|medrxiv=</code> є обов\'язковим параметром',
anchor = 'medrxiv_missing',
category = 'Помилки CS1: Сторінки з помилками medRxiv', -- така ж сама як і в bad medRxiv
hidden = false
},
err_missing_name = {
message = 'Пропущено <code class="cs1-code">|$1$2=</code>', -- $1 є видозміненим NameList; $2 є лічильникомr
anchor = 'missing_name',
category = 'Помилки CS1: Сторінки з пропущеним ім\'ям', -- author, contributor, editor, interviewer, translator
hidden = false
},
err_param_access_requires_param = {
message = '<code class="cs1-code">|$1-access=</code> вимагає <code class="cs1-code">|$1=</code>', -- $1 є ім'ям параметра
anchor = 'param_access_requires_param',
category = 'Помилки CS1: Сторінки з помилками використання параметра param-access',
hidden = false
},
err_parameter_ignored = {
message = 'Проігноровано невідомий параметр <code class="cs1-code">|$1=</code>',
anchor = 'parameter_ignored',
category = 'Сторінки з посиланнями на джерела з параметрами, що не підтримуються',
hidden = false },
err_parameter_ignored_suggest = {
message = 'Проігноровано невідомий параметр <code class="cs1-code">|$1=</code> (можливо, <code class="cs1-code">|$2=</code>?)',
anchor = 'parameter_ignored_suggest',
category = 'Сторінки з посиланнями на джерела з параметрами, що не підтримуються',
hidden = false },
err_redundant_parameters = {
message = 'Вказано більш, ніж один $1',
anchor = 'redundant_parameters',
category = 'Сторінки з посиланнями на джерела з зайвими параметрами',
hidden = false },
err_script_parameter = {
message = 'Недійсний <code class="cs1-code">|$1=</code>: $2', -- $1 є назвою параметра $2 є мовним кодом письма або детальною інформацією про помилку
anchor = 'script_parameter',
category = 'Помилки CS1:Сторінки з недійсним значенням параметра script',
hidden = false
},
err_ssrn_missing = {
message = '<code class="cs1-code">|ssrn=</code> є обов\'язковим параметром',
anchor = 'ssrn_missing',
category = 'Помилки CS1: Сторінки з помилками SSRN',
hidden = false
},
err_text_ignored = {
message = 'Текст «$1» проігноровано',
anchor = 'text_ignored',
category = 'Сторінки з посиланнями на джерела з параметрами без назв',
hidden = false },
err_trans_missing_title = {
message = '<code class="cs1-code">|trans-$1=</code> вимагає <code class="cs1-code">|$1=</code> або <code class="cs1-code">|script-$1=</code>',
anchor = 'trans_missing_title',
category = 'Сторінки з посиланнями на джерела з перекладеними назвами без оригіналу',
hidden = false },
err_trans_missing_quote = {
message = '<code class="cs1-code">|trans-quote=</code> вимагає <code class="cs1-code">|quote=</code> або <code class="cs1-code">|script-quote=</code>',
anchor = 'trans_missing_quote',
category = 'Помилки CS1:Сторінки з посиланнями на джерела з перекладеними цитатами без оригіналу',
hidden = false },
err_param_unknown_empty = {
message = 'Cite має пуст$3 невідом$3 параметр$1: $2', -- $1 є «и» або пустим рядком; $2 є списком пустих невідомих параметрів; $3 є «і» або «ий»
anchor = 'param_unknown_empty',
category = 'Помилки CS1: Сторінки з посиланнями на джерела з пустими невідомими параметрами',
hidden = false
},
err_vancouver = {
message = 'Помилка стилю Ванкувера: $1 в імені $2', -- $1 є описом помилки, $2 є н-те ім'я
anchor = 'vancouver',
category = 'Помилки CS1: Сторінки з помилками стилю Ванкувера',
hidden = false
},
err_wikilink_in_url = {
message = 'Назва URL містить вбудоване вікіпосилання',
anchor = 'wikilink_in_url',
category = 'Сторінки з посиланнями на джерела, що мають вікіпосилання у назвах URL',
hidden = false },
--[[--------------------------< M A I N T >-------------------------------------
повідомлення обслуговування не мають значень у пареметрі message (message = nil); в інакшому випадку
структура така сама як у повідомлення про помилку
]]
maint_bibcode = {
message = nil,
anchor = 'bibcode',
category = 'Обслуговування CS1: Сторінки з bibcode, який містить тимчасовий ідентифікатор',
hidden = true,
},
maint_bot_unknown = {
message = nil,
anchor = 'bot:_unknown',
category = 'Обслуговування CS1: bot: Сторінки з посиланнями на джерела, де статус оригінального URL невідомий',
hidden = true,
},
maint_date_auto_xlated = { -- date auto-translation not supported by en.wiki
message = nil,
anchor = 'date_auto_xlated',
category = 'CS1 maint: date auto-translated',
hidden = true,
},
maint_date_format = {
message = nil,
anchor = 'date_format',
category = 'CS1 maint: date format',
hidden = true,
},
maint_date_year = {
message = nil,
anchor = 'date_year',
category = 'CS1 maint: date and year',
hidden = true,
},
maint_doi_ignore = {
message = nil,
anchor = 'doi_ignore',
category = 'Обслуговування CS1: Сторінки із проігнорованими помилками DOI',
hidden = true,
},
maint_doi_inactive = {
message = nil,
anchor = 'doi_inactive',
category = 'Обслуговування CS1: Сторінки із неактивним DOI',
hidden = true,
},
maint_doi_inactive_dated = {
message = nil,
anchor = 'doi_inactive_dated',
category = 'Обслуговування CS1: Сторінки із неактивним DOI станом на $2$3$1', -- $1 є роком, $2 є назвою місяця або пустим рядком, $3 є пробілом або пустим рядком
hidden = true,
},
maint_doi_unflagged_free = {
message = nil,
anchor = 'doi_unflagged_free',
category = 'Обслуговування CS1: Сторінки із непозначеним DOI з безкоштовним доступом',
hidden = true,
},
maint_isbn_ignore = {
message = nil,
anchor = 'ignore_isbn_err',
category = 'Обслуговування CS1: Сторінки із проігнорованими помилками ISBN',
hidden = true,
},
maint_issn_ignore = {
message = nil,
anchor = 'ignore_issn',
category = 'Обслуговування CS1: Сторінки із проігнорованими помилками ISSN',
hidden = true,
},
maint_jfm_format = {
message = nil,
anchor = 'jfm_format',
category = 'Обслуговування CS1: Сторінки з JFM з іншим форматом',
hidden = true,
},
maint_mr_format = {
message = nil,
anchor = 'mr_format',
category = 'Обслуговування CS1: Сторінки з MR з іншим форматом',
hidden = true,
},
maint_pmc_embargo = {
message = nil,
anchor = 'embargo',
category = 'Обслуговування CS1: Сторінки з PMC, в якого вийшов термін ембарго',
hidden = true,
},
maint_pmc_format = {
message = nil,
anchor = 'pmc_format',
category = 'Обслуговування CS1: Сторінки з PMC з іншим форматом',
hidden = true,
},
maint_postscript = {
message = nil,
anchor = 'postscript',
category = 'Обслуговування CS1: Сторінки зі значенням параметра postscript, що збігається зі стандартним значенням в обраному режимі',
hidden = true,
},
maint_unfit = {
message = nil,
anchor = 'unfit',
category = 'Обслуговування CS1:Сторінки з посиланнями на джерела, що мають непридатні URL',
hidden = true,
},
maint_zbl = {
message = nil,
anchor = 'zbl',
category = 'Обслуговування CS1: Сторінки з Zbl, який містить тимчасовий ідентифікатор',
hidden = true,
},
}
--[[--------------------------< I D _ H A N D L E R S >--------------------------------------------------------
Нижче містяться список значень для різних визначених ідентифікаторів. Для кожного
ідентифікатора ми визначаємо різну інформацію, необхідну для правильного відображення
ідентифікатора в посиланні на джерела.
parameters: список псевдонімів параметра для цього ідентифікатора; перша у списку назва є канонічною назвою
link: назва статті Вікіпедії
redirect: місцеве перенаправлення на місцеву назву статті Вікіпедії; у en.wiki, 'ISBN (identifier)' є перенаправленням на 'International Standard Book Number'
q: число q Вікіданих для ідентифікатора
label: текст, що йде перед ідентифікатором; він посилається на статтю Вікіпедії (у цій послідовності):
перенаправлення з id_handlers['<id>'].redirect коли use_identifier_redirects є true
назва статті, що надана Вікіданими для місцевої вікі з id_handlers['<id>'].q
назва місцевої статті з id_handlers['<id>'].link
prefix: перша частина URL, що буде з'єднана з другою частиною, яка зазвичай містить ідентифікатор
suffix: необов'язкова третя частина, що додається після ідентифікатора
encode: true, якщо URI повинен закодувати відсотки; в іншому випадку false
COinS: посилання на ідентифікатор або ключове слово для використання в COinS:
для ідентифікаторів, що зареєстровані у info-uri.info, використовуйте: info:.... де '...' є відвідною назвою (label) ідентифікатора
для ідентифікаторів, що мають ключові слова COinS, використовуйте ключові слова: rft.isbn, rft.issn, rft.eissn
для |asin= та |ol=, які вимагають формування в одне ціле, використовуйте ключове слово: url
для інших, де створюється URL, використовуючи значення в prefix/suffix та #label, використовуйте ключове слово: pre (не перевіряється; будь-який інший текст, ніж 'info', 'rft' або 'url', працюватиме тут)
встановіть nil, щоб лишити ідентифікатор поза межами COinS
separator: символ або текст між label та ідентифікатором у зображуваному посиланні на джерела
id_limit: для тих ідентифікаторів зі встановленими обмеженнями, ця властивість містить верхню межу ліміту
access: використовуйте цей параметр, щоб встановити рівень доступу для всіх використань цього ідентифікатора.
значення має бути дійсним рівнем доступу для ідентифікатора (дивіться ['id-access'] у цьому файлі).
custom_access: щоб увімкнути користувацький рівень доступу для ідентифікатора, зазначте назву параметру, що
буде керувати встановленням рівнів (зазвичай 'id-access')
custom_access_uk: українські назви для параметрів, що зазначені в custom_access
]]
local id_handlers = {
['ARXIV'] = {
parameters = {'arxiv', 'ARXIV', 'eprint'},
link = 'arXiv',
redirect = 'arXiv (ідентифікатор)',
q = 'Q118398',
label = 'arXiv',
prefix = 'https://arxiv.org/abs/',
encode = false,
COinS = 'info:arxiv',
separator = ':',
access = 'free', -- вільний до перегляду
},
['ASIN'] = {
parameters = { 'asin', 'ASIN' },
link = 'Amazon Standard Identification Number',
redirect = 'ASIN (ідентифікатор)',
q = 'Q1753278',
label = 'ASIN',
prefix = 'https://www.amazon.',
COinS = 'url',
separator = ' ',
encode = false;
},
['BIBCODE'] = {
parameters = {'bibcode', 'BIBCODE'},
link = 'Bibcode',
redirect = 'Bibcode (ідентифікатор)',
q = 'Q25754',
label = 'Bibcode',
prefix = 'https://ui.adsabs.harvard.edu/abs/',
encode = false,
COinS = 'info:bibcode',
separator = ':',
custom_access = 'bibcode-access',
custom_access_uk = 'доступ-до-bibcode',
},
['BIORXIV'] = {
parameters = {'biorxiv'},
link = 'bioRxiv',
redirect = 'bioRxiv (ідентифікатор)',
q = 'Q19835482',
label = 'bioRxiv',
prefix = 'https://doi.org/',
COinS = 'pre', -- використовує значення префіксу
access = 'free', -- вільний до перегляду
encode = true,
separator = ' ',
},
['CITESEERX'] = {
parameters = {'citeseerx'},
link = 'CiteSeerX',
redirect = 'CiteSeerX (ідентифікатор)',
q = 'Q2715061',
label = 'CiteSeerX',
prefix = 'https://citeseerx.ist.psu.edu/viewdoc/summary?doi=',
COinS = 'pre', -- використовує значення префіксу
access = 'free', -- вільний до перегляду
encode = true,
separator = ' ',
},
['DOI'] = { -- Використовується InternetArchiveBot
parameters = { 'doi', 'DOI'},
link = 'Цифровий ідентифікатор об\'єкта',
redirect = 'doi (ідентифікатор)',
q = 'Q25670',
label = 'doi',
prefix = 'https://doi.org/',
COinS = 'info:doi',
separator = ':',
encode = true,
custom_access = 'doi-access',
custom_access_uk = 'доступ-до-doi',
},
['EISSN'] = {
parameters = {'eissn', 'EISSN'},
link = 'International Standard Serial Number#Electronic ISSN',
redirect = 'eISSN (ідентифікатор)',
q = 'Q46339674',
label = 'eISSN',
prefix = 'https://www.worldcat.org/issn/',
COinS = 'rft.eissn',
encode = false,
separator = ' ',
},
['HDL'] = {
parameters = { 'hdl', 'HDL' },
link = 'Handle System',
redirect = 'hdl (ідентифікатор)',
q = 'Q3126718',
label = 'hdl',
prefix = 'https://hdl.handle.net/',
COinS = 'info:hdl',
separator = ':',
encode = true,
custom_access = 'hdl-access',
custom_access_uk = 'доступ-до-hdl',
},
['ISBN'] = { -- Використовується InternetArchiveBot
parameters = {'isbn', 'ISBN', 'isbn13', 'ISBN13'},
link = 'International Standard Book Number',
redirect = 'ISBN (ідентифікатор)',
q = 'Q33057',
label = 'ISBN',
prefix = 'Special:BookSources/',
COinS = 'rft.isbn',
separator = ' ',
},
['ISMN'] = {
parameters = {'ismn', 'ISMN'},
link = 'International Standard Music Number',
redirect = 'ISMN (ідентифікатор)',
q = 'Q1666938',
label = 'ISMN',
prefix = '', -- зараз не використовується;
COinS = nil, -- nil, бо не можнмо використати pre, rft чи info:
separator = ' ',
},
['ISSN'] = {
parameters = {'issn', 'ISSN'},
link = 'International Standard Serial Number',
redirect = 'ISSN (ідентифікатор)',
q = 'Q131276',
label = 'ISSN',
prefix = 'https://www.worldcat.org/issn/',
COinS = 'rft.issn',
encode = false,
separator = ' ',
},
['JFM'] = {
parameters = {'jfm', 'JFM'},
link = 'Jahrbuch über die Fortschritte der Mathematik',
redirect = 'JFM (ідентифікатор)',
q = '',
label = 'JFM',
prefix = 'https://zbmath.org/?format=complete&q=an:',
COinS = 'pre', -- використовує значення префіксу
encode = true,
separator = ' ',
},
['JSTOR'] = {
parameters = {'jstor', 'JSTOR'},
link = 'JSTOR',
redirect = 'JSTOR (ідентифікатор)',
q = 'Q1420342',
label = 'JSTOR',
prefix = 'https://www.jstor.org/stable/',
COinS = 'pre', -- використовує значення префіксу
encode = false,
separator = ' ',
custom_access = 'jstor-access',
custom_access_uk = 'доступ-до-jstor',
},
['LCCN'] = {
parameters = {'lccn', 'LCCN'},
link = 'Library of Congress Control Number',
redirect = 'LCCN (ідентифікатор)',
q = 'Q620946',
label = 'LCCN',
prefix = 'https://lccn.loc.gov/',
COinS = 'info:lccn',
encode = false,
separator = ' ',
},
['MEDRXIV'] = {
parameters = {'medrxiv'},
link = 'medRxiv',
redirect = 'medRxiv (ідентифікатор)',
q = 'Q58465838',
label = 'medRxiv',
prefix = 'https://www.medrxiv.org/content/',
COinS = 'pre', -- використовує значення префіксу
access = 'free', -- вільний до перегляду
encode = false,
separator = ' ',
},
['MR'] = {
parameters = {'mr', 'MR'},
link = 'Mathematical Reviews',
redirect = 'MR (ідентифікатор)',
q = 'Q211172',
label = 'MR',
prefix = 'https://mathscinet.ams.org/mathscinet-getitem?mr=',
COinS = 'pre', -- використовує значення префіксу
encode = true,
separator = ' ',
},
['OCLC'] = {
parameters = {'oclc', 'OCLC'},
link = 'OCLC',
redirect = 'OCLC (ідентифікатор)',
q = 'Q190593',
label = 'OCLC',
prefix = 'https://www.worldcat.org/oclc/',
COinS = 'info:oclcnum',
encode = true,
separator = ' ',
id_limit = 10100000000,
},
['OL'] = {
parameters = { 'ol', 'OL' },
link = 'Open Library',
redirect = 'OL (ідентифікатор)',
q = 'Q1201876',
label = 'OL',
prefix = 'https://openlibrary.org/',
COinS = 'url',
separator = ' ',
encode = true,
custom_access = 'ol-access',
custom_access_uk = 'доступ-до-ol',
},
['OSTI'] = {
parameters = {'osti', 'OSTI'},
link = 'Office of Scientific and Technical Information',
redirect = 'OSTI (ідентифікатор)',
q = 'Q2015776',
label = 'OSTI',
prefix = 'https://www.osti.gov/biblio/',
COinS = 'pre', -- використовує значення префіксу
encode = true,
separator = ' ',
id_limit = 23010000,
custom_access = 'osti-access',
custom_access_uk = 'доступ-до-osti',
},
['PMC'] = {
parameters = {'pmc', 'PMC'},
link = 'PubMed Central',
redirect = 'PMC (ідентифікатор)',
q = 'Q229883',
label = 'PMC',
prefix = 'https://www.ncbi.nlm.nih.gov/pmc/articles/PMC',
suffix = '',
COinS = 'pre', -- використовує значення префіксу
encode = true,
separator = ' ',
id_limit = 10900000,
access = 'free', -- вільний до перегляду
},
['PMID'] = {
parameters = {'pmid', 'PMID'},
link = 'PubMed Identifier',
redirect = 'PMID (ідентифікатор)',
q = 'Q2082879',
label = 'PMID',
prefix = 'https://pubmed.ncbi.nlm.nih.gov/',
COinS = 'info:pmid',
encode = false,
separator = ' ',
id_limit = 38400000,
},
['RFC'] = {
parameters = {'rfc', 'RFC'},
link = 'Request for Comments',
redirect = 'RFC (ідентифікатор)',
q = 'Q212971',
label = 'RFC',
prefix = 'https://tools.ietf.org/html/rfc',
COinS = 'pre', -- використовує значення префіксу
encode = false,
separator = ' ',
id_limit = 9300,
access = 'free', -- вільний до перегляду
},
['SBN'] = {
parameters = {'sbn', 'SBN'},
link = 'Standard Book Number', -- перенаправляє на International_Standard_Book_Number#History
redirect = 'SBN (ідентифікатор)',
label = 'SBN',
prefix = 'Special:BookSources/0-', -- префікс має нулі на початку, що необхідні для перетворення 9-значного sbn на 10-значний isbn
COinS = nil, -- nil, бо не можнмо використати pre, rft чи info:
separator = ' ',
},
['SSRN'] = {
parameters = {'ssrn', 'SSRN'},
link = 'Social Science Research Network',
redirect = 'SSRN (ідентифікатор)',
q = 'Q7550801',
label = 'SSRN',
prefix = 'https://papers.ssrn.com/sol3/papers.cfm?abstract_id=',
COinS = 'pre', -- використовує значення префіксу
encode = true,
separator = ' ',
id_limit = 4700000,
custom_access = 'ssrn-access',
custom_access_uk = 'доступ-до-ssrn'
},
['S2CID'] = {
parameters = {'s2cid', 'S2CID'},
link = 'Semantic Scholar',
redirect = 'S2CID (ідентифікатор)',
q = 'Q22908627',
label = 'S2CID',
prefix = 'https://api.semanticscholar.org/CorpusID:',
COinS = 'pre', -- використовує значення префіксу
encode = false,
separator = ' ',
id_limit = 268000000,
custom_access = 's2cid-access',
custom_access_uk = 'доступ-до-s2cid'
},
['USENETID'] = {
parameters = {'message-id'},
link = 'Usenet',
redirect = 'Usenet (ідентифікатор)',
q = 'Q193162',
label = 'Usenet:',
prefix = 'news:',
encode = false,
COinS = 'pre', -- використовує значення префіксу
separator = ' ',
},
['ZBL'] = {
parameters = {'zbl', 'ZBL' },
link = 'Zentralblatt MATH',
redirect = 'Zbl (ідентифікатор)',
q = 'Q190269',
label = 'Zbl',
prefix = 'https://zbmath.org/?format=complete&q=an:',
COinS = 'pre', -- використовує значення префіксу
encode = true,
separator = ' ',
},
}
return {
use_identifier_redirects = use_identifier_redirects, -- булеві значення в налаштуваннях, що вгорі цього модуля
date_name_auto_xlate_enable = date_name_auto_xlate_enable,
aliases = aliases,
date_names = date_names,
defaults = defaults,
err_msg_supl = err_msg_supl,
error_conditions = error_conditions,
et_al_patterns = et_al_patterns,
id_handlers = id_handlers,
indic_script = indic_script,
keywords_lists = keywords_lists,
keywords_xlate = keywords_xlate,
known_free_doi_registrants_t = build_free_doi_registrants_table(),
messages = messages,
prop_cats = prop_cats,
presentation = presentation,
single_letter_2nd_lvl_domains_t = single_letter_2nd_lvl_domains_t,
stripmarkers = stripmarkers,
script_lang_codes = script_lang_codes,
lang_tag_remap = lang_tag_remap,
this_wiki_code = this_wiki_code,
title_types = title_types,
uncategorized_namespaces = uncategorized_namespaces_t,
uncategorized_subpages = uncategorized_subpages,
inter_wiki_map = inter_wiki_map,
mw_languages_by_tag_t = mw_languages_by_tag_t,
citation_class_map_t = citation_class_map_t
};