Модуль:Citation/CS1/Configuration/пісочниця
Зовнішній вигляд
![]() | Ця сторінка — пісочниця для модуля Модуль:Citation/CS1/Configuration (різн.). |
![{{i}}](http://upload.wikimedia.org/wikipedia/commons/thumb/1/19/Test_Template_Info-Icon.svg/50px-Test_Template_Info-Icon.svg.png)
Наступні файли є частиною модуля, що забезпечує підтримку шаблонів цитувань cs1|2:
Документація вище включена з Модуль:Citation/CS1/Configuration/пісочниця/документація. (ред. | історія) Дописувачі можуть експериментувати на підсторінках пісочниці (ред. | різн.) та тести (створити) цього модуля. Будь ласка, додавайте категорії до підсторінки /CS1/Configuration/пісочниця/документація. Підсторінки цієї сторінки. |
--[[
Історія змін з моменту від останньої синхронізації: 2025-01-22
2025-01-22: Доуніфікація назв категорій
]]
--[[--------------------------< S E T T I N G S >--------------------------------------------------------------
булеві налаштування, що керують різними речами. Ці налаштовування розташованні тут, щоб легше їх знайти
]]
local use_identifier_redirects = false; -- коли true, то використовує ім'я перенаправлення для посилань під назвою ідентифікатора; завжди true в en.wiki; вимкнути, бо не створено перенаправлення
local enable_sort_keys = false; -- коли true, то модуль додає ключі сортування за простором назв для посилань на категорії помилок та обслуговування (поки так)
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>}}
]]
local 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, що знайдені в назвах сторінок, які ми не повинні категоризувати
--[[
У en.wiki грецькі символи використовуються як ключі сортування для певних елементів в категорії, щоб вони
розміщувалися в кінці сторінки категорії. Дивіться :en:Wikipedia:Categorization#Sort_keys. Це добре працює для
en.wiki, бо англійська мова використовує лантиське письмо. Це може добре не працювати для інших мов. У en.wiki it
надається перевага розміщенню вмісту з певнгих просторів назв в кінці списку категорії, тому модуль додає ключі
сортування до посилань на категорії помилок і обслуговування, коли шаблон cs1|2 використано на сторінці того
простору назв.
i18n: якщо це добре не працює для вашої мови, то встановість значення false для <enable_sort_keys>.
]]
local name_space_sort_keys = { -- ключі сортування, що використовуються з цими просторами:
[4] = 'ω', -- вікіпедія; омега
[10] = 'τ', -- шаблон; тау
[118] = 'Δ', -- стаття в Інкубаторі; дельта
['other'] = 'ο', -- всі інші простори назв, що не є обговорення, окрім основного простору (статті); омікрон
}
--[[
Таблиця перекладів
Далі йдуть фіксовані тексти, що використовуються як частини посилання на
джерело. Вони відділені від головного модуля, щоб спростити переклад.
]]
local messages = {
['published'] = 'опубліковано $1',
['lay summary'] = 'Загальний огляд',
['retrieved'] = 'Процитовано $1',
['dsturetrieved'] = 'Дата звернення: $1',
['inactive'] = 'неактивний',
['archived-dead'] = 'Архів $1 за $2',
['archived-live'] = '$1 оригіналу за $2',
['archived-unfit'] = 'Архів оригіналу за ',
['archived'] = 'Архів',
['by'] = '', -- contributions to authored works: introduction, foreword, afterword
['cartography'] = 'Картографування: $1',
['inset'] = 'Карта-врізка: $1',
['interview'] = 'Інтерв\'юери: $1',
['newsgroup'] = '[[Група новин]]: $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',
['type'] = ' ($1)', -- для titletype
['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?
['nopp'] = '$1 $2'; -- page(s) без префіксу; $1 є sepc
['dstu-p-prefix'] = "$1 C. $2", -- $1 є sepc (дсту варіант)
['dstu-pp-prefix'] = "$1 C. $2", -- $1 є sepc (дсту варіант)
['p-prefix'] = "$1 с. $2", -- $1 є sepc
['pp-prefix'] = "$1 с. $2", -- $1 є sepc
['dstu-j-page(s)'] = ' : $1', -- те саме і для page та pages (дсту варіант)
['j-page(s)'] = ': $1', -- те саме і для page та pages
['sheet'] = '$1 Аркуш $2', -- $1 є sepc
['sheets'] = '$1 Аркуші $2', -- $1 є sepc
['dstu-j-sheet'] = ' : Аркуш $1', -- (дсту варіант)
['dstu-j-sheets'] = ' : Аркуші $1', -- (дсту варіант)
['j-sheet'] = ': Аркуш $1',
['j-sheets'] = ': Аркуші $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 sk'] = '[[Category:$1|$2]]', -- $1 є назвою категорії; $2 є ключем сортування за простором назв
[':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>',
['accessdate'] = '<span class="reference-accessdate">$1$2</span>', -- щоб дозволити редакторам приховати accessdate, використовуючи особистий CSS
['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
['dstu-trans-quoted-title'] = "= $1",
['dstu-trans-italic-title'] = "= ''$1''",
['format'] = ' <span class="cs1-format">($1)</span>', -- для |format=, |chapter-format= тощо.
['interwiki'] = ' <span class="cs1-format">[$1]</span>', -- для interwiki-language-linked author, editor тощо
['interproj'] = ' <span class="cs1-format">[у $1]</span>', -- для interwiki-project-linked author, editor тощо (підтримуються :d: та :s: ; :w: ігнорується)
-- різні рівні доступу, для параметрів |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='id-lock-free', title='Безкоштовний доступ'}, -- класи визначені у Module:Citation/CS1/styles.css
['registration'] = {class='id-lock-registration', title='Потрібна безкоштовна реєстрація'},
['limited'] = {class='id-lock-limited', title='Безкоштовний доступ за умови пробної версії, а, зазвичай, потрібна підписка'},
['subscription'] = {class='id-lock-subscription', title='Потрібна платна підписка'},
['interwiki-icon'] = '<span class="$1" title="$2">$3</span>',
['class-wikisource'] = 'cs1-ws-icon',
['ocins'] = '<span title="$1" class="Z3988"></span>',
['parameter'] = '<code class="cs1-code">|$1=</code>',
['ref-lang'] = '<span class="$1" title="$2">$3</span>', --для огортання |language=, коли вказано код мови
['ref-text'] = '<span class="$1">$2</span>', --для огортання назви мови, що отримана з |language=, коли вказано код мови та стиль ДСТУ
['italic-title'] = "''$1''",
['ps_cs1'] = '.', -- завершальний символ (postscript) стилю CS1
['ps_cs2'] = '', -- завершальний символ (postscript) стилю CS2 (пустий рядок (string))
['ps_dstu2006'] = '.', -- завершальний символ (postscript) стилю DSTU2006
['quoted-text'] = '<q>$1</q>', -- для огортання вмісту |quote=
['quoted-title'] = '$1',
['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'] = ', ', -- використовується для |language= коли список має 3+ об'єкта, окрім останнього роздільника, який використовує sep_list_pair
['sep_list_pair'] = ' та ', -- використовується для |language= коли список має 2 об'єкта
['trans-italic-title'] = "[''$1'']",
['trans-quoted-title'] = "[$1]", -- for |trans-title= and |trans-quote=
['vol-bold'] = '$1 <b>$2</b>', -- sepc, volume; для жирного журнального посилання; для інших посилання: ['vol'] у messages{}
}
-- Таблиця словника аргументів
local aliases = {
['AccessDate'] = {'access-date', 'accessdate', 'дата-доступу'},
['Agency'] = {'agency', 'агентство', 'агенство'},
['ArchiveDate'] = {'archive-date', 'archivedate', 'дата-архіву'},
['ArchiveFormat'] = {'archive-format', 'формат-архіву'},
['ArchiveURL'] = {'archive-url', 'archiveurl', 'url-архіву'},
['ArticleNumber'] = {'article-number', 'номер-статті'},
['ASINTLD'] = {'asin-tld', 'ASIN-TLD' },
['At'] = {'at', 'частина-джерела', 'у'},
['Authors'] = {'authors', 'people', 'credits', 'автори', 'особи', 'титри'},
['AuthorSeparator'] = {'author-separator', 'роздільник-авторів'},
['AuthorNameSeparator'] = {'author-name-separator', 'роздільник-імен-авторів'},
['BookTitle'] = {'book-title', 'booktitle', 'назва-книги'},
['Cartography'] = {'cartography', 'картографія'},
['Chapter'] = {'chapter', 'contribution', 'entry', 'article', 'section', 'розділ',
'внесок', 'запис', 'стаття', 'секція'},
['ChapterFormat'] = {'chapter-format', 'contribution-format', 'entry-format',
'article-format', 'section-format', 'формат-розділу', 'формат-внеску',
'формат-запису', 'формат-статті', 'формат-секції'},
['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 та ідентифікатор arxiv
['Coauthors'] = {'coauthors', 'coauthor', 'співавтори', 'співавтор' },
['Conference'] = {'conference', 'конференція', 'event', 'подія'},
['ConferenceFormat'] = { 'conference-format', 'формат-конференції' },
['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', "показувати-авторів", "показувати-суб'єктів"},
['DisplayContributors'] = {'display-contributors', "показувати-дописувачів"},
['DisplayEditors'] = {"display-editors", "displayeditors", "показувати-редакторів"},
['DisplayInterviewers'] = {'display-interviewers', "показувати-інтерв'юерів"},
['DisplayTranslators'] = {'display-translators', "показувати-перекладачів"},
['Docket'] = 'docket',
['DoiBroken'] = {'doi-broken-date', 'doi_inactivedate', 'doi_brokendate', 'DoiBroken', 'поламана-дата-doi'},
['Edition'] = {'edition', 'видання'},
['Editors'] = {'editors', 'редактори'},
['EditorSeparator'] = 'editor-separator',
['EditorNameSeparator'] = 'editor-name-separator',
['Embargo'] = {'pmc-embargo-date', 'Embargo', 'embargo', 'дата-ембарго-pmc'},
['Encyclopedia'] = {'encyclopedia', 'encyclopaedia', 'dictionary', 'енциклопедія', 'словник'}, -- тільки для шаблону cite encyclopedia
['Episode'] = {'episode', 'епізод'}, -- тільки для шаблону cite serial TODO: make available to cite episode?
['Format'] = {'format', 'формат'},
['ID'] = {'id', 'ID'},
['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', 'мережа', 'канал'},
['Newsgroup'] = {'newsgroup', 'група-новин'}, -- тільки для шаблону cite newsgroup
['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', 'журнал', 'газета', 'праця', 'вебсайт',
'веб-сайт', 'періодика'},
['Place'] = {'place', 'location', 'місце', 'розміщення', 'знаходження'},
['PostScript'] = {'postscript', 'завершення'},
['PublicationDate'] = {'publicationdate', 'publication-date', 'дата-публікації' },
['PublicationPlace'] = {'publication-place', 'publicationplace', 'місце-публікації' },
['PublisherName'] = {'publisher', 'institution', 'видавець', 'видавництво', 'установа'},
['Quote'] = {'quote', 'quotation', 'цитата', 'цитування'},
['QuotePage'] = {'quote-page', 'сторінка-цитати'},
['QuotePages'] = {'quote-pages', 'сторінки-цитати'},
['Ref'] = {'ref', 'Ref', 'анкер', 'якірець'},
['Scale'] = {'scale', 'масштаб'},
['ScriptChapter'] = {'script-chapter', 'script-contribution', 'script-entry',
'script-article', 'script-section', 'письмо-розділу', 'письмо-внеску',
'письмо-запису', 'письмо-статті', 'письмо-секції'},
['ScriptEncyclopedia'] = {'script-encyclopedia', 'script-encyclopaedia',
'письмо-енциклопедії' }, -- тільки для шаблону cite encyclopedia
['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
['Sheets'] = {'sheets', 'аркуші'}, -- тільки для шаблону cite map
['Station'] = {'station', 'станція'},
['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', 'стенограма'},
['TranscriptFormat'] = {'transcript-format', 'формат-стенограми'},
['TranscriptURL'] = {'transcript-url', 'transcripturl', 'url-стенограми'},
['TransEncyclopedia'] = {'trans-encyclopedia', 'trans-encyclopaedia', 'переклад-енциклопедії'}, -- тільки для шаблону cite encyclopedia
['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", "суб'єкт#-маска", "суб'єкт-маска#"},
['ContributorList-First'] = {'contributor-first#', 'contributor#-first',
'contributor-given#', 'contributor#-given', "дописувач#-ім'я", "дописувач-ім'я#"},
['ContributorList-Last'] = {'contributor-last#', 'contributor#-last',
'contributor-surname#', 'contributor#-surname', 'contributor#',
"дописувач#-прізвище", "дописувач-прізвище#", "дописувач#"},
['ContributorList-Link'] = {'contributor-link#', 'contributor#-link',
"дописувач#-посилання", "дописувач-посилання#"},
['ContributorList-Mask'] = {'contributor-mask#', 'contributor#-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',
"перекладач#-маска", "перекладач-маска#"},
}
--[[--------------------------< P U N C T _ S K I P >---------------------------
builds a table of parameter names that the extraneous terminal punctuation check should not check.
]]
local punct_meta_params = { -- table of aliases[] keys (meta parameters); each key has a table of parameter names for a value
'BookTitle', 'Chapter', 'ScriptChapter', 'ScriptTitle', 'Title', 'TransChapter', 'Transcript', 'TransMap', 'TransTitle', -- title-holding parameters
'AuthorList-Mask', 'ContributorList-Mask', 'EditorList-Mask', 'InterviewerList-Mask', 'TranslatorList-Mask',
'AuthorSeparator', 'AuthorNameSeparator', 'EditorSeparator', 'EditorNameSeparator', -- name-list mask may have name separators
'PostScript', 'Quote', 'ScriptQuote', 'TransQuote', 'Ref', -- miscellaneous
'ArchiveURL', 'ChapterURL', 'ConferenceURL', 'MapURL', 'TranscriptURL', 'URL', -- URL-holding parameters
}
local url_meta_params = { -- table of aliases[] keys (meta parameters); each key has a table of parameter names for a value
'ArchiveURL', 'ChapterURL', 'ConferenceURL', 'ID', 'LayURL', 'MapURL', 'TranscriptURL', 'URL', -- parameters allowed to hold urls
'Page', 'Pages', 'At', 'QuotePage', 'QuotePages', -- insource locators allowed to hold urls
}
local function build_skip_table (skip_t, meta_params)
for _, meta_param in ipairs (meta_params) do -- for each meta parameter key
local params = aliases[meta_param]; -- get the parameter or the table of parameters associated with the meta parameter name
if 'string' == type (params) then
skip_t[params] = 1; -- just a single parameter
else
for _, param in ipairs (params) do -- get the parameter name
skip_t[param] = 1; -- add the parameter name to the skip table
local count;
param, count = param:gsub ('#', ''); -- remove enumerator marker from enumerated parameters
if 0 ~= count then -- if removed
skip_t[param] = 1; -- add param name without enumerator marker
end
end
end
end
return skip_t;
end
local punct_skip = {};
local url_skip = {};
--[[--------------------------< 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', 'media', 'org', 'today'};
--[[-----------< S P E C I A L C A S E T R A N S L A T I O N S >------------
Ця таблиця лише для підтримки інтернаціоналізації. Переклади в
цій таблиці використовуються, наприклад, для повідомлень про помилки,
назв категорії тощо. Вони витягуються з ключа псевдоніма англійською
мовою. Можуть бути й інші випадки, коли ці таблиці перекладу можуть
бути корисними.
]]
local is_Latn = 'A-Za-z\195\128-\195\150\195\152-\195\182\195\184-\198\191\199\132-\201\143\225\184\128-\225\187\191';
local special_case_translation = {
['AuthorList'] = 'authors list', -- used to assemble maintenance category names
['ContributorList'] = 'contributors list', -- translation of these names plus translation of the base maintenance category names in maint_cats{} table below
['EditorList'] = 'editors list', -- must match the names of the actual categories
['InterviewerList'] = 'interviewers list', -- this group or translations used by name_has_ed_markup() and name_has_mult_names()
['TranslatorList'] = 'translators list',
-- Lua patterns to match pseudo-titles used by InternetArchiveBot and others as placeholder for unknown |title= value
['archived_copy'] = { -- used with CS1 maint: Archive[d] copy as title
['en'] = '^archived?%s+copy$', -- for English; translators: keep this because templates imported from en.wiki
['local'] = '^архівована%s+копія$', -- translators: replace ['local'] = nil with lowercase translation only when bots or tools create generic titles in your language
},
-- Lua patterns to match generic titles; usually created by bots or reference filling tools
-- translators: replace ['local'] = nil with lowercase translation only when bots or tools create generic titles in your language
-- generic titles and patterns in this table should be lowercase only
-- leave ['local'] nil except when there is a matching generic title in your language
-- boolean 'true' for plain-text searches; 'false' for pattern searches
['generic_titles'] = {
['accept'] = {
},
['reject'] = {
{['en'] = {'^wayback%s+machine$', false}, ['local'] = nil},
{['en'] = {'are you a robot', true}, ['local'] = nil},
{['en'] = {'hugedomains', true}, ['local'] = nil},
{['en'] = {'^[%(%[{<]?no +title[>}%]%)]?$', false}, ['local'] = nil},
{['en'] = {'page not found', true}, ['local'] = nil},
{['en'] = {'subscribe to read', true}, ['local'] = nil},
{['en'] = {'^[%(%[{<]?unknown[>}%]%)]?$', false}, ['local'] = nil},
{['en'] = {'website is for sale', true}, ['local'] = nil},
{['en'] = {'^404', false}, ['local'] = nil},
{['en'] = {'internet archive wayback machine', true}, ['local'] = nil},
{['en'] = {'log into facebook', true}, ['local'] = nil},
{['en'] = {'login • instagram', true}, ['local'] = nil},
{['en'] = {'redirecting...', true}, ['local'] = nil},
{['en'] = {'usurped title', true}, ['local'] = nil}, -- додається GreenC bot
{['en'] = {'webcite query result', true}, ['local'] = nil},
{['en'] = {'wikiwix\'s cache', true}, ['local'] = nil},
}
},
-- boolean 'true' for plain-text searches, search string must be lowercase only
-- boolean 'false' for pattern searches
-- leave ['local'] nil except when there is a matching generic name in your language
['generic_names'] = {
['accept'] = {
{['en'] = {'%[%[[^|]*%(author%) *|[^%]]*%]%]', false}, ['local'] = nil},
},
['reject'] = {
{['en'] = {'about us', true}, ['local'] = {'про нас', true}},
{['en'] = {'%f[%a][Aa]dvisor%f[%A]', false}, ['local'] = nil},
{['en'] = {'allmusic', true}, ['local'] = nil},
{['en'] = {'%f[%a][Aa]uthor%f[%A]', false}, ['local'] = nil},
{['en'] = {'^[Bb]ureau$', false}, ['local'] = nil},
{['en'] = {'business', true}, ['local'] = nil},
{['en'] = {'cnn', true}, ['local'] = nil},
{['en'] = {'collaborator', true}, ['local'] = nil},
{['en'] = {'^[Cc]ompany$', false}, ['local'] = nil},
{['en'] = {'contributor', true}, ['local'] = nil},
{['en'] = {'contact us', true}, ['local'] = nil},
{['en'] = {'correspondent', true}, ['local'] = nil},
{['en'] = {'^[Dd]esk$', false}, ['local'] = nil},
{['en'] = {'directory', true}, ['local'] = nil},
{['en'] = {'%f[%(%[][%(%[]%s*eds?%.?%s*[%)%]]?$', false}, ['local'] = nil},
{['en'] = {'[,%.%s]%f[e]eds?%.?$', false}, ['local'] = nil},
{['en'] = {'^eds?[%.,;]', false}, ['local'] = nil},
{['en'] = {'^[%(%[]%s*[Ee][Dd][Ss]?%.?%s*[%)%]]', false}, ['local'] = nil},
{['en'] = {'%f[%a][Ee]dited%f[%A]', false}, ['local'] = nil},
{['en'] = {'%f[%a][Ee]ditors?%f[%A]', false}, ['local'] = nil},
{['en'] = {'%f[%a][Ee]mail%f[%A]', false}, ['local'] = nil},
{['en'] = {'facebook', true}, ['local'] = nil},
{['en'] = {'google', true}, ['local'] = nil},
{['en'] = {'^[Gg]roup$', false}, ['local'] = nil},
{['en'] = {'home page', true}, ['local'] = nil},
{['en'] = {'^[Ii]nc%.?$', false}, ['local'] = nil},
{['en'] = {'instagram', true}, ['local'] = nil},
{['en'] = {'interviewer', true}, ['local'] = nil},
{['en'] = {'^[Ll]imited$', false}, ['local'] = nil},
{['en'] = {'linkedIn', true}, ['local'] = nil},
{['en'] = {'^[Nn]ews$', false}, ['local'] = nil},
{['en'] = {'[Nn]ews[ %-]?[Rr]oom', false}, ['local'] = nil},
{['en'] = {'pinterest', true}, ['local'] = nil},
{['en'] = {'policy', true}, ['local'] = nil},
{['en'] = {'privacy', true}, ['local'] = nil},
{['en'] = {'reuters', true}, ['local'] = nil},
{['en'] = {'translator', true}, ['local'] = nil},
{['en'] = {'tumblr', true}, ['local'] = nil},
{['en'] = {'twitter', true}, ['local'] = nil},
{['en'] = {'site name', true}, ['local'] = nil},
{['en'] = {'statement', true}, ['local'] = nil},
{['en'] = {'submitted', true}, ['local'] = nil},
{['en'] = {'super.?user', false}, ['local'] = nil},
{['en'] = {'%f['..is_Latn..'][Uu]ser%f[^'..is_Latn..']', false}, ['local'] = nil},
{['en'] = {'verfasser', true}, ['local'] = nil},
}
}
}
--[[--------------------------< 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']; this will unconditionally overwrite manual translations
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_long_nom'] = {[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] = 'Різдво'}, -- використовується в перекладі дат; скопіюйте 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'] = {},
}
local title_object = mw.title.getCurrentTitle();
local content; -- done this way so that unused templates appear in unused-template-reports; self-transcluded makes them look like they are used
if 10 ~= title_object.namespace then -- all namespaces except Template
content = title_object:getContent() or ''; -- get the content of the article or ''; new pages edited w/ve do not have 'content' until saved; ve does not preview; phab:T221625
end
-- Значення параметрів за замовчуванням
local defaults = {
-- ['Separator'] = '.',
['AuthorSeparator'] = ';',
['EditorSeparator'] = ';',
['NameSeparator'] = ',',
}
--[[
Шаблони (патерни) для пошуку зайвого тексту в |volume=, |issue=, |page=, |pages=
]]
local vol_iss_pg_patterns = {
good_ppattern = '^P[^%.PpGg]', -- нормально починати з великої літери P: P7 (page 7 of section P), але не p123 (page 123); TODO: this allows 'Pages' which it should not
bad_ppatterns = { -- шаблони (патерни) для |page= та |pages=
'^[Pp][PpGg]?%.?[ %d]',
'^[Pp][Pp]?%. ', -- з шаблонів {{p.}} та {{pp.}}
'^[Pp]ages?',
'^[Pp]gs.?',
'^[Cc]торінк[аи]',
'^[Сс][СсТтОоРр]?%.?[ %d]',
'^[Сс]тор.?',
},
vi_patterns_t = { -- шаблони (патерни) для |volume=
'^volumes?',
'^vols?[%.:=]?',
'^томи?',
'^[Тт][%.:=]?',
-- шаблони (патерни) для |issue=
'^issues?',
'^iss[%.:=]?',
'^numbers?',
'^nos?%A', -- не здійснювати збігів із «november» або «nostradamus»
'^nr[%.:=]?',
'^n[%.:= ]', -- може бути дійсним значенням без роздільника (символ пробілу є символом роздільника тут)
'^n°', -- 'n' зі знаком градуса (U+00B0)
'^№', -- precomposed unicode numero character (U+2116)
'^видання',
'^вид[%.:=]?',
}
}
--[[--------------------------< K E Y W O R D S >-------------------------------
Ці таблиці містять ключові слова для тих параметрів, що мають визначений список допустимих ключових слів.
]]
--[[-------------------< K E Y W O R D S T A B L E >--------------------------
Це список ключових слів; кожен ключ у списку пов'язаний із таблицею
синонімічних ключових слів, що можуть бути з інших мов.
Для 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', 'так', 'т'}, -- |deadurl=, |no-tracking=, |no-pp= -- Використовується InternetArchiveBot
['afterword'] = {'afterword', 'післямова'}, -- |contribution=
['bot: unknown'] = {'bot: unknown'}, -- |url-status= -- Використовується InternetArchiveBot
['cs1'] = {'cs1', 'сп1'}, -- |mode=
['cs2'] = {'cs2', 'сп2'}, -- |mode=
['dead'] = {'dead', 'deviated', 'мертвий', 'видозмінений'}, -- |url-status= -- Використовується InternetArchiveBot
['dstu2006'] = {'dstu2006', 'дсту2006'}, -- |mode=
['dstu2015'] = {'dstu2015', 'дсту2015'}, -- |mode=
['foreword'] = {'foreword', 'передмова'}, -- |contribution=
['free'] = {'free', 'безкоштовний', 'вільний'}, -- |-access= -- Використовується InternetArchiveBot
['harv'] = {'harv', 'гарв'}, -- |ref=; this no longer supported; is_valid_parameter_value() called with = true
['introduction'] = {'introduction', 'вступ'}, -- |contribution=
['limited'] = {'limited', 'обмежений'}, -- |url-access= -- Використовується InternetArchiveBot
['live'] = {'live', 'живий'}, -- |url-status= -- Використовується InternetArchiveBot
-- ['mdy'] = {'mdy'}, -- |df=; не підтримується в укрвікі
-- ['mdy-all'] = {'mdy-all'}, -- |df=; не підтримується в укрвікі
['negative'] = {'no', 'false', 'n', 'ні', 'н'}, -- |deadurl=
['none'] = {'none', 'відсутній'}, -- |postscript=, |ref=, |title=, |type= -- Використовується InternetArchiveBot
['preface'] = {'preface', 'пролог'}, -- |contribution=
['registration'] = {'registration', 'реєстрація'}, -- |url-access= -- Використовується InternetArchiveBot
['subscription'] = {'subscription', 'підписка'}, -- |url-access= -- Використовується InternetArchiveBot
['unfit'] = {'unfit', 'непридатний'}, -- |url-status= -- Використовується InternetArchiveBot
['usurped'] = {'usurped', 'захоплений'}, -- |url-status= -- Використовується 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 >---------------------
Ця функція створює список, keywords_xlate{}, ключових слів, що зберігаються в keywords{}, де значення з keywords{}
стають ключами в keywords_xlate{} та ключі з keywords{} стають значенням в keywords_xlate{}:
['affirmative'] = {'yes', 'true', 'y'}, -- у keywords{}
стають
['yes'] = 'affirmative', -- у keywords_xlate{}
['true'] = 'affirmative',
['y'] = 'affirmative',
Мета цієї функції діяти як перекладач між неанглійськими ключовими словами та їхніми англійськими відповідниками,
що можуть використовуватися в інших модулях цієї групи
]]
local function xlate_keywords ()
local out_table = {}; -- вивід потрапляє сюди
for k, keywords_t in pairs (keywords) do -- проходження через таблицю ключових слів
for _, keyword in ipairs (keywords_t) do -- для кожного ключового слова
out_table[keyword] = k; -- створення запису у таблиці на виході, де ключове слово — це ключ
end
end
return out_table;
end
local keywords_xlate = xlate_keywords (); -- список перекладених ключових слів
--[[----------------< M A K E _ K E Y W O R D S _ L I S T >---------------------
Ця функція збирає, для перевірки параметрів-значень, список ключових слів, що доречні для того параметра.
keywords_lists{}, є таблицею таблиць з keywords{}
]]
local function make_keywords_list (keywords_lists)
local out_table = {}; -- вивід потрапляє сюди
for _, keyword_list in ipairs (keywords_lists) do -- проходження через keywords_lists{} та отримання таблиці із ключовими словами
for _, keyword in ipairs (keyword_list) do -- проходження через keyword_list{} та додавання кожного ключового слова, ...
table.insert (out_table, keyword); -- ... як звичайний текст, до списку на виході
end
end
return out_table;
end
--[[----------------< K E Y W O R D S _ L I S T S >-----------------------------
Це є списком списків із правильними ключовими словами для різних параметрів у [key].
Загалом, ключі у цій таблиці є канонічними назвами параметрів en.wiki, хоча
деякі є вигаданими через використання в кількох різноназваних параметрів:
['yes_true_y'], ['id-access'].
Функція make_keywords_list() витягує окреме ключове слово з
доречного списку у keywords{}.
Список у цій таблиці використовується для перевірки присвоєння ключових слів для
параметрів, названих у ключах цієї таблиці.
]]
local keywords_lists = {
['yes_true_y'] = make_keywords_list ({keywords.affirmative}),
['contribution'] = make_keywords_list ({keywords.afterword, keywords.foreword, keywords.introduction, keywords.preface}),
['DeadURL'] = make_keywords_list ({keywords.affirmative, keywords.negative}),
-- ['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, keywords.dstu2006, keywords.dstu2015}),
['name-list-style'] = make_keywords_list ({keywords.amp, keywords['and'], keywords.vanc}),
['ref'] = make_keywords_list ({keywords.harv}), -- інвертована перевірка; |ref=harv більше не підтримується
['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})
}
--[[--------------------------< C S 1 _ C O N F I G _ G E T >--------------------------------------------------
fetch and validate values from {{cs1 config}} template to fill
no error messages; when errors are detected, the parameter value from {{cs1 config}} is blanked.
Supports all parameters and aliases associated with the metaparameters: DisplayAuthors, DisplayContributors,
DisplayEditors, DisplayInterviewers, DisplayTranslators, NameListStyle, and Mode. The DisplayWhatever metaparameters
accept numeric values only (|display-authors=etal and the like is not supported).
]]
local global_cs1_config_t = {}; -- TODO: add value returned from get_date_format() to this table?
local function get_cs1_config ()
if not content then -- nil content when we're in template
return nil; -- auto-formatting does not work in Template space so don't set global_df
end
local start = content:find('{{ *[Cc][Ss]1 config *[|}]'); -- <start> is offset into <content> when {{cs1 config}} found; nil else
if start then
local cs1_config_template = content:match ('%b{}', start); -- get the whole template
if not cs1_config_template then
return nil;
end
local params_t = mw.text.split (cs1_config_template:gsub ('^{{%s*', ''):gsub ('%s*}}$', ''), '%s*|%s*'); -- remove '{{' and '}}'; make a sequence of parameter/value pairs (split on the pipe)
table.remove (params_t, 1); -- remove the template name because it isn't a parameter/value pair
local config_meta_params_t = {'DisplayAuthors', 'DisplayContributors', 'DisplayEditors', 'DisplayInterviewers', 'DisplayTranslators', 'NameListStyle', 'Mode'};
local meta_param_map_t = {}; -- list of accepted parameter names usable in {{cs1 config}} goes here
for _, meta_param in ipairs (config_meta_params_t) do -- for i18n using <config_meta_params_t>, map template parameter names to their metaparameter equivalents
if 'table' == type (aliases[meta_param]) then -- if <meta_param> is a sequence,
for _, param in ipairs (aliases[meta_param]) do -- extract its contents
meta_param_map_t[param] = meta_param; -- and add to <meta_param_map_t>
end
else
meta_param_map_t[aliases[meta_param]] = meta_param; -- not a sequence so just add the parameter to <meta_param_map_t>
end
end
local keywords_t = {}; -- map valid keywords to their associate metaparameter; reverse form of <keyword_lists[key] for these metaparameters
for _, metaparam_t in ipairs ({{'NameListStyle', 'name-list-style'}, {'Mode', 'mode'}}) do -- only these metaparameter / keywords_lists key pairs
for _, keyword in ipairs (keywords_lists[metaparam_t[2]]) do -- spin through the list of keywords
keywords_t[keyword] = metaparam_t[1]; -- add [keyword] = metaparameter to the map
end
end
for _, param in ipairs (params_t) do -- spin through the {{cs1 config}} parameters and fill <global_cs1_config_t>
local k, v = param:match ('([^=]-)%s*=%s*(.+)'); -- <k> is the parameter name; <v> is parameter's assigned value
if k then
if k:find ('^display') then -- if <k> is one of the |display-<namelist>= parameters
if v:match ('%d+') then -- the assigned value must be digits; doesn't accept 'etal'
global_cs1_config_t[meta_param_map_t[k]]=v; -- add the display param and its value to globals table
end
else
if keywords_t[v] == meta_param_map_t[k] then -- keywords_t[v] returns nil or the metaparam name; these must be the same
global_cs1_config_t[meta_param_map_t[k]]=v; -- add the parameter and its value to globals table
end
end
end
end
end
end
get_cs1_config (); -- fill
--[[---------------------< 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()
}
--[[------------< I N V I S I B L E _ C H A R A C T E R S >---------------------
This table holds non-printing or invisible characters indexed either by name or
by Unicode group. Values are decimal representations of UTF-8 codes. The table
is organized as a table of tables because the Lua pairs keyword returns table
data in an arbitrary order. Here, we want to process the table from top to bottom
because the entries at the top of the table are also found in the ranges specified
by the entries at the bottom of the table.
Also here is a pattern that recognizes stripmarkers that begin and end with the
delete characters. The nowiki stripmarker is not an error but some others are
because the parameter values that include them become part of the template's
metadata before stripmarker replacement.
]]
local invisible_defs = {
del = '\127', -- used to distinguish between stripmarker and del char
zwj = '\226\128\141', -- used with capture because zwj may be allowed
}
local invisible_chars = {
{'заміни', '\239\191\189'}, -- U+FFFD, EF BF BD
{'з\'єднувача нульової ширини', '('.. invisible_defs.zwj .. ')'}, -- U+200D, E2 80 8D; capture because zwj may be allowed
{'пробілу нульової ширини', '\226\128\139'}, -- U+200B, E2 80 8B
{'дуже тонкого пробілу', '\226\128\138'}, -- U+200A, E2 80 8A
{'м\'якого дефісу', '\194\173'}, -- U+00AD, C2 AD
{'горизонтальної табуляції', '\009'}, -- U+0009 (HT), 09
{'зміни рядка', '\010'}, -- U+000A (LF), 0A
{'нерозривного пробілу', '\194\160'}, -- U+00A0 (NBSP), C2 A0
{'повернення каретки', '\013'}, -- U+000D (CR), 0D
{'стрип-маркер', stripmarkers.any}, -- stripmarker; may or may not be an error; capture returns the stripmaker type
{'видалення', '('.. invisible_defs.del .. ')'}, -- U+007F (DEL), 7F; must be done after stripmarker test; capture to distinguish isolated del chars not part of stripmarker
{'контрольний символ C0', '[\000-\008\011\012\014-\031]'}, -- U+0000–U+001F (NULL–US), 00–1F (except HT, LF, CR (09, 0A, 0D))
{'контрольний символ C1', '[\194\128-\194\159]'}, -- U+0080–U+009F (XXX–APC), C2 80 – C2 9F
-- {'Specials', '[\239\191\185-\239\191\191]'}, -- U+FFF9-U+FFFF, EF BF B9 – EF BF BF
-- {'Private use area', '[\238\128\128-\239\163\191]'}, -- U+E000–U+F8FF, EE 80 80 – EF A3 BF
-- {'Supplementary Private Use Area-A', '[\243\176\128\128-\243\191\191\189]'}, -- U+F0000–U+FFFFD, F3 B0 80 80 – F3 BF BF BD
-- {'Supplementary Private Use Area-B', '[\244\128\128\128-\244\143\191\189]'}, -- U+100000–U+10FFFD, F4 80 80 80 – F4 8F BF BD
}
--[[
Індійське письмо використовує з'єднувач нульової ширини як модифікатор символів, тому
символи 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]';
-- list of emoji that use a zwj character (U+200D) to combine with another emoji
-- from: https://unicode.org/Public/emoji/16.0/emoji-zwj-sequences.txt; version: 16.0; 2024-08-14
-- table created by: [[:en:Module:Make emoji zwj table]]
local emoji_t = { -- indexes are decimal forms of the hex values in U+xxxx
[8596] = true, -- U+2194 ↔ left right arrow
[8597] = true, -- U+2195 ↕ up down arrow
[9760] = true, -- U+2620 ☠ skull and crossbones
[9792] = true, -- U+2640 ♀ female sign
[9794] = true, -- U+2642 ♂ male sign
[9877] = true, -- U+2695 ⚕ staff of aesculapius
[9878] = true, -- U+2696 ⚖ scales
[9895] = true, -- U+26A7 ⚧ male with stroke and male and female sign
[9992] = true, -- U+2708 ✈ airplane
[10052] = true, -- U+2744 ❄ snowflake
[10084] = true, -- U+2764 ❤ heavy black heart
[10145] = true, -- U+27A1 ➡ black rightwards arrow
[11035] = true, -- U+2B1B ⬛ black large square
[127752] = true, -- U+1F308 🌈 rainbow
[127787] = true, -- U+1F32B 🌫 fog
[127806] = true, -- U+1F33E 🌾 ear of rice
[127859] = true, -- U+1F373 🍳 cooking
[127868] = true, -- U+1F37C 🍼 baby bottle
[127876] = true, -- U+1F384 🎄 christmas tree
[127891] = true, -- U+1F393 🎓 graduation cap
[127908] = true, -- U+1F3A4 🎤 microphone
[127912] = true, -- U+1F3A8 🎨 artist palette
[127979] = true, -- U+1F3EB 🏫 school
[127981] = true, -- U+1F3ED 🏭 factory
[128102] = true, -- U+1F466 👦 boy
[128103] = true, -- U+1F467 👧 girl
[128104] = true, -- U+1F468 👨 man
[128105] = true, -- U+1F469 👩 woman
[128139] = true, -- U+1F48B 💋 kiss mark
[128165] = true, -- U+1F4A5 💥 collision symbol
[128168] = true, -- U+1F4A8 💨 dash symbol
[128171] = true, -- U+1F4AB 💫 dizzy symbol
[128187] = true, -- U+1F4BB 💻 personal computer
[128188] = true, -- U+1F4BC 💼 brief case
[128293] = true, -- U+1F525 🔥 fire
[128295] = true, -- U+1F527 🔧 wrench
[128300] = true, -- U+1F52C 🔬 microscope
[128488] = true, -- U+1F5E8 🗨 left speech bubble
[128640] = true, -- U+1F680 🚀 rocket
[128658] = true, -- U+1F692 🚒 fire engine
[129001] = true, -- U+1F7E9 🟩 large green square
[129003] = true, -- U+1F7EB 🟫 large brown square
[129309] = true, -- U+1F91D 🤝 handshake
[129455] = true, -- U+1F9AF 🦯 probing cane
[129456] = true, -- U+1F9B0 🦰 emoji component red hair
[129457] = true, -- U+1F9B1 🦱 emoji component curly hair
[129458] = true, -- U+1F9B2 🦲 emoji component bald
[129459] = true, -- U+1F9B3 🦳 emoji component white hair
[129466] = true, -- U+1F9BA 🦺 safety vest
[129468] = true, -- U+1F9BC 🦼 motorized wheelchair
[129469] = true, -- U+1F9BD 🦽 manual wheelchair
[129489] = true, -- U+1F9D1 🧑 adult
[129490] = true, -- U+1F9D2 🧒 child
[129657] = true, -- U+1FA79 🩹 adhesive bandage
[129778] = true, -- U+1FAF2 🫲 leftwards hand
}
--[[----------------------< 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 U P P O R T E D _ L A N G U A G E _ C O D E S >-------------------
Ці таблиці містять мовні коди, що підтримуються цим модулем та використовуються при оформленні
параметру language відповідно до вибраного режиму (або як шаблон {{ref-lang}} або як шаблон {{lg}}).
]]
local supported_langauge_codes =
{
[2] =
{
'uk', 'en', 'ru', 'be', 'pl', 'es', 'fr', 'de', 'ar', 'it', 'cs',
'ab', 'af', 'an', 'av', 'az', 'ba', 'bg', 'bl', 'bn', 'bo', 'br', 'bs',
'ca', 'ce', 'co', 'cr', 'cu', 'cv', 'cy', 'cz', 'da', 'et', 'fa', 'fi',
'fo', 'fy', 'ga', 'eo', 'eu', 'gd', 'ge', 'gl', 'gn', 'el', 'ha', 'he',
'hi', 'hr', 'ht', 'hu', 'hy', 'id', 'ie', 'is', 'ja', 'ka', 'kk', 'kl',
'km', 'kn', 'ko', 'kv', 'ku', 'ky', 'la', 'le', 'lt', 'lb', 'lv', 'md',
'me', 'mg', 'mi', 'mk', 'ml', 'mn', 'mo', 'ms', 'mr', 'mt', 'ne', 'nl',
'no', 'oc', 'om', 'os', 'pt', 'qu', 'rm', 'ro', 'sa', 'sh', 'sk', 'sl',
'so', 'sq', 'sr', 'sv', 'sw', 'te', 'ta', 'tg', 'th', 'tk', 'tl', 'to',
'tr', 'tt', 'ty', 'ur', 'uz', 'vi', 'yi', 'zh'
},
[3] =
{
'crh', 'rue', 'ace', 'akk', 'arz', 'ast', 'atj', 'bez', 'bgc', 'bik', 'car', 'chg', 'chu', 'crj', 'dar', 'dsb', 'gag', 'gba', 'gez', 'grc', 'gsc',
'hsb', 'iba', 'jbo', 'kaa', 'kab', 'kam', 'kde', 'kdr', 'kho', 'kjh', 'krl', 'lam', 'ltg', 'mag', 'mde', 'mdf', 'mga', 'mhr', 'mwr', 'myv', 'nan',
'non', 'oka', 'orv', 'otk', 'pap', 'pcm', 'pnt', 'rmy', 'sah', 'sam', 'sat', 'sba', 'sco', 'sga', 'sla', 'syr', 'szl', 'tli', 'udm', 'lld',
'uum', 'vai', 'xal', 'yue'
},
[4] = {},
[5] = {'en-gb', 'en-nz', 'en-us', 'ro-md', 'ru-ru', 'uk-ua', 'sw-cd'},
[6] = {'uk-old', 'old-ru', 'ru-dor', 'pnt-ua'},
[7] = {'bat-smg'},
[8] = {'be-x-old', 'rhg-arab'}
}
--[[--------------------< L A N G U A G E _ T A B L E >-------------------
Ця таблиця містять параметри потрібні для функції SubstLangTemplateIfPossible, щоб імплементувати
функціонал шаблонів {{ref-lang}} та {{lg}}. Для імплементації шаблону {{ref-lang}} використовуються параметри
nominative (назва мови в називному відмінку, використовується лише у випадку, якщо назва є іменником
і не заданий параметр instrumental), instrumental (містить назву в орудному відмінку і виводиться як
підказка), short (скорочена назва мови) та is_noun (булевий параметр, що позначає чи назва є імеником,
якщо так, то назва мови ставиться після слова мовою). Для імплементації шаблону {{lg}} використовуються
параметри nominative (назва мови в називному відмінку), short (скорочена назва мови) та link (назва
статті, на яку потрібно зробити вікіпосилання).
]]
local language_table = {
--коди з двох символів
['uk'] = { nominative = "українська", instrumental = "українською", short = "укр.", link = "Українська мова"},
['en'] = { nominative = "англійська", instrumental = "англійською", short = "англ.", link = "Англійська мова"},
['ru'] = { nominative = "російська", instrumental = "російською", short = "рос.", link = "Російська мова"},
['be'] = { nominative = "білоруська", instrumental = "білоруською", short = "біл.", link = "Білоруська мова"},
['pl'] = { nominative = "польська", instrumental = "польською", short = "пол.", link = "Польська мова"},
['es'] = { nominative = "іспанська", instrumental = "іспанською", short = "ісп.", link = "Іспанська мова"},
['fr'] = { nominative = "французька", instrumental = "французькою", short = "фр.", link = "Французька мова"},
['de'] = { nominative = "німецька", instrumental = "німецькою", short = "нім.", link = "Німецька мова"},
['ar'] = { nominative = "арабська", instrumental = "арабською", short = "араб.", link = "Арабська мова"},
['it'] = { nominative = "італійська", instrumental = "італійською", short = "італ.", link = "Італійська мова"},
['cs'] = { nominative = "чеська", instrumental = "чеською", short = "чес.", link = "Чеська мова"},
['ab'] = { nominative = "абхазька", instrumental = "абхазькою", short = "абхаз.", link = "Абхазька мова"},
['af'] = { nominative = "африкаанс", short = "афр.", link = "Африкаанс", is_noun = true},
['an'] = { nominative = "арагонська", instrumental = "арагонською", short = "араг.", link = "Арагонська мова"},
['av'] = { nominative = "аварська", instrumental = "аварською", short = "авар.", link = "Аварська мова"},
['az'] = { nominative = "азербайджанська", instrumental = "азербайджанською", short = "азерб.", link = "Азербайджанська мова"},
['ba'] = { nominative = "башкирська", instrumental = "башкирською", short = "башк.", link = "Башкирська мова"},
['bg'] = { nominative = "болгарська", instrumental = "болгарською", short = "болг.", link = "Болгарська мова"},
['bl'] = { nominative = "білоруська", instrumental = "білоруською", short = "біл.", link = "Білоруська мова"},
['bn'] = { nominative = "бенгальська", instrumental = "бенгальською", short = "бенг.", link = "Бенгальська мова"},
['bo'] = { nominative = "тибетська", instrumental = "тибетською", short = "тиб.", link = "Тибетська мова"},
['br'] = { nominative = "бретонська", instrumental = "бретонською", short = "брет.", link = "Бретонська мова"},
['bs'] = { nominative = "боснійська", instrumental = "боснійською", short = "босн.", link = "Боснійська мова"},
['ca'] = { nominative = "каталонська", instrumental = "каталонською", short = "кат.", link = "Каталонська мова"},
['ce'] = { nominative = "чеченська", instrumental = "чеченською", short = "чеч.", link = "Чеченська мова"},
['co'] = { nominative = "корсиканська", instrumental = "корсиканською", short = "корс.", link = "Корсиканська мова"},
['cr'] = { nominative = "крі", short = "", link = "Крі (мова)", is_noun = true},
['cu'] = { nominative = "староцерковнословʼянська", instrumental = "староцерковнословʼянською", short = "ст.-слов.", link = "Староцерковнословʼянська мова"},
['cv'] = { nominative = "чуваська", instrumental = "чуваською", short = "чув.", link = "Чуваська мова"},
['cy'] = { nominative = "валлійська", instrumental = "валлійською", short = "валл.", link = "Валлійська мова"},
['cz'] = { nominative = "чеська", instrumental = "чеською", short = "чес.", link = "Чеська мова"},
['da'] = { nominative = "данська", instrumental = "данською", short = "дан.", link = "Данська мова"},
['et'] = { nominative = "естонська", instrumental = "естонською", short = "ест.", link = "Естонська мова"},
['fa'] = { nominative = "перська", instrumental = "перською", short = "перс.", link = "Перська мова"},
['fi'] = { nominative = "фінська", instrumental = "фінською", short = "фін.", link = "Фінська мова"},
['fo'] = { nominative = "фарерська", instrumental = "фарерською", short = "фар.", link = "Фарерська мова"},
['fy'] = { nominative = "фризька", instrumental = "фризькою", short = "фриз.", link = "Фризька мова"},
['ga'] = { nominative = "ірландська", instrumental = "ірландською", short = "ірл.", link = "Ірландська мова"},
['eo'] = { nominative = "есперанто", short = "еспер.", link = "Есперанто", is_noun = true},
['eu'] = { nominative = "баскська", instrumental = "баскською", short = "баск.", link = "Баскська мова"},
['gd'] = { nominative = "шотландська ґельська", instrumental = "шотландською ґельською", short = "шот. ґел.", link = "Шотландська гельська мова"},
['ge'] = { nominative = "грузинська", instrumental = "грузинською", short = "груз.", link = "Грузинська мова"},
['gl'] = { nominative = "галісійська", instrumental = "галісійською", short = "галіс.", link = "Галісійська мова"},
['gn'] = { nominative = "гуарані", short = "гуар.", link = "Гуарані (мова)", is_noun = true},
['el'] = { nominative = "грецька", instrumental = "грецькою", short = "гр.", link = "Грецька мова"},
['ha'] = { nominative = "хауса", short = "хауса", link = "Хауса (мова)", is_noun = true},
['he'] = { nominative = "іврит", instrumental = "івритом", short = "івр.", link = "іврит", is_noun = true},
['hi'] = { nominative = "гінді", short = "гінді", link = "Гінді", is_noun = true},
['hr'] = { nominative = "хорватська", instrumental = "хорватською", short = "хор.", link = "Хорватська мова"},
['ht'] = { nominative = "гаїтянська креольська", instrumental = "гаїтянська креольською", short = "гаїт. креол.", link = "Гаїтянська креольська мова"},
['hu'] = { nominative = "угорська", instrumental = "угорською", short = "угор.", link = "Угорська мова"},
['hy'] = { nominative = "вірменська", instrumental = "вірменською", short = "вірм.", link = "Вірменська мова"},
['id'] = { nominative = "індонезійська", instrumental = "індонезійською", short = "індонез.", link = "Індонезійська мова"},
['ie'] = { nominative = "інтерлінгве", short = "інтерлінг.", link = "Інтерлінгве", is_noun = true},
['is'] = { nominative = "ісландська", instrumental = "ісландською", short = "ісл.", link = "Ісландська мова"},
['ja'] = { nominative = "японська", instrumental = "японською", short = "яп.", link = "Японська мова"},
['ka'] = { nominative = "грузинська", instrumental = "грузинською", short = "груз.", link = "Грузинська мова"},
['kk'] = { nominative = "казахська", instrumental = "казахською", short = "казах.", link = "Казахська мова"},
['kl'] = { nominative = "ґренландська", instrumental = "ґренландською", short = "ґренл.", link = "Гренландська мова"},
['km'] = { nominative = "кхмерська", instrumental = "кхмерською", short = "кхмер.", link = "Кхмерська мова"},
['kn'] = { nominative = "каннада", short = "канн.", link = "Каннада", is_noun = true},
['ko'] = { nominative = "корейська", instrumental = "корейською", short = "кор.", link = "Корейська мова"},
['kv'] = { nominative = "комі", short = "комі", link = "Комі (мова)", is_noun = true},
['ku'] = { nominative = "курдська", instrumental = "курдською", short = "курд.", link = "Курдська мова"},
['ky'] = { nominative = "киргизька", instrumental = "киргизькою", short = "киргиз.", link = "Киргизька мова"},
['la'] = { nominative = "латинська", instrumental = "латинською", short = "лат.", link = "Латинська мова"},
['le'] = { nominative = "лемківська", instrumental = "лемківською", short = "лемк.", link = "Лемківська мова"},
['lt'] = { nominative = "литовська", instrumental = "литовською", short = "лит.", link = "Литовська мова"},
['lb'] = { nominative = "люксембурзька", instrumental = "люксембурзькою", short = "люксемб.", link = "Люксембурзька мова"},
['lv'] = { nominative = "латиська", instrumental = "латиською", short = "латис.", link = "Латиська мова"},
['md'] = { nominative = "молдовська", instrumental = "молдовською", short = "молд.", link = "Молдовська мова"},
['me'] = { nominative = "чорногорська", instrumental = "чорногорською", short = "чорн.", link = "Чорногорська мова"},
['mg'] = { nominative = "малагасійська", instrumental = "малагасійською", short = "малаг.", link = "Малагасійська мова"},
['mi'] = { nominative = "маорійська", instrumental = "маорійською", short = "маор.", link = "Маорі (мова)"},
['mk'] = { nominative = "македонська", instrumental = "македонською", short = "мак.", link = "Македонська мова"},
['ml'] = { nominative = "малаялам", short = "малаял.", link = "Малаялам", is_noun = true},
['mn'] = { nominative = "монгольська", instrumental = "монгольською", short = "монг.", link = "Монгольська мова"},
['mo'] = { nominative = "молдовська", instrumental = "молдовською", short = "молд.", link = "Молдовська мова"},
['ms'] = { nominative = "малайська", instrumental = "малайською", short = "малайськ.", link = "Малайська мова"},
['mr'] = { nominative = "маратхі", short = "мар.", link = "Маратхі (мова)", is_noun = true},
['mt'] = { nominative = "мальтійська", instrumental = "мальтійською", short = "мальт.", link = "Мальтійська мова"},
['ne'] = { nominative = "непальська", instrumental = "непальською", short = "неп.", link = "Непальська мова"},
['nl'] = { nominative = "нідерландська", instrumental = "нідерландською", short = "нід.", link = "Нідерландська мова"},
['no'] = { nominative = "норвезька", instrumental = "норвезькою", short = "норв.", link = "Норвезька мова"},
['oc'] = { nominative = "окситанська", instrumental = "окситанською", short = "окситан.", link = "Окситанська мова"},
['om'] = { nominative = "оромо", short = "ор.", link = "Оромо (мова)", is_noun = true},
['os'] = { nominative = "осетинська", instrumental = "осетинською", short = "осет.", link = "Осетинська мова"},
['pt'] = { nominative = "португальська", instrumental = "португальською", short = "порт.", link = "Португальська мова"},
['qu'] = { nominative = "кечуа", short = "кеч.", link = "Кечуа (мова)", is_noun = true},
['rm'] = { nominative = "романшська", instrumental = "романшською", short = "ромш.", link = "Романшська мова"},
['ro'] = { nominative = "румунська", instrumental = "румунською", short = "рум.", link = "Румунська мова"},
['sa'] = { nominative = "санскрит", instrumental = "санскритом", short = "санс.", link = "Санскрит", is_noun = true},
['sh'] = { nominative = "сербсько-хорватська", instrumental = "сербсько-хорватською", short = "сербо-хорв.", link = "Сербсько-хорватська мова"},
['sk'] = { nominative = "словацька", instrumental = "словацькою", short = "словац.", link = "Словацька мова"},
['sl'] = { nominative = "словенська", instrumental = "словенською", short = "словен.", link = "Словенська мова"},
['so'] = { nominative = "сомалійська", instrumental = "сомалійською", short = "сом.", link = "Сомалійська мова"},
['sq'] = { nominative = "албанська", instrumental = "албанською", short = "алб.", link = "Албанська мова"},
['sr'] = { nominative = "сербська", instrumental = "сербською", short = "серб.", link = "Сербська мова"},
['sv'] = { nominative = "шведська", instrumental = "шведською", short = "швед.", link = "Шведська мова"},
['sw'] = { nominative = "суахілі", short = "суах.", link = "Суахілі (мова)", is_noun = true},
['te'] = { nominative = "телугу", short = "тел.", link = "Телугу (мова)", is_noun = true},
['ta'] = { nominative = "тамільська", instrumental = "тамільською", short = "там.", link = "Тамільська мова"},
['tg'] = { nominative = "таджицька", instrumental = "таджицькою", short = "тадж.", link = "Таджицька мова"},
['th'] = { nominative = "тайська", instrumental = "тайською", short = "тай.", link = "Тайська мова"},
['tk'] = { nominative = "туркменська", instrumental = "туркменською", short = "туркмен.", link = "Туркменська мова"},
['tl'] = { nominative = "тагальська", instrumental = "тагальською", short = "тагал.", link = "Тагальська мова"},
['to'] = { nominative = "тонганська", instrumental = "тонганською", short = "тонг.", link = "Тонганська мова"},
['tr'] = { nominative = "турецька", instrumental = "турецькою", short = "тур.", link = "Турецька мова"},
['tt'] = { nominative = "татарська", instrumental = "татарською", short = "татар.", link = "Татарська мова"},
['ty'] = { nominative = "таїтянська", instrumental = "таїтянською", short = "таїт.", link = "Таїтянська мова"},
['ur'] = { nominative = "урду", short = "урду", link = "Урду", is_noun = true},
['uz'] = { nominative = "узбецька", instrumental = "узбецькою", short = "узб.", link = "Узбецька мова"},
['vi'] = { nominative = "вʼєтнамська", instrumental = "вʼєтнамською", short = "в'єтн.", link = "Вʼєтнамська мова"},
['yi'] = { nominative = "їдиш", short = "їдиш", link = "Їдиш", is_noun = true},
['zh'] = { nominative = "китайська", instrumental = "китайською", short = "кит.", link = "Китайська мова"},
-- коди з трьох символів
['crh'] = { nominative = "кримськотатарська", instrumental = "кримськотатарською", short = "крим.", link = "Кримськотатарська мова"},
['rue'] = { nominative = "русинська", instrumental = "русинською", short = "русин.", link = "Русинська мова"},
['ace'] = { nominative = "ачеська", instrumental = "ачеською", short = "ачес.", link = "Ачеська мова"},
['akk'] = { nominative = "аккадська", instrumental = "аккадською", short = "акк.", link = "аккадська мова"},
['arz'] = { nominative = "єгипетська арабська", instrumental = "єгипетською арабською", short = "масрі", link = "Єгипетська арабська мова"},
['ast'] = { nominative = "астурійська", instrumental = "астурійською", short = "астур.", link = "Астурійська мова"},
['atj'] = { nominative = "атикамек", short = "атик.", link = "атикамек (мова)", is_noun = true},
['bez'] = { nominative = "бена", short = "бена", link = "бена (мова)", is_noun = true},
['bgc'] = { nominative = "харʼянві", short = "хар.", link = "Хар'янві", is_noun = true},
['bik'] = { nominative = "бікольська", instrumental = "бікольською", short = "бік.", link = "бікольська мова"},
['car'] = { nominative = "карибська", instrumental = "карибською", short = "кариб.", link = "карибська мова"},
['chg'] = { nominative = "чагатайська", instrumental = "чагатайською", short = "чагат.", link = "Чагатайська мова"},
['crj'] = { nominative = "південно-східна крі", short = "пн.-сх. крі", link = ""--[["південно-східна крі (мова)"]], is_noun = true},
['chu'] = { nominative = "церковнословʼянська", instrumental = "церковнословʼянською", short = "церк.-сл.", link = "Церковнословʼянська мова"},
['dar'] = { nominative = "даргинська", instrumental = "даргинською", short = "дарг.", link = "Даргинська мова"},
['dsb'] = { nominative = "нижньолужицька", instrumental = "нижньолужицькою", short = "н.-луж.", link = "Нижньолужицька мова"},
['gag'] = { nominative = "гагаузька", instrumental = "гагаузькою", short = "гаг.", link = "Гагаузька мова"},
['gba'] = { nominative = "гбайя", short = "гбайя", link = "гбайя (мови)", is_noun = true},
['gez'] = { nominative = "гєез", short = "гєез", link = "гєез", is_noun = true},
['grc'] = { nominative = "давньогрецька", instrumental = "давньогрецькою", short = "д.-гр.", link = "Давньогрецька мова"},
['gsc'] = { nominative = "гасконська", instrumental = "гасконською", short = "гаск.", link = "Гасконська мова"},
['hsb'] = { nominative = "верхньолужицька", instrumental = "верхньолужицькою", short = "в.-луж.", link = "Верхньолужицька мова"},
['iba'] = { nominative = "ібанська", instrumental = "ібанською", short = "ібан.", link = "Ібанська мова"},
['jbo'] = { nominative = "ложбан", short = "ложбан", link = "Ложбан", is_noun = true},
['kaa'] = { nominative = "каракалпацька", instrumental = "каракалпацькою", short = "кар.", link = "Каракалпацька мова"},
['kab'] = { nominative = "кабільська", instrumental = "кабільською", short = "каб.", link = "Кабільська мова"},
['kam'] = { nominative = "камба", short = "камба", link = "камба (мова)", is_noun = true},
['kde'] = { nominative = "маконде", short = "макон.", link = "Маконде (мова)", is_noun = true},
['kdr'] = { nominative = "караїмська", instrumental = "караїмською", short = "караїм.", link = "Караїмська мова"},
['kho'] = { nominative = "хотаносакська", instrumental = "хотаносакською", short = "хот.", link = "Хотаносакська мова"},
['kjh'] = { nominative = "хакаська", instrumental = "хакаською", short = "хакас.", link = "Хакаська мова"},
['krl'] = { nominative = "карельська", instrumental = "карельською", short = "карел.", link = "Карельська мова"},
['lam'] = { nominative = "ламба", short = "ламба", link = "Ламба (мова)", is_noun = true},
['ltg'] = { nominative = "латгальська", instrumental = "латгальською", short = "лат.", link = "Латгальська мова"},
['mag'] = { nominative = "маґадгі", short = "маґ.", link = "Маґадгі", is_noun = true},
['mde'] = { nominative = "маба", short = "маба", link = "Маба (мова)", is_noun = true},
['mdf'] = { nominative = "мокшанська", instrumental = "мокшанською", short = "мокш.", link = "Мокшанська мова"},
['mga'] = { nominative = "середньоірландська", instrumental = "середньоірландською", short = "серед.-ірл.", link = "середньоірландська мова"},
['mhr'] = { nominative = "лугомарійська", instrumental = "лугомарійською", short = "лугомар.", link = "Східномарійська мова"},
['mwr'] = { nominative = "марварі", short = "марв.", link = "Марварі (мова)", is_noun = true},
['myv'] = { nominative = "ерзянська", instrumental = "ерзянською", short = "ерз.", link = "Ерзянська мова"},
['nan'] = { nominative = "південноміньська", instrumental = "південноміньською", short = "півд-мін.", link = "Південноміньська мова"},
['non'] = { nominative = "давньоісландська", instrumental = "давньоісландською", short = "давньоісл.", link = "Давньоісландська мова"},
['oka'] = { nominative = "оканаганська", instrumental = "оканаганською", short = "окан.", link = ""--[["оканаганська мова"]]},
['orv'] = { nominative = "давньоруська", instrumental = "давньоруською", short = "давньоруська", link = "Давньоруська мова"},
['otk'] = { nominative = "старотюркська", instrumental = "старотюркською", short = "ст.-тюрк.", link = "Старотюркські мови"},
['pap'] = { nominative = "пап'яменто", short = "пап.", link = "Пап'яменто", is_noun = true},
['pcm'] = { nominative = "нігерійський піджин", instrumental = "нігерійським піджином", short = "нігер. підж.", link = "Нігерійський піджин", is_noun = true, omit_lang = true},
['pnt'] = { nominative = "понтійська", instrumental = "понтійською", short = "понт.", link = "Понтійська мова"},
['rmy'] = { nominative = "ромська (циганська)", instrumental = "ромською (циганською)", short = "ром.", link = "Циганська мова"},
['sam'] = { nominative = "самаритянська арамейська", instrumental = "самаритянська арамейською", short = "сам. арам.", link = "самаритянська арамейська мова"},
['sah'] = { nominative = "якутська", instrumental = "якутською", short = "якут.", link = "Якутська мова"},
['sat'] = { nominative = "санталі", short = "сант.", link = "Санталі", is_noun = true},
['sba'] = { nominative = "нгамбай", short = "нгам.", link = "Нгамбай (мова)", is_noun = true},
['sco'] = { nominative = "шотландська рівнинна", instrumental = "шотландською рівнинною", short = "шот. рівн.", link = "Шотландська рівнинна мова"},
['sga'] = { nominative = "давньоірландська", instrumental = "давньоірландською", short = "д.-ірл.", link = "давньоірландська мова"},
['sla'] = { nominative = "міжслов'янська", instrumental = "міжслов'янською", short = "міжслов'янськ.", link = "Міжслов'янська мова"},
['syr'] = { nominative = "сирійська", instrumental = "сирійською", short = "сир.", link = "Сирійська мова"},
['szl'] = { nominative = "сілезька", instrumental = "сілезькою", short = "сіл.", link = "Сілезька мова"},
['tli'] = { nominative = "тлінгітська", instrumental = "тлінгітською", short = "тлінг.", link = "Тлінгітська мова", is_noun = true},
['udm'] = { nominative = "удмуртська", instrumental = "удмуртською", short = "удм.", link = "Удмуртська мова"},
['lld'] = { nominative = "ладинська", instrumental = "ладинською", short = "удм.", link = "Ладинська мова"},
['uum'] = { nominative = "урумська", instrumental = "урумською", short = "урум.", link = "Урумська мова"},
['vai'] = { nominative = "ваї", short = "ваї", link = "Ваї (письмо)", is_noun = true},
['xal'] = { nominative = "калмицька", instrumental = "калмицькою", short = "калм.", link = "Калмицька мова"},
['yue'] = { nominative = "кантонська", instrumental = "кантонською", short = "кант.", link = "Кантонська мова"},
-- коди з більше символів
['en-gb'] = { nominative = "британська англійська", instrumental = "британською англійською", short = "брит.", link = "Британська англійська" },
['en-nz'] = { nominative = "новозеландська англійська", instrumental = "новозеландською англійською", short = "новозел. англ.", link = "Новозеландська англійська"},
['en-us'] = { nominative = "американська англійська", instrumental = "американською англійською", short = "амер.", link = "Американська англійська"},
['ro-md'] = { nominative = "молдовська", instrumental = "молдовською", short = "молд.", link = "Молдовська мова"},
['ru-ru'] = { nominative = "російська", instrumental = "російською", short = "рос.", link = "Російська мова"},
['uk-ua'] = { nominative = "українська", instrumental = "українською", short = "укр.", link = "Українська мова"},
['sw-cd'] = { nominative = "суахілі (Конго)", short = "суах. (Конго)", link = "Суахілі (мова)", is_noun = true},
['uk-old'] = { nominative = "староукраїнська", instrumental = "староукраїнською", short = "ст. укр.", link = "Староукраїнська мова"},
['old-ru'] = { nominative = "старомосковська", instrumental = "старомосковською", short = "старомоск.", link = ""},
['pnt-ua'] = { nominative = "румейська", instrumental = "румейською", short = "румейс.", link = "Румейська мова"},
['ru-dor'] = { nominative = "дореформена російська", instrumental = "дореформеною російською", short = "рос. дореф.", link = "Російський дореволюційний правопис"},
['bat-smg'] = { nominative = "жмудська", instrumental = "жмудською", short = "жмуд.", link = "Жмудська мова"},
['be-x-old'] = { nominative = "класичний правопис білоруської", instrumental = "класичним правописом білоруською", short = "клас. прав. біл.", link = "Класичний правопис білоруської мови"},
['rhg-arab'] = { nominative = "Рогінджа арабським письмом", short = "рогін. араб. пис.", link = "Рогінджа (мова)", is_noun = true},
}
--[[--------------------< 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', 'az', 'be', 'bg', 'bn', 'bo', 'bs', 'ce', 'chr', 'dv', 'dz',
'el', 'fa', 'grc', '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', 'zgh'
};
--[[---------------< 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 створено у 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 = {
['interproj-linked-name'] = 'CS1 містить імена з міжпроєктними посиланнями|$1', -- any author, editor, etc that has an interproject link; $1 is interproject tag used as a sort key
['interwiki-linked-name'] = 'CS1 містить імена з міжмовними посиланнями|$1', -- any author, editor, etc that has an interwiki link; $1 is interwiki tag used as a sort key; yeilds to interproject
['long-vol'] = 'CS1: том із великими значеннями', -- скоріше тимчасова категорія, що визначити масштаб значень |volume= більших ніж 4 символа
['script'] = 'CS1 використовує письмо коду мови $2 ($1)', -- |script-title=xx: має катагорію, що співпадає; $1 є назвою мови, $2 є мовним тегом
['tracked-param'] = 'CS1 відстежує параметр: $1', -- $1 є основною (прибирається нумерування) назвою параметра
['unfit'] = 'CS1: непридатний URL', -- |url-status=unfit або |url-status=usurped; використовувався як категорія обслуговування
}
--[[-------------------< T I T L E _ T Y P E S >--------------------------------
Тут ми присвоємо CitationClass шаблону до TitleType (стандартні значення для параметра |type=)
]]
local title_types = {
['AV-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 реєстранта
дивіться §3.2.2 DOI prefix of the Doi Handbook p. 43
https://www.doi.org/doi-handbook/DOI_Handbook_Final.pdf#page=43
]]
local function build_free_doi_registrants_table()
local registrants_t = {};
for _, v in ipairs ({
'1045', '1074', '1096', '1100', '1155', '1186', '1194', '1371', '1629', '1989', '1999', '2147', '2196', '3285', '3389', '3390',
'3748', '3814', '3847', '3897', '4061', '4089', '4103', '4172', '4175', '4230', '4236', '4239', '4240', '4249', '4251',
'4252', '4253', '4254', '4291', '4292', '4329', '4330', '4331', '5194', '5210', '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', '7759', '7766', '11131', '11569', '11647',
'11648', '12688', '12703', '12715', '12942', '12998', '13105', '14256', '14293', '14303', '15215', '15347', '15412', '15560', '16995',
'17645', '18637', '19080', '19173', '20944', '21037', '21468', '21767', '22261', '22323', '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
local extended_registrants_t = { -- known free registrants identifiable by the doi suffix incipit
['1016'] = {'j.heliyon', 'j.proche'}, -- Heliyon, Procedia Chemistry
['1046'] = {'j.1365-8711', 'j.1365-246x'}, -- MNRAS, GJI
['1093'] = {'mnras', 'mnrasl', 'gji', 'rasti'}, -- MNRAS, MNRAS Letters, GJI, RASTI
['1099'] = {'acmi', 'mic', '00221287', 'mgen'}, -- Access Microbiology, Microbiology, Journal of General Microbiology, Microbial Genomics
['1111'] = {'j.1365-2966', 'j.1745-3933', 'j.1365-246X'}, -- MNRAS, MNRAS Letters, GJI
['1210'] = {'jendso','jcemcr'}, -- Journal of the Endocrine Society, JCEM Case Reports
}
--[[===================<< 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 = true
-- },
err_bad_doi = {
message = 'Перевірте значення <code class="cs1-code">|doi=</code>',
anchor = 'bad_doi',
category = 'Помилки CS1: Сторінки з помилками 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 = 'Помилки CS1: Сторінки з помилками 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 = 'Помилки CS1: Сторінки з помилками 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 = 'Помилки CS1: Сторінки з помилками 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 = 'Помилки CS1: Сторінки з URL без назв',
hidden = false },
err_biorxiv_missing = {
message = '<code class="cs1-code">|biorxiv=</code> є обов\'язковим параметром',
anchor = 'biorxiv_missing',
category = 'Помилки CS1: Сторінки з помилками bioRxiv', -- така ж сама як і в bad bioRxiv
hidden = false
},
err_chapter_ignored = {
message = 'Проігноровано <code class="cs1-code">|$1=</code>', -- $1 is parameter name
anchor = 'chapter_ignored',
category = 'Помилки CS1: Сторінки з проігнорованим параметром chapter',
hidden = false
},
err_citation_missing_title = {
message = 'Пропущений або порожній <code class="cs1-code">|$1=</code>',
anchor = 'citation_missing_title',
category = 'Помилки CS1: Сторінки з посиланнями на джерела без назв',
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 = 'Помилки CS1: Сторінки з посиланнями на web-джерела без URL',
hidden = false },
err_class_ignored = {
message = 'Проігноровано <code class="cs1-code">|class=</code>',
anchor = 'class_ignored',
category = 'Помилки CS1: Сторінки з помилками використання параметра class',
hidden = false
},
err_contributor_ignored = {
message = 'Проігноровано <code class="cs1-code">|contributor=</code>',
anchor = 'contributor_ignored',
category = 'Помилки CS1: Сторінки з помилками використання параметра contributor',
hidden = false
},
err_contributor_missing_required_param = {
message = '<code class="cs1-code">|contributor=</code> вимагає <code class="cs1-code">|$1=</code>', -- $1 є ім'ям параметра
anchor = 'contributor_missing_required_param',
category = 'Помилки CS1: Сторінки з помилками використання параметра contributor',
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 = 'Помилки CS1: Сторінки з помилками 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 = 'Помилки CS1: Сторінки з порожніми посиланнями на джерела',
hidden = false },
err_etal = {
message = 'Явне використання «та ін.» у: <code class="cs1-code">|$1=</code>', -- $1 є ім'ям параметра
anchor = 'explicit_et_al',
category = 'Помилки CS1: Сторінки з явним використання та ін.',
hidden = false
},
err_extra_text_issue = {
message = '<code class="cs1-code">|$1=</code> має зайвий текст', -- $1 є ім'ям параметра
anchor = 'extra_text_issue',
category = 'Помилки CS1: Сторінки з посиланнями на джерела із зайвим текстом у параметрі issue',
hidden = false,
},
err_extra_text_pages = {
message = '<code class="cs1-code">|$1=</code> має зайвий текст', -- $1 є ім'ям параметра
anchor = 'extra_text_pages',
category = 'Помилки CS1: Сторінки з посиланнями на джерела із зайвим текстом у параметрі pages',
hidden = false,
},
err_extra_text_volume = {
message = '<code class="cs1-code">|$1=</code> має зайвий текст', -- $1 є ім'ям параметра
anchor = 'extra_text_volume',
category = 'Помилки CS1: Сторінки з посиланнями на джерела із зайвим текстом у параметрі volume',
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">|$1=</code> вимагає <code class="cs1-code">|$2=</code>', -- $1 є параметром формату, $2 є параметром url
anchor = 'format_missing_url',
category = 'Помилки CS1: Сторінки з посиланнями на джерела з format і без URL',
hidden = false },
--err_generic_name = {
-- message = '<code class="cs1-code">|$1=</code> має загальну ім\'я', -- $1 є ім'ям параметра
-- anchor = 'generic_name',
-- category = 'Помилки CS1: Сторінки із загальною ім\'я ',
-- hidden = false,
-- },
err_generic_title = {
message = 'Cite використоує загальну назву',
anchor = 'generic_title',
category = 'Помилки CS1: Сторінки із загальною назвою',
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_invisible_char = {
message = '$1 в $2 на позиції $3', -- $1 є невидими символом $2 є ім'ям параметра $3 є номер позиції
anchor = 'invisible_char',
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_missing_pipe = {
message = 'Пропущено вертикальну риску в: <code class="cs1-code">|$1=</code>', -- $1 є ім'ям параметра
anchor = 'missing_pipe',
category = 'Помилки CS1: Сторінки з пропущеною вертикальною рискою в назві параметра',
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_param_has_ext_link = {
message = 'Зовнішнє посилання в <code class="cs1-code">$1</code>', -- $1 є ім'ям параметра
anchor = 'param_has_ext_link',
category = 'Помилки CS1: Сторінки із зовнішнім посиланням у невідповідних параметрах',
hidden = false
},
err_parameter_ignored = {
message = 'Проігноровано невідомий параметр <code class="cs1-code">|$1=</code>',
anchor = 'parameter_ignored',
category = 'Помилки CS1: Сторінки з посиланнями на джерела з параметрами, що не підтримуються',
hidden = false },
err_parameter_ignored_suggest = {
message = 'Проігноровано невідомий параметр <code class="cs1-code">|$1=</code> (можливо, <code class="cs1-code">|$2=</code>?)',
anchor = 'parameter_ignored_suggest',
category = 'Помилки CS1: Сторінки з посиланнями на джерела з параметрами, що не підтримуються',
hidden = false },
err_periodical_ignored = {
message = 'Проігноровано <code class="cs1-code">|$1=</code>', -- $1 є ім'ям параметра
anchor = 'periodical_ignored',
category = 'Помилки CS1: Сторінки з проігнорованим параметром periodical',
hidden = false
},
err_redundant_parameters = {
message = 'Вказано більш, ніж один $1',
anchor = 'redundant_parameters',
category = 'Помилки CS1: Сторінки з посиланнями на джерела з зайвими параметрами',
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 = 'Помилки CS1: Сторінки з посиланнями на джерела з параметрами без назв',
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 = 'Помилки CS1: Сторінки з посиланнями на джерела з перекладеними назвами без оригіналу',
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 = 'Помилки CS1: Сторінки з посиланнями на джерела, що мають вікіпосилання у назвах URL',
hidden = false },
--[[--------------------------< M A I N T >-------------------------------------
повідомлення обслуговування не мають значень у пареметрі message (message = nil); в інакшому випадку
структура така сама як у повідомлення про помилку
]]
maint_archived_copy = {
message = nil,
anchor = 'archived_copy',
category = 'Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title',
hidden = true,
},
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_extra_punct = {
message = nil,
anchor = 'extra_punct',
category = 'Обслуговування CS1: Сторінки з посиланнями на джерела із зайвою пунктуацією',
hidden = true,
},
maint_id_limit_load_fail = { -- applies to all cs1|2 templates on a page;
message = nil, -- maint message (category link) never emitted
anchor = 'id_limit_load_fail',
category = 'Обслуговування CS1: Сторінки із помилкою завантаження ліміту ID',
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_overridden_setting = {
message = nil,
anchor = 'overridden',
category = 'Обслуговування CS1: Сторінки з посиланнями на джерела, що мають перезаписані налаштування',
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_untitled = {
message = nil,
anchor = 'untitled',
category = 'Обслуговування CS1: Сторінки з неназвною переіодикою',
hidden = true,
},
maint_url_status = {
message = nil,
anchor = 'url_status',
category = 'Обслуговування CS1: Сторінки з параметром url-status, але без параметра archive-url',
hidden = true,
},
maint_zbl = {
message = nil,
anchor = 'zbl',
category = 'Обслуговування CS1: Сторінки з Zbl, який містить тимчасовий ідентифікатор',
hidden = true,
},
}
--[[--------------------------< I D _ L I M I T S _ D A T A _ T >----------------------------------------------
Стягує ліміти id для певних ідентифікаторів з c:Data:CS1/Identifier limits.tab. Це джерело є файлом даних
json tabular, що обслуговується на сховищі вікіпедії. Перетворює формат json на таблицю з парами k/v.
Значення з <id_limits_data_t> використовуються для встановлення handle.id_limit.
]]
local load_fail_limit = 99999999999; -- very high number to avoid error messages on load failure
local id_limits_data_t = {['OCLC'] = load_fail_limit, ['OSTI'] = load_fail_limit, ['PMC'] = load_fail_limit, ['PMID'] = load_fail_limit, ['RFC'] = load_fail_limit, ['SSRN'] = load_fail_limit, ['S2CID'] = load_fail_limit};
local id_limits_data_load_fail = false; -- flag; assume that we will be successful when loading json id limit tabular data
local tab_data_t = mw.ext.data.get ('CS1/Identifier limits.tab').data; -- attempt to load the json limit data from commons into
if false == tab_data_t then -- undocumented 'feature': mw.ext.data.get() sometimes returns false
id_limits_data_load_fail = true; -- set the flag so that Module:Citation/CS1 can create an unannotated maint category
else
for _, limit_t in ipairs (tab_data_t) do -- overwrite default values
id_limits_data_t[limit_t[1]] = limit_t[2]; -- is identifier; is upper limit for that identifier
end
end
--[[--------------------------< 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://search.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://search.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://search.worldcat.org/oclc/',
COinS = 'info:oclcnum',
encode = true,
separator = ' ',
id_limit = id_limits_data_t.OCLC or 0,
},
['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 = id_limits_data_t.OSTI or 0,
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 = id_limits_data_t.PMC or 0,
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 = id_limits_data_t.PMID or 0,
},
['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 = id_limits_data_t.RFC or 0,
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 = id_limits_data_t.SSRN or 0,
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 = id_limits_data_t.S2CID or 0,
custom_access = 's2cid-access',
custom_access_uk = 'доступ-до-s2cid'
},
['USENETID'] = {
parameters = {'message-id', 'id-повідомлення', 'повідомлення-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, -- булеві значення в налаштуваннях, що вгорі цього модуля
enable_sort_keys = enable_sort_keys,
-- date_name_auto_xlate_enable = date_name_auto_xlate_enable,
global_cs1_config_t = global_cs1_config_t, -- глобальні налаштування з {{cs1 config}}
punct_skip = build_skip_table (punct_skip, punct_meta_params),
url_skip = build_skip_table (url_skip, url_meta_params),
known_free_doi_registrants_t = build_free_doi_registrants_table(),
id_limits_data_load_fail = id_limits_data_load_fail, -- true коли не вдалося завантажити дані ліміті ідентифікаторів з таблиці на Сховищі
name_space_sort_keys = name_space_sort_keys,
aliases = aliases,
special_case_translation = special_case_translation,
date_names = date_names,
defaults = defaults,
err_msg_supl = err_msg_supl,
error_conditions = error_conditions,
et_al_patterns = et_al_patterns,
extended_registrants_t = extended_registrants_t,
id_handlers = id_handlers,
keywords_lists = keywords_lists,
keywords_xlate = keywords_xlate,
stripmarkers = stripmarkers,
invisible_chars = invisible_chars,
invisible_defs = invisible_defs,
indic_script = indic_script,
emoji_t = emoji_t,
messages = messages,
presentation = presentation,
prop_cats = prop_cats,
script_lang_codes = script_lang_codes,
lang_tag_remap = lang_tag_remap,
supported_langauge_codes = supported_langauge_codes,
language_table = language_table,
this_wiki_code = this_wiki_code,
title_types = title_types,
uncategorized_namespaces = uncategorized_namespaces_t,
uncategorized_subpages = uncategorized_subpages,
vol_iss_pg_patterns = vol_iss_pg_patterns,
single_letter_2nd_lvl_domains_t = single_letter_2nd_lvl_domains_t,
inter_wiki_map = inter_wiki_map,
mw_languages_by_tag_t = mw_languages_by_tag_t,
citation_class_map_t = citation_class_map_t
};