Модуль:Citation/CS1/Configuration
Зовнішній вигляд
< Модуль:Citation | CS1
Документація модуля[перегляд] [редагувати] [історія] [очистити кеш]
Ця стаття є сирим перекладом з іншої мови. Можливо, вона створена за допомогою машинного перекладу або перекладачем, який недостатньо володіє обома мовами. |
Цей модуль Lua використовується на 720 000+ сторінках або близько 15% всіх сторінок. Для уникнення великомасштабних збоїв та непотрібного навантаження на сервер, будь-які зміни спочатку потрібно перевірити на підсторінках /пісочниці та /тестів цього модуля, або у вашій пісочниці модуля. Потім перевірені зміни можуть бути впроваджені на цій сторінці єдиним редагуванням. Будь ласка, обговорюйте будь-які зміни на сторінці обговорення перед їхнім впровадженням. |
Цей модуль позначений як К:бета-модуль (25), і готовий до широкого вжитку. Він і досі новий і його слід використовувати з певною обережністю, щоб гарантувати, передбачувані результати. |
Цей файл конфігурації містить різноманітні дані, які обслуговують функціонування {{Модуль:Citation/CS1}} (обг. · викор. · ред.) та методи відображення цитувань, які базуються на мові Lua.
Секції файлу:
- таблиці перекладів та синонімів, які містять більшість літерних рядків, які можуть використовуватися в цитуваннях. Редактори, які переносять цей код з англійської Вікіпедії, повинні адаптувати значення усіх цих рядків, переклавши або додавши синоніми за потреби. /translation tables that contain most of the literal strings that may be included in Lua-based citation. If editors are copying this Module to another wiki using a language other than English, then they should translate each of these values into that language.
- список помилкових станів, який містить тексти відображуваних повідомлень про помилки, назви категорій спостереження, у які потрапляють сторінки з помилками і посилання на описи помилкових станів на сторінках довідки. /a list of error conditions specifying what text to display, what category to include (if any), and what help page section to refer to when errors are detected
- список обробників ідентифікаторів, який задає відомі ідентифікатори документів, наприклад, ISBN, DOI тощо, та методи їх форматування та відображення. /a list of ID handlers specifying the recognized document IDs, such as ISBN, DOI, etc., and how to format them.
Наступні файли є частиною модуля, що забезпечує підтримку шаблонів цитувань cs1|2:
Документація вище включена з Модуль:Citation/CS1/Configuration/документація. (ред. | історія) Дописувачі можуть експериментувати на підсторінках пісочниці (ред. | різн.) та тести (створити) цього модуля. Будь ласка, додавайте категорії до підсторінки /CS1/Configuration/документація. Підсторінки цієї сторінки. |
--[[--------------------------< 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 = { -- ключі сортування, що використовуються з цими просторамиsort keys to be used with these namespaces:
[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',
['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>',
['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">[in $1]</span>', -- для interwiki-language-linked author, editor тощо
['interproj'] = ' <span class="cs1-format">[at $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',
['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', "показувати-перекладачів"},
['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', 'docket'},
-- ['IgnoreISBN'] = {'ignore-isbn-error', 'ignoreisbnerror'},
['Inset'] = {'inset', 'карта-врізка', 'мапа-врізка'},
['Issue'] = {'issue', 'number', 'випуск', 'номер'},
['Language'] = {'language', 'lang', 'in', 'мова', 'мовою'},
['LastAuthorAmp'] = 'lastauthoramp',
['LayDate'] = 'laydate',
['LaySource'] = 'laysource',
['LayURL'] = {'layurl', 'laysummary'},
['MailingList'] = {'mailing-list', 'mailinglist', 'список-розсилки'}, -- тільки для шаблону cite mailing list
['Map'] = {'map', 'карта', 'мапа'}, -- тільки для шаблону cite map
['MapFormat'] = {'map-format', 'формат-карти', 'формат-мапи'}, -- тільки для шаблону cite map
['MapURL'] = {'map-url', 'mapurl', 'url-карти', 'url-мапи'}, -- тільки для шаблону cite map -- Використовується InternetArchiveBot
['MapUrlAccess'] = {'map-url-access', 'доступ-до-url-мапи', 'доступ-до-url-карти'}, -- тільки для шаблону cite map -- Використовується InternetArchiveBot
['Minutes'] = { 'minutes', 'хвилини'},
['Mode'] = {'mode', 'режим'},
['Month'] = {'month', 'місяць'},
['NameListStyle'] = {'name-list-style', 'стиль-списку-імен'},
['NameSeparator'] = 'name-separator',
['Network'] = {'network', 'мережа', 'канал'},
['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', 'місце', 'розміщення', 'знаходження'},
-- ['PPrefix'] = 'PPrefix',
-- ['PPPrefix'] = 'PPPrefix',
['PostScript'] = {'postscript', 'завершення'},
['PublicationDate'] = {'publicationdate', 'publication-date', 'дата-публікації' },
['PublicationPlace'] = {'publication-place', 'publicationplace', 'місце-публікації' },
['PublisherName'] = {'publisher', 'institution', 'видавець', 'видавництво', 'установа'},
['Quote'] = {'quote', 'quotation', 'цитата', 'цитування'},
['Ref'] = {'ref', 'Ref', 'анкер', 'якірець'},
['Scale'] = {'scale', 'масштаб'},
['ScriptChapter'] = {'script-chapter', 'script-contribution', 'script-entry',
'script-article', 'script-section', 'письмо-розділу', 'письмо-внеску',
'письмо-запису', 'письмо-статті', 'письмо-секції'},
['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', 'станція'},
-- ['SubscriptionRequired'] = 'subscription',
['Time'] = {'time', 'час'},
['TimeCaption'] = {'time-caption', 'timecaption', 'підпис-часу'},
['Title'] = {'title', 'назва', 'заголовок'},
['TitleLink'] = {'title-link', 'titlelink', 'episode-link', 'episodelink', 'назва-посилання',
'заголовок-посилання', 'епізод-посилання', 'серія-посилання' },
['TitleNote'] = {'department', 'відділ' },
['TitleType'] = {'type', 'тип', 'medium', 'медіум'},
['TransChapter'] = {'trans-article', 'trans-chapter', 'trans-contribution',
'trans-entry', 'trans-section', 'trans-chapter', 'trans_chapter', 'переклад-розділу',
'переклад-внеску', 'переклад-запису', 'переклад-статті', 'переклад-секції' },
['Transcript'] = {'transcript', 'стенограма'},
['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',
"перекладач#-маска", "перекладач-маска#"},
}
--[[-----------< 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.com', 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
--[[--------------------------< S I N G L E - L E T T E R S E C O N D - L E V E L D O M A I N S >----------
це список tlds, про які відоми, що вони мають доменне ім'я другого рівня, що складається з однієї літери.
Цей список не включає ccTLDs, що приймаються в is_domain_name().
]]
local single_letter_2nd_lvl_domains_t = {'cash', 'company', 'foundation', 'org', 'today'};
-- Значення параметрів за замовчуванням
local defaults = {
-- ['Separator'] = '.',
['AuthorSeparator'] = ';',
['EditorSeparator'] = ';',
['NameSeparator'] = ',',
}
--[[----------------------< 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', '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 = "Ірландська мова"},
['ge'] = { nominative = "грузинська", instrumental = "грузинською", short = "груз.", link = "Грузинська мова"},
['eo'] = { nominative = "есперанто", short = "еспер.", link = "Есперанто", is_noun = true},
['eu'] = { nominative = "баскська", instrumental = "баскською", short = "баск.", link = "Баскська мова"},
['gd'] = { 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 = "Молдовська мова"},
['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', 'be', 'bg', 'bn', 'bo', 'bs', 'ce', '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'
};
--[[---------------< L A N G U A G E R E M A P P I N G >----------------------
Ці таблиці містять інформацію про мови, що відрізняються від визначень MediaWiki
Для кожного ['<tag>'] = 'language name' у lang_code_remap{} повинен бути збіг із ['language name'] = {'language name', '<tag>'} у lang_name_remap{}
lang_tag_remap{}:
ключем є завжди ISO 639-1, -2, -3 мовний код малими буквами або дійсний IETF мовний код малими буквами
значенням є правильно написане і капіталізоване назву мову, що пов'язане з <tag>
тільки одна нпзва мови на <tag>;
пара кляча/значення має збігатися із записом у lang_name_remap{}
lang_name_remap{}:
ключем є завжди назвою мови малими буквами
значенням є таблицею, що містить правильно написане і капіталізоване назву мову [1] та пов'язаний із нею тег [2] (тег має збігатися із тегом ключа у lang_tag_remap{})
може мати кілька ключів, що покликаються до спільної назви, якій надається перевага, і тегу; Наприклад:
['kolsch'] і ['kölsch'] обидва покликаються до 'Kölsch' і 'ksh'
]]
local lang_tag_remap = { -- використовується для |language= та |script-title= / |script-chapter=
['als'] = 'Tosk Albanian', -- MediaWiki поветрає Alemannisch
['bh'] = 'Bihari', -- MediaWiki викоритстовує 'bh' як піддоменне ім'я для Bhojpuri Wikipedia: bh.wikipedia.org
['bla'] = 'Blackfoot', -- MediaWiki/IANA/ISO 639: Siksika; для використання ім'я, якому надає перевага en.wiki
['ca-valencia'] = 'Valencian', -- IETF варіант Catalan
['fkv'] = 'Kven', -- MediaWiki поветрає Kvensk
['ilo'] = 'Ilocano', -- MediaWiki/IANA/ISO 639: Iloko; для використання ім'я, якому надає перевага en.wiki
['ksh'] = 'Kölsch', -- MediaWiki: Colognian; для використання ім'я, якому надає перевага IANA/ISO 639
['ksh-x-colog'] = 'Colognian', -- перезаписує MediaWiki ksh; немає коду IANA/ISO 639 для Colognian; приватний код IETF створено у Module:Lang/data
['mis-x-ripuar'] = 'Ripuarian', -- перезаписує MediaWiki ksh; немає коду IANA/ISO 639 для Ripuarian; приватний код IETF створено уt Module:Lang/data
['nan-tw'] = 'Taiwanese Hokkien', -- створено місце для MediaWiki/IANA/ISO 639 nan: Min Nan Chinese та підтримки ім'я, якому надає перевага en.wiki
}
--[[---------------< P R O P E R T I E S _ C A T E G O R I E S >----------------
Категорії властовистей. Вони використовуються для дослідження якостей цитат.
]]
local prop_cats = {
-- ['interproj-linked-name'] = 'CS1 interproject-linked names|$1', -- any author, editor, etc that has an interproject link; $1 is interproject tag used as a sort key
-- ['interwiki-linked-name'] = 'CS1 interwiki-linked names|$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 є ISO639-1 кодом
['tracked-param'] = 'CS1 відстежує параметр: $1', -- $1 є основною (прибирається нумерування) назвою параметра
}
--[[-------------------< T I T L E _ T Y P E S >--------------------------------
Тут ми присвоємо CitationClass шаблону до TitleType (стандартні значення для параметра |type=)
]]
local title_types = {
-- ['AV-media-notes'] = 'Media notes',
['document'] = 'Документ',
['interview'] = 'Інтерв\'ю',
['mailinglist'] = 'Список розсилки',
['map'] = 'Карта',
['podcast'] = 'Подкаст',
['pressrelease'] = 'Пресреліз',
['report'] = 'Звіт',
['speech'] = 'Промова',
['techreport'] = 'Технічний звіт',
['thesis'] = 'Дипломна робота',
}
--[[--------------------------< B U I L D _ K N O W N _ F R E E _ D O I _ R E G I S T R A N T S _ T A B L E >--
створює таблицю реєстрантів doi, які відомі тим, що до них є вільним доступ. У doi, ID реєстранта є серія цифр
між «10.» та першим «/»: у doi 10.1100/sommat, 1100 є ID реєстранта
дивіться §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', '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'}, -- Heliyon
['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
}
--[[
Шаблони (патерни) для пошуку зайвого тексту в |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]',
'^[Сс]тор.?',
},
vpatterns = { -- шаблони (патерни) для |volume=
'^volumes?',
'^vols?[%.:=]?'
},
ipatterns = { -- шаблони (патерни) для |issue=
'^issues?',
'^iss[%.:=]?',
'^numbers?',
'^nos?%A', -- не здійснювати збігів із «november» або «nostradamus»
'^nr[%.:=]?',
'^n[%.:= ]' -- може бути дійсним значенням без роздільника (символ пробілу є символом роздільника тут)
}
}
--[[--------------------------< K E Y W O R D S >-------------------------------
Ці таблиці містять ключові слова для тих параметрів, що мають визначений список допустимих ключових слів.
]]
--[[-------------------< K E Y W O R D S T A B L E >--------------------------
Це список ключових слівth; кожен ключ у списку пов'язаний із таблицею
синонімічних ключових слів, що можуть бути з інших мов.
Для I18N: додайте ключові слова місцевої мови до значень у таблиці; не змінюйте ключ.
Наприклад, додаючи німецьке ключове слово «ja»:
['affirmative'] = {'yes', 'true', 'y', 'ja'},
У зв'язку з тим, що шаблони CS1|2 зі статей en.wiki часто копіюються в інші місцеві вікі,
то рекомендується, щоб англійські ключові слова лишалися в цих таблицях.
]]
local keywords = {
['amp'] = {'&', 'amp', 'ampersand', 'амп', 'амперсанд'}, -- |name-list-style=
['and'] = {'and', 'serial', 'і', 'й', 'та'}, -- |name-list-style=
['affirmative'] = {'yes', 'true', 'y', 'так', 'т'}, -- |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', 'безкоштовний', 'вільний'}, -- |<id>-access= -- Використовується InternetArchiveBot
['harv'] = {'harv', 'гарв'}, -- |ref=; this no longer supported; is_valid_parameter_value() called with <invert> = 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 <global_cs1_config_t>
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 <global_cs1_config_t>
--[[---------------------< S T R I P M A R K E R S >----------------------------
Часті шаблони визначення шляху для stripmarkers, щоб ми не мали необхідності so that we don't have to go
їх шукати, якщо (коли) MediaWiki змінить їхню форму.
]]
local stripmarkers = {
['any'] = '\127[^\127]*UNIQ%-%-(%a+)%-[%a%d]+%-QINU[^\127]*\127', -- ловить і повертає назву stripmarker
['math'] = '\127[^\127]*UNIQ%-%-math%-[%a%d]+%-QINU[^\127]*\127' -- math stripmarkers використовується в coins_cleanup() та coins_replace_math_stripmarker()
}
--[[
Індійське письмо використовує з'єднувач нульової ширини як модифікатор символів, тому
символи zwj мають бути залишені. Цей шаблон охоплює всі символи unicode
для цих мов:
Devanagari 0900–097F – https://unicode.org/charts/PDF/U0900.pdf
Devanagari extended A8E0–A8FF – https://unicode.org/charts/PDF/UA8E0.pdf
Bengali 0980–09FF – https://unicode.org/charts/PDF/U0980.pdf
Gurmukhi 0A00–0A7F – https://unicode.org/charts/PDF/U0A00.pdf
Gujarati 0A80–0AFF – https://unicode.org/charts/PDF/U0A80.pdf
Oriya 0B00–0B7F – https://unicode.org/charts/PDF/U0B00.pdf
Tamil 0B80–0BFF – https://unicode.org/charts/PDF/U0B80.pdf
Telugu 0C00–0C7F – https://unicode.org/charts/PDF/U0C00.pdf
Kannada 0C80–0CFF – https://unicode.org/charts/PDF/U0C80.pdf
Malayalam 0D00–0D7F – https://unicode.org/charts/PDF/U0D00.pdf
плюс не зовсім необхідні індійські писемсності для Sinhala та Burmese:
Sinhala 0D80-0DFF - https://unicode.org/charts/PDF/U0D80.pdf
Myanmar 1000-109F - https://unicode.org/charts/PDF/U1000.pdf
Myanmar extended A AA60-AA7F - https://unicode.org/charts/PDF/UAA60.pdf
Myanmar extended B A9E0-A9FF - https://unicode.org/charts/PDF/UA9E0.pdf
шаблон використовується в has_invisible_chars() та coins_cleanup()
]]
local indic_script = '[\224\164\128-\224\181\191\224\163\160-\224\183\191\225\128\128-\225\130\159\234\167\160-\234\167\191\234\169\160-\234\169\191]';
--[[===================<< E R R O R M E S S A G I N G >>======================
]]
--[[----------< E R R O R M E S S A G E S U P P L I M E N T S >-------------
I18N для повідомлень, в яким потрібно подавати додатковий специфічний текст, що
опису причину, через яку сталася помилка
]]
local err_msg_supl = {
['char'] = 'недійсний символ', -- |isbn=, |sbn=
['check'] = 'контрольна сума', -- |isbn=, |sbn=
['form'] = 'недійсна форма', -- |isbn=, |sbn=
['group'] = 'недійсна група ідентифікатора', -- |isbn=
['initials'] = 'ініціали', -- Ванкувер
['invalid language code'] = 'недійсний код мови', -- |script-<param>=
['journal'] = 'журнал', -- |bibcode=
['length'] = 'довжина', -- |isbn=, |sbn=
['length accusative'] = 'довжину', -- |bibcode=
['missing comma'] = 'пропущено кому', -- Ванкувер
['missing prefix'] = 'пропущено префікс', -- |script-<param>=
['missing title part'] = 'пропущено частину title', -- |script-<param>=
['name'] = 'ім\'я', -- Ванкувер
['non-Latin char'] = 'нелатинські символи', -- Ванкувер
['prefix'] = 'недійсний префікс', -- |isbn=
['punctuation'] = 'пунктуація', -- Ванкувер
['suffix'] = 'суфікс', -- Ванкувер
['unknown language code'] = 'невідомий код мови', -- |script-<param>=
['value'] = 'значення', -- |bibcode=
['year'] = 'рік', -- |bibcode=
}
--[[
Таблиця умов помилок
Далі йде список ідентифікаторів для різних умов помилок, визначених у коді.
Для кожного ідентифікаторі визначено текст повідомлення для відображення,
категорія сторінок з помилками, до якої включати, а також чи потрібно
повідомлення про помилку відображати як прихований коментар.
У разі будь-яких змін до якірців потрібно робити ідентичні зміни до відповідних
якірців на сторінці Довідка:Помилки посилань на джерела
]]
local error_conditions = {
err_accessdate_missing_url = {
message = '<code class="cs1-code">|access-date=</code> вимагає <code class="cs1-code">|url=</code>',
anchor = 'accessdate_missing_url',
category = 'Помилки CS1: Сторінки з посиланнями на джерела з access-date і без URL',
hidden = false },
err_archive_date_missing_url = {
message = '<code class="cs1-code">|archive-date=</code> вимагає <code class="cs1-code">|archive-url=</code>',
anchor = 'archive_date_missing_url',
category = 'Помилки CS1: Сторінки з помилками посилань на джерела з archive-url',
hidden = false
},
err_archive_missing_date = {
message = '<code class="cs1-code">|archive-url=</code> вимагає <code class="cs1-code">|archive-date=</code>',
anchor = 'archive_missing_date',
category = 'Помилки CS1: Сторінки з помилками посилань на джерела з archive-url',
hidden = false },
err_archive_missing_url = {
message = '<code class="cs1-code">|archive-url=</code> вимагає <code class="cs1-code">|url=</code>',
anchor = 'archive_missing_url',
category = 'Помилки CS1: Сторінки з помилками посилань на джерела з archive-url',
hidden = false },
err_arxiv_missing = {
message = '<code class="cs1-code">|arxiv=</code> є обов\'язковим параметром',
anchor = 'arxiv_missing',
category = 'Помилки CS1: Сторінки з помилками arXiv', -- така ж сама як і в bad arxiv
hidden = false
},
err_asintld_missing_asin = {
message = '<code class="cs1-code">|$1=</code> вимагає <code class="cs1-code">|asin=</code>', -- $1 є ім'ям параметра
anchor = 'asintld_missing_asin',
category = 'Помилки CS1: Сторінки з помилками ASIN TLD',
hidden = false
},
err_bad_arxiv = {
message = 'Перевірте значення <code class="cs1-code">|arxiv=</code>',
anchor = 'bad_arxiv',
category = 'Помилки CS1: Сторінки з помилками arXiv',
hidden = false
},
err_bad_asin = {
message = 'Перевірте значення <code class="cs1-code">|asin=</code>',
anchor = 'bad_asin',
category ='Помилки CS1: Сторінки з помилками ASIN',
hidden = false
},
err_bad_asin_tld = {
message = 'Перевірте значення <code class="cs1-code">|asin-tld=</code>',
anchor = 'bad_asin_tld',
category ='Помилки CS1: Сторінки з помилками ASIN TLD',
hidden = false
},
err_bad_bibcode = {
message = 'Перевірте $1 <code class="cs1-code">|bibcode=</code>', -- $1 є детальним описом повідомлення про помлку
anchor = 'bad_bibcode',
category = 'Помилки CS1: Сторінки з помилками bibcode',
hidden = false
},
err_bad_biorxiv = {
message = 'Перевірте значення <code class="cs1-code">|biorxiv=</code>',
anchor = 'bad_biorxiv',
category = 'Помилки CS1: Сторінки з помилками bioRxiv',
hidden = false
},
err_bad_citeseerx = {
message = 'Перевірте значення <code class="cs1-code">|citeseerx=</code>',
anchor = 'bad_citeseerx',
category = 'Помилки CS1: Сторінки з помилками citeseerx',
hidden = false
},
-- err_bad_date = {
-- message = 'Перевірте значення дати у: $1', -- $1 є списком назв параметрів
-- anchor = 'bad_date',
-- category = 'Помилки CS1: Сторінки з помилками дати',
-- hidden = true
-- },
err_bad_doi = {
message = 'Перевірте значення <code class="cs1-code">|doi=</code>',
anchor = 'bad_doi',
category = 'Сторінки з помилками DOI',
hidden = false },
err_bad_hdl = {
message = 'Перевірте значення <code class="cs1-code">|hdl=</code>',
anchor = 'bad_hdl',
category = 'Помилки CS1: Сторінки з помилками HDL',
hidden = false
},
err_bad_isbn = {
message = 'Перевірте значення <code class="cs1-code">|isbn=</code>: $1',
anchor = 'bad_isbn',
category = 'Сторінки з помилками ISBN',
hidden = false },
err_bad_ismn = {
message = 'Перевірте значення <code class="cs1-code">|ismn=</code>',
anchor = 'bad_ismn',
category = 'Помилки CS1: Сторінки з помилками ISMN',
hidden = false
},
err_bad_issn = {
message = 'Перевірте значення <code class="cs1-code">|$1issn=</code>', -- $1 є 'e' або '' для eissn або issn
anchor = 'bad_issn',
category = 'Помилки CS1: Сторінки з помилками ISSN',
hidden = false
},
err_bad_jfm = {
message = 'Перевірте значення <code class="cs1-code">|jfm=</code>',
anchor = 'bad_jfm',
category = 'Помилки CS1: Сторінки з помилками JFM',
hidden = false
},
err_bad_jstor = {
message = 'Перевірте значення <code class="cs1-code">|jstor=</code>',
anchor = 'bad_jstor',
category = 'Помилки CS1: Сторінки з помилками JSTOR',
hidden = false
},
err_bad_lccn = {
message = 'Перевірте значення <code class="cs1-code">|lccn=</code>',
anchor = 'bad_lccn',
category = 'Помилки CS1: Сторінки з помилками LCCN',
hidden = false
},
err_bad_medrxiv = {
message = 'Перевірте значення <code class="cs1-code">|medrxiv=</code>',
anchor = 'bad_medrxiv',
category = 'Помилки CS1: Сторінки з помилками medRxiv',
hidden = false
},
err_bad_mr = {
message = 'Перевірте значення <code class="cs1-code">|mr=</code>',
anchor = 'bad_mr',
category = 'Помилки CS1: Сторінки з помилками MR',
hidden = false
},
err_bad_oclc = {
message = 'Перевірте значення <code class="cs1-code">|oclc=</code>',
anchor = 'bad_oclc',
category = 'Помилки CS1: Сторінки з помилками OCLC',
hidden = false
},
err_bad_ol = {
message = 'Перевірте значення <code class="cs1-code">|ol=</code>',
anchor = 'bad_ol',
category = 'Сторінки з помилками OL',
hidden = false },
err_bad_osti = {
message = 'Перевірте значення <code class="cs1-code">|osti=</code>',
anchor = 'bad_osti',
category = 'Помилки CS1: Сторінки з помилками OSTI',
hidden = false
},
err_bad_paramlink = { -- для |title-link=, |author/editor/translator-link=, |series-link=, |episode-link=
message = 'Перевірте значення <code class="cs1-code">|$1=</code>', -- $1 є ім'ям параметра
anchor = 'bad_paramlink',
category = 'Помилки CS1: Сторінки з помилками використання параметра link',
hidden = false
},
err_bad_pmc = {
message = 'Перевірте значення <code class="cs1-code">|pmc=</code>',
anchor = 'bad_pmc',
category = 'Помилки CS1: Сторінки з помилками PMC',
hidden = false
},
err_bad_pmid = {
message = 'Перевірте значення <code class="cs1-code">|pmid=</code>',
anchor = 'bad_pmid',
category = 'Помилки CS1: Сторінки з помилками PMID',
hidden = false
},
err_bad_rfc = {
message = 'Перевірте значення <code class="cs1-code">|rfc=</code>',
anchor = 'bad_rfc',
category = 'Помилки CS1: Сторінки з помилками RFC',
hidden = false
},
err_bad_s2cid = {
message = 'Перевірте значення <code class="cs1-code">|s2cid=</code>',
anchor = 'bad_s2cid',
category = 'Помилки CS1: Сторінки з помилками S2CID',
hidden = false
},
err_bad_sbn = {
message = 'Перевірте значення <code class="cs1-code">|sbn=</code>: $1', -- $1 є детальним описом повідомлення про помлку
anchor = 'bad_sbn',
category = 'Помилки CS1: Сторінки з помилками SBN',
hidden = false
},
err_bad_ssrn = {
message = 'Перевірте значення <code class="cs1-code">|ssrn=</code>',
anchor = 'bad_ssrn',
category = 'Помилки CS1: Сторінки з помилками SSRN',
hidden = false
},
err_bad_url = {
message = 'Перевірте схему <code class="cs1-code">|url=</code>',
anchor = 'bad_url',
category = 'Сторінки з помилками URL',
hidden = false },
err_bad_usenet_id = {
message = 'Перевірте значення <code class="cs1-code">|message-id=</code>',
anchor = 'bad_message_id',
category = 'Помилки CS1: Сторінки з помилками message-id',
hidden = false
},
err_bad_zbl = {
message = 'Перевірте значення <code class="cs1-code">|zbl=</code>',
anchor = 'bad_zbl',
category = 'Помилки CS1: Сторінки з помилками Zbl',
hidden = false
},
err_bare_url_missing_title = {
message = 'Пропущений або порожній <code class="cs1-code">|title=</code>',
anchor = 'bare_url_missing_title',
category = 'Сторінки з URL без назв',
hidden = false },
err_biorxiv_missing = {
message = '<code class="cs1-code">|biorxiv=</code> є обов\'язковим параметром',
anchor = 'biorxiv_missing',
category = 'Помилки CS1: Сторінки з помилками bioRxiv', -- така ж сама як і в bad bioRxiv
hidden = false
},
err_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 = 'Сторінки з посиланнями на джерела без назв',
hidden = false },
err_citeseerx_missing = {
message = '<code class="cs1-code">|citeseerx=</code> є обов\'язковим параметром',
anchor = 'citeseerx_missing',
category = 'Помилки CS1: Сторінки з помилками citeseerx', -- така ж сама як і в bad citeseerx
hidden = false
},
err_cite_web_url = {
message = 'Пропущений або порожній <code class="cs1-code">|url=</code>',
anchor = 'cite_web_url',
category = 'Сторінки з посиланнями на web-джерела без URL',
hidden = false },
err_class_ignored = {
message = 'Проігноровано <code class="cs1-code">|class=</code>',
anchor = 'class_ignored',
category = 'Помилки CS1: Сторінки з помилками використання параметра class',
hidden = false
},
err_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 = 'Сторінки з помилками DOI',
hidden = false
},
err_embargo_missing_pmc = {
message = '<code class="cs1-code">|$1=</code> вимагає <code class="cs1-code">|pmc=</code>', -- $1 є ім'ям параметра
anchor = 'embargo_missing_pmc',
category = 'Помилки CS1: Сторінки з помилками використання параметра PMC embargo',
hidden = false
},
err_empty_citation = {
message = 'Порожнє посилання на джерело',
anchor = 'empty_citation',
category = 'Сторінки з порожніми посиланнями на джерела',
hidden = false },
err_etal = {
message = 'Явне використання «та ін.» у: <code class="cs1-code">|$1=</code>', -- $1 є ім'ям параметра
anchor = 'explicit_et_al',
category = 'Помилки CS1: Сторінки з явним використання та ін.',
hidden = false
},
-- err_extra_pages = {
-- message = 'Зайве <code class="cs1-code">|pages=</code> або <code class="cs1-code">|at=</code>',
-- anchor = 'extra_pages',
-- category = 'Сторінки з посиланнями на джерела з суперечливими параметрами сторінок',
-- hidden = false },
err_extra_text_pages = {
message = '<code class="cs1-code">|$1=</code> має зайвий текст', -- $1 є ім'ям параметра
anchor = 'extra_text_pages',
category = 'Помилки CS1: Сторінки з посиланнями на джерела із зайвим тексту у параметрі pages',
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 = 'Сторінки з посиланнями на джерела з 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_medrxiv_missing = {
message = '<code class="cs1-code">|medrxiv=</code> є обов\'язковим параметром',
anchor = 'medrxiv_missing',
category = 'Помилки CS1: Сторінки з помилками medRxiv', -- така ж сама як і в bad medRxiv
hidden = false
},
err_missing_name = {
message = 'Пропущено <code class="cs1-code">|$1$2=</code>', -- $1 є видозміненим NameList; $2 є лічильникомr
anchor = 'missing_name',
category = 'Помилки CS1: Сторінки з пропущеним ім\'ям', -- author, contributor, editor, interviewer, translator
hidden = false
},
err_param_access_requires_param = {
message = '<code class="cs1-code">|$1-access=</code> вимагає <code class="cs1-code">|$1=</code>', -- $1 є ім'ям параметра
anchor = 'param_access_requires_param',
category = 'Помилки CS1: Сторінки з помилками використання параметра param-access',
hidden = false
},
err_parameter_ignored = {
message = 'Проігноровано невідомий параметр <code class="cs1-code">|$1=</code>',
anchor = 'parameter_ignored',
category = 'Сторінки з посиланнями на джерела з параметрами, що не підтримуються',
hidden = false },
err_parameter_ignored_suggest = {
message = 'Проігноровано невідомий параметр <code class="cs1-code">|$1=</code> (можливо, <code class="cs1-code">|$2=</code>?)',
anchor = 'parameter_ignored_suggest',
category = 'Сторінки з посиланнями на джерела з параметрами, що не підтримуються',
hidden = false },
err_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 = 'Сторінки з посиланнями на джерела з зайвими параметрами',
hidden = false },
err_script_parameter = {
message = 'Недійсний <code class="cs1-code">|$1=</code>: $2', -- $1 є назвою параметра $2 є мовним кодом письма або детальною інформацією про помилку
anchor = 'script_parameter',
category = 'Помилки CS1:Сторінки з недійсним значенням параметра script',
hidden = false
},
err_ssrn_missing = {
message = '<code class="cs1-code">|ssrn=</code> є обов\'язковим параметром',
anchor = 'ssrn_missing',
category = 'Помилки CS1: Сторінки з помилками SSRN',
hidden = false
},
err_text_ignored = {
message = 'Текст «$1» проігноровано',
anchor = 'text_ignored',
category = 'Сторінки з посиланнями на джерела з параметрами без назв',
hidden = false },
err_trans_missing_title = {
message = '<code class="cs1-code">|trans-$1=</code> вимагає <code class="cs1-code">|$1=</code> або <code class="cs1-code">|script-$1=</code>',
anchor = 'trans_missing_title',
category = 'Сторінки з посиланнями на джерела з перекладеними назвами без оригіналу',
hidden = false },
err_trans_missing_quote = {
message = '<code class="cs1-code">|trans-quote=</code> вимагає <code class="cs1-code">|quote=</code> або <code class="cs1-code">|script-quote=</code>',
anchor = 'trans_missing_quote',
category = 'Помилки CS1:Сторінки з посиланнями на джерела з перекладеними цитатами без оригіналу',
hidden = false },
err_param_unknown_empty = {
message = 'Cite має пуст$3 невідом$3 параметр$1: $2', -- $1 є «и» або пустим рядком; $2 є списком пустих невідомих параметрів; $3 є «і» або «ий»
anchor = 'param_unknown_empty',
category = 'Помилки CS1: Сторінки з посиланнями на джерела з пустими невідомими параметрами',
hidden = false
},
err_vancouver = {
message = 'Помилка стилю Ванкувера: $1 в імені $2', -- $1 є описом помилки, $2 є н-те ім'я
anchor = 'vancouver',
category = 'Помилки CS1: Сторінки з помилками стилю Ванкувера',
hidden = false
},
err_wikilink_in_url = {
message = 'Назва URL містить вбудоване вікіпосилання',
anchor = 'wikilink_in_url',
category = 'Сторінки з посиланнями на джерела, що мають вікіпосилання у назвах URL',
hidden = false },
--[[--------------------------< M A I N T >-------------------------------------
повідомлення обслуговування не мають значень у пареметрі message (message = nil); в інакшому випадку
структура така сама як у повідомлення про помилку
]]
maint_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_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 id_limits_data_t = {};
for _, limit_t in ipairs (mw.ext.data.get ("CS1/Identifier limits.tab").data) do
id_limits_data_t[limit_t[1]] = limit_t[2]; -- <limit[1]> є ідентифікатором; <limit[2]> є верхнім лімітом для цього ідентифікатора
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, -- global settings from {{cs1 config}}
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,
indic_script = indic_script,
keywords_lists = keywords_lists,
keywords_xlate = keywords_xlate,
known_free_doi_registrants_t = build_free_doi_registrants_table(),
messages = messages,
prop_cats = prop_cats,
presentation = presentation,
single_letter_2nd_lvl_domains_t = single_letter_2nd_lvl_domains_t,
stripmarkers = stripmarkers,
script_lang_codes = script_lang_codes,
lang_tag_remap = lang_tag_remap,
supported_langauge_codes = supported_langauge_codes,
language_table = language_table,
this_wiki_code = this_wiki_code,
title_types = title_types,
vol_iss_pg_patterns = vol_iss_pg_patterns,
uncategorized_namespaces = uncategorized_namespaces_t,
uncategorized_subpages = uncategorized_subpages,
inter_wiki_map = inter_wiki_map,
mw_languages_by_tag_t = mw_languages_by_tag_t,
citation_class_map_t = citation_class_map_t
};