恪別𡧲版𢯢𢷮𧵑「Module:Citation/CS1/Configuration」
no edit summary
Keepout2010 (討論 | 㨂𢵰) n空固𥿂略𢯢𢷮 |
Keepout2010 (討論 | 㨂𢵰) 空固𥿂略𢯢𢷮 |
||
𣳔1: | 𣳔1: | ||
--[[--------------------------< U N C A T E G O R I Z E D _ N A M E S P A C E S >------------------------------ | --[[--------------------------< U N C A T E G O R I Z E D _ N A M E S P A C E S >------------------------------ | ||
List of namespaces that should not be included in citation error categories. | List of namespaces that should not be included in citation error categories. | ||
Same as setting notracking = true by default. | |||
Note: Namespace names should use underscores instead of spaces. | Note: Namespace names should use underscores instead of spaces. | ||
]] | ]] | ||
local uncategorized_namespaces = { 'Thành_viên', 'Thảo_luận', 'Thảo_luận_Thành_viên', 'Thảo_luận_Wikipedia', 'Thảo_luận_Tập_tin', 'Thảo_luận_Bản_mẫu', | local uncategorized_namespaces = { 'Thành_viên', 'Thảo_luận', 'Thảo_luận_Thành_viên', 'Thảo_luận_Wikipedia', | ||
'Thảo_luận_Tập_tin', 'Thảo_luận_Bản_mẫu', 'Thảo_luận_Trợ_giúp', 'Thảo_luận_Thể_loại', 'Thảo_luận_Cổng_thông_tin', | |||
'Thảo_luận_Mô_đun', 'Thảo_luận_MediaWiki' }; | 'Thảo_luận_Mô_đun', 'Thảo_luận_MediaWiki' }; | ||
local uncategorized_subpages = {'/[Ss]andbox', '/[Tt]hử', '/[Tt]estcases', '/[Kk]iểm[_ ]thử'}; -- list of Lua patterns found in page names of pages we should not categorize | local uncategorized_subpages = {'/[Ss]andbox', '/[Tt]hử', '/[Tt]estcases', '/[Kk]iểm[_ ]thử', '/[^/]*[Ll]og', '/[^/]*[Nn]hật[_ ]trình', '/[Aa]rchive', '/[Ll]ưu'}; -- list of Lua patterns found in page names of pages we should not categorize | ||
--[[--------------------------< M E S S A G E S >-------------------------------------------------------------- | --[[--------------------------< M E S S A G E S >-------------------------------------------------------------- | ||
𣳔30: | 𣳔24: | ||
local messages = { | local messages = { | ||
['agency'] = '$1 $2', -- $1 is sepc, $2 is agency | |||
['archived-dead'] = '$1 lưu trữ $2', | |||
['archived-live'] = '$1 bản gốc $2', | |||
['archived-missing'] = 'Bản gốc$1 lưu trữ $2', | |||
['archived-unfit'] = 'Lưu trữ bản gốc ', | |||
['archived'] = 'Lưu trữ', | |||
['by'] = 'Bởi', -- contributions to authored works: introduction, foreword, afterword | |||
['cartography'] = '$1 thiết kế bản đồ', | |||
['editor'] = 'biên tập', | |||
['editors'] = 'biên tập', | |||
['edition'] = '(ấn bản $1)', | |||
['episode'] = 'Tập $1', | |||
['et al'] = 'và đồng nghiệp', | |||
['in'] = 'Trong', -- edited works | |||
['inactive'] = 'không hoạt động', | |||
['inset'] = 'Bản đồ lồng $1', | |||
['interview'] = 'Phóng viên $1', | |||
['lay summary'] = 'Tóm lược dễ hiểu', | |||
['newsgroup'] = '[[Nhóm tin Usenet|Nhóm tin]]: $1', | |||
['notitle'] = 'Không tên', -- for |title=(()) and (in the future) |title=none | |||
['original'] = 'Bản gốc', | |||
['origdate'] = ' [$1]', | |||
['published'] = ' (xuất bản $1)', | |||
['retrieved'] = 'Truy cập $1', | |||
['season'] = 'Mùa $1', | |||
['section'] = '§ $1', | |||
['sections'] = '§§ $1', | |||
['series'] = '$1 $2', -- $1 is sepc, $2 is series | |||
['seriesnum'] = 'Loạt $1', | |||
['translated'] = '$1 biên dịch', | |||
['type'] = ' ($1)', -- for titletype | |||
['written'] = 'Soạn tại $1', | |||
['vol'] = '$1 Quyển $2', -- $1 is sepc; bold journal style volume is in presentation{} | |||
['vol-no'] = '$1 Quyển $2 số $3', -- sepc, volume, issue | |||
['issue'] = '$1 số $2', -- $1 is sepc | |||
['j-vol'] = '$1 $2', -- sepc, volume; bold journal volume is in presentation{} | |||
['j-issue'] = ' ($1)', | |||
['nopp'] = '$1 $2'; -- page(s) without prefix; $1 is sepc | |||
['p-prefix'] = "$1 tr. $2", -- $1 is sepc | |||
['pp-prefix'] = "$1 tr. $2", -- $1 is sepc | |||
['j-page(s)'] = ': $1', -- same for page and pages | |||
['sheet'] = '$1 Tờ $2', -- $1 is sepc | |||
['sheets'] = '$1 Tờ $2', -- $1 is sepc | |||
['j-sheet'] = ': Tờ $1', | |||
['j-sheets'] = ': Tờ $1', | |||
['language'] = '(bằng tiếng $1)', | |||
['via'] = " – qua $1", | |||
['event'] = 'Sự kiện xảy ra vào lúc', | |||
['minutes'] = 'phút', | |||
-- Determines the location of the help page | |||
['help page link'] = 'Trợ giúp:Lỗi CS1', | |||
['help page label'] = 'trợ giúp', | |||
-- categories | |||
['cat wikilink'] = '[[Thể loại:$1]]', -- $1 is the category name | |||
[':cat wikilink'] = '[[:Thể loại:$1|liên kết]]', -- category name as maintenance message wikilink; $1 is the category name | |||
-- Internal errors (should only occur if configuration is bad) | |||
['undefined_error'] = 'Xuất hiện lỗi bất ngờ', | |||
['unknown_ID_key'] = 'Chìa khóa ID không rõ', -- an ID key in id_handlers not found in ~/Identifiers func_map{} | |||
['unknown_argument_map'] = 'Ánh xạ đối số không được định rõ cho biến số này', | |||
['bare_url_no_origin'] = 'Đã tìm thấy URL thô nhưng phần chỉ nguồn gốc là vô giá trị (nil) hoặc trống', | |||
} | |||
--[=[-------------------------< E T _ A L _ P A T T E R N S >-------------------------------------------------- | |||
This table provides Lua patterns for the phrase "et al" and variants in name text | |||
(author, editor, etc.). The main module uses these to identify and emit the 'etal' message. | |||
]=] | |||
local et_al_patterns = { | |||
"[;,]? *[\"']*%f[%a][Ee][Tt]%.? *[Aa][Ll][%.\"']*$", -- variations on the 'et al' theme | |||
"[;,]? *[\"']*%f[%a][Ee][Tt]%.? *[Aa][Ll][Ii][AaIi][Ee]?[%.\"']*$", -- variations on the 'et alia', 'et alii' and 'et aliae' themes (false positive 'et aliie' unlikely to match) | |||
"[;,]? *%f[%a]and [Oo]thers", -- an alternative to et al. | |||
"%[%[ *[Ee][Tt]%.? *[Aa][Ll]%.? *%]%]", -- a wikilinked form | |||
"%(%( *[Ee][Tt]%.? *[Aa][Ll]%.? *%)%)", -- a double-bracketed form (to counter partial removal of ((...)) syntax) | |||
"[%(%[] *[Ee][Tt]%.? *[Aa][Ll]%.? *[%)%]]", -- a bracketed form | |||
"[;,]? *%f[%a]và *[Đđ]ồng *nghiệp", | |||
} | |||
--[[--------------------------< E D I T O R _ M A R K U P _ P A T T E R N S >---------------------------------- | |||
This table provides Lua patterns for the phrase "ed" and variants in name text | |||
(author, editor, etc.). The main module uses these to identify and emit the | |||
'extra_text_names' message. (It is not the only series of patterns for this message.) | |||
]] | |||
local editor_markup_patterns = { -- these patterns match annotations at end of name | |||
'%f[%(%[][%(%[]%s*[Ee][Dd][Ss]?%.?%s*[%)%]]?$', -- (ed) or (eds): leading '(', case insensitive 'ed', optional 's', '.' and/or ')' | |||
'[,%.%s]%f[e]eds?%.?$', -- ed or eds: without '('or ')'; case sensitive (ED could be initials Ed could be name) | |||
'%f[%(%[][%(%[]%s*[Ee][Dd][Ii][Tt][Oo][Rr][Ss]?%.?%s*[%)%]]?$', -- (editor) or (editors): leading '(', case insensitive, optional '.' and/or ')' | |||
'[,%.%s]%f[Ee][Dd][Ii][Tt][Oo][Rr][Ss]?%.?$', -- editor or editors: without '('or ')'; case insensitive | |||
-- these patterns match annotations at beginning of name | |||
'^eds?[%.,;]', -- ed. or eds.: lower case only, optional 's', requires '.' | |||
'^[%(%[]%s*[Ee][Dd][Ss]?%.?%s*[%)%]]', -- (ed) or (eds): also sqare brackets, case insensitive, optional 's', '.' | |||
'^[%(%[]?%s*[Ee][Dd][Ii][Tt][Oo][Rr][Ss]?%A', -- (editor or (editors: also square brackets, case insensitive, optional brackets, 's' | |||
'^[%(%[]?%s*[Ee][Dd][Ii][Tt][Ee][Dd]%A', -- (edited: also square brackets, case insensitive, optional brackets | |||
-- these patterns match annotations that are the 'name' | |||
'^[Ee][Dd][Ii][Tt][Oo][Rr][Ss]?%.?$', -- editor or editors; case insensitive, | |||
'^biên tập', | |||
} | |||
--[[--------------------------< P R E S E N T A T I O N > | --[[--------------------------< P R E S E N T A T I O N >------------------------ | ||
Fixed presentation markup. Originally part of citation_config.messages it has been moved into its own, more semantically | Fixed presentation markup. Originally part of citation_config.messages it has | ||
correct place. | been moved into its own, more semantically correct place. | ||
]] | ]] | ||
local presentation = | local presentation = | ||
{ | { | ||
𣳔91: | 𣳔152: | ||
-- .error class is specified at https://git.wikimedia.org/blob/mediawiki%2Fcore.git/9553bd02a5595da05c184f7521721fb1b79b3935/skins%2Fcommon%2Fshared.css#L538 | -- .error class is specified at https://git.wikimedia.org/blob/mediawiki%2Fcore.git/9553bd02a5595da05c184f7521721fb1b79b3935/skins%2Fcommon%2Fshared.css#L538 | ||
-- .citation-comment class is specified at Help:CS1_errors#Controlling_error_message_display | -- .citation-comment class is specified at Help:CS1_errors#Controlling_error_message_display | ||
['hidden-error'] = '<span | ['hidden-error'] = '<span class="cs1-hidden-error error citation-comment">$1</span>', | ||
[' | ['visible-error'] = '<span class="cs1-visible-error error citation-comment">$1</span>', | ||
['hidden-maint'] = '<span class="cs1-maint citation-comment">$1</span>', | |||
['accessdate'] = '<span class="reference-accessdate">$1$2</span>', -- to allow editors to hide accessdate using personal CSS | |||
['bdi'] = '<bdi$1>$2</bdi>', -- bidirectional isolation used with |script-title= and the like | |||
['cite'] = '<cite class="$1">$2</cite>'; -- |ref= not set so no id="..." attribute | |||
['cite-id'] = '<cite id="$1" class="$2">$3</cite>'; -- for use when |ref= is set | |||
['format'] = ' <span class="cs1-format">($1)</span>', -- for |format=, |chapter-format=, etc. | |||
-- various access levels, for |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>', -- external link with appropriate lock icon | ||
['free'] = {class='cs1-lock-free', title='Truy cập mở'}, -- classes defined in Module:Citation/CS1/styles.css | |||
['registration'] = {class='cs1-lock-registration', title='Yêu cầu đăng ký miễn phí'}, | |||
['limited'] = {class='cs1-lock-limited', title='Truy cập miễn phí một cách hạn chế, thường yêu cầu đăng ký'}, | |||
['subscription'] = {class='cs1-lock-subscription', title='Yêu cầu đăng ký mua quyền truy cập'}, | |||
[' | ['interwiki-icon'] = '<span class="$1" title="$2">$3</span>', | ||
['class-wikisource'] = 'cs1-ws-icon', | |||
['italic-title'] = "''$1''", | ['italic-title'] = "''$1''", | ||
['kern-left'] = '<span | ['kern-left'] = '<span class="cs1-kern-left">$1</span>$2', -- spacing to use when title contains leading single or double quote mark | ||
['kern-right'] = '$1<span | ['kern-right'] = '$1<span class="cs1-kern-right">$2</span>', -- spacing to use when title contains trailing single or double quote mark | ||
-- these for simple wikilinked titles [["text]], [[text"]] and [["text"]] | |||
-- span wraps entire wikilink | |||
['kern-wl-left'] = '<span class="cs1-kern-wl-left">$1</span>', -- when title contains leading single or double quote mark | |||
['kern-wl-right'] = '<span class="cs1-kern-wl-left">$1</span>', -- when title contains trailing single or double quote mark | |||
['kern-wl-both'] = '<span class="cs1-kern-wl-left cs1-kern-wl-right">$1</span>', -- when title contains leading and trailing single or double quote marks | |||
['nowrap1'] = '<span class="nowrap">$1</span>', -- for nowrapping an item: <span ...>yyyy-mm-dd</span> | ['nowrap1'] = '<span class="nowrap">$1</span>', -- for nowrapping an item: <span ...>yyyy-mm-dd</span> | ||
['nowrap2'] = '<span class="nowrap">$1</span> $2', -- for nowrapping portions of an item: <span ...>dd mmmm</span> yyyy (note white space) | ['nowrap2'] = '<span class="nowrap">$1</span> $2', -- for nowrapping portions of an item: <span ...>dd mmmm</span> yyyy (note white space) | ||
['ocins'] = '<span title="$1" class="Z3988"></span>', | |||
['parameter'] = '<code | ['parameter'] = '<code class="cs1-code">|$1=</code>', | ||
['ps_cs1'] = '.'; -- CS1 style postscript (terminal) character | |||
['ps_cs2'] = ''; -- CS2 style postscript (terminal) character (empty string) | |||
['quoted-text'] = '<q>$1</q>', -- for wrapping |quote= content | ['quoted-text'] = '<q>$1</q>', -- for wrapping |quote= content | ||
['quoted-title'] = '“$1”', | ['quoted-title'] = '“$1”', | ||
['sep_cs1'] = '.', -- CS1 element separator | |||
['sep_cs2'] = ',', -- CS2 separator | |||
['sep_nl'] = ';', -- CS1|2 style name-list separator between names is a semicolon | |||
['sep_nl_and'] = ' và ', -- used as last nl sep when |name-list-style=and and list has 2 items | |||
['sep_nl_end'] = '; và ', -- used as last nl sep when |name-list-style=and and list has 3+ names | |||
['sep_name'] = ', ', -- CS1|2 style last/first separator is <comma><space> | |||
['sep_nl_vanc'] = ',', -- Vancouver style name-list separator between authors is a comma | |||
['sep_name_vanc'] = ' ', -- Vancouver style last/first separator is a space | |||
['sep_list'] = ', ', -- used for |language= when list has 3+ items except for last sep which uses sep_list_end | |||
['sep_list_pair'] = ' và ', -- used for |language= when list has 2 items | |||
['sep_list_end'] = ', và ', -- used as last list sep for |language= when list has 3+ items | |||
['trans-italic-title'] = "[''$1'']", | ['trans-italic-title'] = "[''$1'']", | ||
['trans-quoted-title'] = "[$1]", | ['trans-quoted-title'] = "[$1]", -- for |trans-title= and |trans-quote= | ||
['vol-bold'] = '$1 <b>$2</b>', -- sepc, volume; for bold journal cites; for other cites ['vol'] in messages{} | |||
} | } | ||
--[[--------------------------< A L I A S E S >--------------------------------- | |||
--[[--------------------------< A L I A S E S >--------------------------------- | |||
Aliases table for commonly passed parameters. | |||
Parameter names on the right side in the assignments in this table must have been | |||
defined in the Whitelist before they will be recognized as valid parameter names | |||
]] | ]] | ||
local aliases = { | local aliases = { | ||
['AccessDate'] = {'access-date', 'accessdate', 'ngày truy cập', 'ngày truy nhập'}, | ['AccessDate'] = {'access-date', 'accessdate', 'ngày truy cập', 'ngày truy nhập'}, -- Used by InternetArchiveBot | ||
['Agency'] = {'agency', 'thông tấn xã', 'hãng thông tấn', 'hãng tin tức'}, | ['Agency'] = {'agency', 'thông tấn xã', 'hãng thông tấn', 'hãng tin tức'}, | ||
['ArchiveDate'] = {'archive-date', 'archivedate', 'ngày lưu trữ'}, -- Used by InternetArchiveBot | |||
['ArchiveDate'] = {'archive-date', 'archivedate', 'ngày lưu trữ'}, | |||
['ArchiveFormat'] = {'archive-format', 'định dạng lưu trữ'}, | ['ArchiveFormat'] = {'archive-format', 'định dạng lưu trữ'}, | ||
['ArchiveURL'] = {'archive-url', 'archiveurl', 'url lưu trữ'}, | ['ArchiveURL'] = {'archive-url', 'archiveurl', 'url lưu trữ'}, -- Used by InternetArchiveBot | ||
['ASINTLD'] = {'ASIN-TLD', 'asin-tld', 'TLD ASIN', 'tên miền cấp cao nhất ASIN'}, | ['ASINTLD'] = {'ASIN-TLD', 'asin-tld', 'TLD ASIN', 'tên miền cấp cao nhất ASIN'}, | ||
['At'] = 'at', | ['At'] = 'at', -- Used by InternetArchiveBot | ||
['Authors'] = {'authors', 'people | ['Authors'] = {'authors', 'people', 'credits', 'các tác giả', 'xướng ngôn viên'}, | ||
['BookTitle'] = {'book-title', 'booktitle', 'tên sách'}, | ['BookTitle'] = {'book-title', 'booktitle', 'tên sách'}, | ||
['Cartography'] = {'cartography', 'thiết kế bản đồ'}, | ['Cartography'] = {'cartography', 'thiết kế bản đồ'}, | ||
['Chapter'] = {'chapter', 'contribution', 'entry', 'article', 'section', 'chương', 'mục'}, | ['Chapter'] = {'chapter', 'contribution', 'entry', 'article', 'section', 'chương', 'mục'}, | ||
['ChapterFormat'] = {'chapter-format', 'contribution-format', ' | ['ChapterFormat'] = {'chapter-format', 'contribution-format', 'entry-format', | ||
'article-format', 'section-format', 'định dạng chương', 'định dạng mục'}; | |||
['ChapterURL'] = {'chapter-url', ' | ['ChapterURL'] = {'chapter-url', 'contribution-url', 'entry-url', 'article-url', | ||
[' | 'section-url', 'chapterurl', 'url chương'}, -- Used by InternetArchiveBot | ||
['ChapterUrlAccess'] = {'chapter-url-access', 'contribution-url-access', | |||
'entry-url-access', 'article-url-access', 'section-url-access'}, -- Used by InternetArchiveBot | |||
[' | ['Class'] = {'class', 'lớp'}, -- cite arxiv and arxiv identifiers | ||
['Collaboration'] = {'collaboration', 'cộng tác'}, | |||
['Conference'] = {'conference', 'event', 'hội nghị', 'sự kiện'}, | ['Conference'] = {'conference', 'event', 'hội nghị', 'sự kiện'}, | ||
['ConferenceFormat'] = {'conference | ['ConferenceFormat'] = {'conference-format', 'định dạng hội nghị'}, | ||
['ConferenceURL'] = {'conference-url | ['ConferenceURL'] = {'conference-url', 'url hội nghị', 'địa chỉ hội nghị'}, -- Used by InternetArchiveBot | ||
['Date'] = {'date', 'air-date', 'airdate', 'ngày tháng', 'ngày', 'ngày phát'}, | ['Date'] = {'date', 'air-date', 'airdate', 'ngày tháng', 'ngày', 'ngày phát'}, -- air-date and airdate for cite episode and cite serial only | ||
['Degree'] = {'degree', 'học vị'}, | ['Degree'] = {'degree', 'học vị'}, | ||
['DisplayAuthors'] = {'display-authors', ' | ['DF'] = 'df', | ||
['DisplayEditors'] = {'display-editors | ['DisplayAuthors'] = {'display-authors', 'display-subjects', 'số tác giả'}, | ||
['DisplayContributors'] = 'display-contributors', | |||
['DisplayEditors'] = {'display-editors', 'số biên tập viên', 'số biên tập'}, | |||
['DisplayInterviewers'] = 'display-interviewers', | |||
['DisplayTranslators'] = 'display-translators', | |||
['Docket'] = {'docket', 'sổ hiệu'}, | ['Docket'] = {'docket', 'sổ hiệu'}, | ||
['DoiBroken'] = {'doi-broken | ['DoiBroken'] = {'doi-broken-date', 'ngày hư DOI', 'DOI hư', 'DOI hỏng'}, | ||
['Edition'] = {'edition', 'ấn bản', 'bản thứ', 'lần in'}, | ['Edition'] = {'edition', 'ấn bản', 'bản thứ', 'lần in'}, | ||
[' | ['Embargo'] = {'pmc-embargo-date', 'cấm vận'}, | ||
['Encyclopedia'] = {'encyclopedia', 'encyclopaedia', 'dictionary', 'bách khoa toàn thư', 'bách khoa thư', 'từ điển bách khoa', 'từ điển', 'tự điển'}, -- cite encyclopedia only | |||
['Encyclopedia'] = {'encyclopedia', 'encyclopaedia', 'bách khoa toàn thư', 'bách khoa thư', 'từ điển bách khoa' | |||
['Episode'] = {'episode', 'phần', 'tập'}, -- cite serial only TODO: make available to cite episode? | ['Episode'] = {'episode', 'phần', 'tập'}, -- cite serial only TODO: make available to cite episode? | ||
['Format'] = {'format', 'định dạng'}, | ['Format'] = {'format', 'định dạng'}, | ||
['ID'] = {'id', 'ID', 'mã số', 'docket', 'số ghi án'}, | ['ID'] = {'id', 'ID', 'mã số', 'docket', 'số ghi án'}, | ||
['Inset'] = {'inset', 'bản đồ lồng'}, | ['Inset'] = {'inset', 'bản đồ lồng'}, | ||
['Issue'] = {'issue', 'number', 'số'}, | ['Issue'] = {'issue', 'number', 'số'}, | ||
['Language'] = {'language', ' | ['Language'] = {'language', 'lang', 'ngôn ngữ'}, | ||
['LayDate'] = {'lay-date', 'ngày tóm lược'}, | |||
['LayDate'] = {'lay-date | |||
['LayFormat'] = {'lay-format', 'định dạng tóm lược'}, | ['LayFormat'] = {'lay-format', 'định dạng tóm lược'}, | ||
['LaySource'] = {'lay-source | ['LaySource'] = {'lay-source', 'nguồn tóm lược'}, | ||
['LayURL'] = {'lay-url | ['LayURL'] = {'lay-url', 'tóm lược dễ hiểu', 'url dễ hiểu'}, | ||
['MailingList'] = {' | ['MailingList'] = {'mailing-list', 'mailinglist', 'danh sách thư'}, -- cite mailing list only | ||
['Map'] = {'map', 'bản đồ'}, -- cite map only | ['Map'] = {'map', 'bản đồ'}, -- cite map only | ||
['MapFormat'] = {'map-format', 'định dạng bản đồ'}, -- cite map only | ['MapFormat'] = {'map-format', 'định dạng bản đồ'}, -- cite map only | ||
['MapURL'] = {' | ['MapURL'] = {'map-url', 'mapurl', 'url bản đồ'}, -- cite map only -- Used by InternetArchiveBot | ||
[' | ['MapUrlAccess'] = 'map-url-access', -- cite map only -- Used by InternetArchiveBot | ||
['Minutes'] = {'minutes', 'phút'}, | ['Minutes'] = {'minutes', 'phút'}, | ||
['Mode'] = {'mode', 'chế độ'}, | ['Mode'] = {'mode', 'chế độ'}, | ||
[' | ['NameListStyle'] = {'name-list-style', 'kiểu danh sách tên'}, | ||
['Network'] = {'network', 'mạng'}, | ['Network'] = {'network', 'mạng'}, | ||
['Newsgroup'] = 'newsgroup', -- cite newsgroup only | |||
['NoPP'] = {'no-pp', 'nopp', 'không trang'}, | ['NoPP'] = {'no-pp', 'nopp', 'không trang'}, | ||
['NoTracking'] = {' | ['NoTracking'] = {'no-tracking', 'template-doc-demo'}, | ||
['Number'] = 'number', -- this case only for cite techreport | |||
[' | ['OrigDate'] = {'orig-date', 'orig-year', 'origyear', 'năm gốc'}, | ||
['Others'] = {'others | ['Others'] = {'others', 'nguời khác', 'người phỏng vấn'}, | ||
['Page'] = {' | ['Page'] = {'page', 'p', 'trang', 'tr'}, -- Used by InternetArchiveBot | ||
['Pages'] = {' | ['Pages'] = {'pages', 'pp', 'các trang'}, -- Used by InternetArchiveBot | ||
['Periodical'] = {'journal', 'tạp chí', 'newspaper', 'báo', ' | ['Periodical'] = {'journal', 'magazine', 'tạp chí', 'newspaper', 'báo', 'periodical', 'website', 'trang web', 'trang mạng', 'work', 'tác phẩm', 'công trình'}, | ||
['Place'] = {'place', 'location', 'nơi', 'thành phố', 'vị trí', 'địa điểm'}, | |||
['Place'] = {'place', 'location', 'nơi | |||
['PostScript'] = {'postscript', 'tái bút'}, | ['PostScript'] = {'postscript', 'tái bút'}, | ||
['PublicationDate'] = {' | ['PublicationDate'] = {'publication-date', 'publicationdate', 'ngày xuất bản'}, | ||
['PublicationPlace'] = {'publication-place', 'publicationplace', 'nơi xuất bản', 'thành phố xuất bản'}, | ['PublicationPlace'] = {'publication-place', 'publicationplace', 'nơi xuất bản', 'thành phố xuất bản'}, | ||
['PublisherName'] = {'publisher | ['PublisherName'] = {'publisher', 'institution', 'nhà xuất bản', 'nxb', 'nhà phân phối', 'học viện', 'nhóm tin', 'nhóm tin tức'}, | ||
['Quote'] = {'quote', 'quotation', 'trích dẫn'}, | ['Quote'] = {'quote', 'quotation', 'trích dẫn'}, | ||
[' | ['QuotePage'] = 'quote-page', | ||
[' | ['QuotePages'] = 'quote-pages', | ||
['Ref'] = {'ref', 'tham khảo'}, | |||
['Scale'] = {'scale', 'tỷ lệ', 'tỉ lệ'}, | ['Scale'] = {'scale', 'tỷ lệ', 'tỉ lệ'}, | ||
[' | ['ScriptChapter'] = {'script-chapter', 'script-contribution', 'script-entry', | ||
[' | 'script-article', 'script-section'}, | ||
['ScriptMap'] = 'script-map', | |||
['ScriptPeriodical'] = {'script-journal', 'script-magazine', 'script-newspaper', | |||
'script-periodical', 'script-website', 'script-work'}, | |||
['ScriptQuote'] = 'script-quote', | |||
['ScriptTitle'] = {'script-title', 'tiêu đề chữ khác'}, -- Used by InternetArchiveBot | |||
['Season'] = {'season', 'mùa'}, | ['Season'] = {'season', 'mùa'}, | ||
['Sections'] = 'sections', -- cite map only | ['Sections'] = 'sections', -- cite map only | ||
['Series'] = {'series', 'version', 'đợt', 'loạt'}, | ['Series'] = {'series', 'version', 'đợt', 'loạt'}, | ||
['SeriesLink'] = {'series-link', 'serieslink', 'lk loạt', 'liên kết loạt'}, | ['SeriesLink'] = {'series-link', 'serieslink', 'lk loạt', 'liên kết loạt'}, | ||
['SeriesNumber'] = {'series-number', 'series-no | ['SeriesNumber'] = {'series-number', 'series-no', 'số loạt'}, | ||
['Sheet'] = {'sheet', 'tờ'}, -- cite map only | ['Sheet'] = {'sheet', 'tờ'}, -- cite map only | ||
['Sheets'] = {'sheets', 'các tờ'}, -- cite map only | ['Sheets'] = {'sheets', 'các tờ'}, -- cite map only | ||
['Station'] = {'station', 'kênh', 'đài'}, | ['Station'] = {'station', 'kênh', 'đài'}, | ||
['Time'] = {'time', 'thời gian', 'thì giờ'}, | ['Time'] = {'time', 'thời gian', 'thì giờ'}, | ||
['TimeCaption'] = {'time-caption | ['TimeCaption'] = {'time-caption', 'chú thích thời gian', 'chú thích thì giờ'}, | ||
['Title'] = {'title', 'tựa đề', 'tiêu đề', 'tên bài'}, | ['Title'] = {'title', 'tựa đề', 'tiêu đề', 'tên bài'}, -- Used by InternetArchiveBot | ||
['TitleLink'] = {'title-link', 'episode-link | ['TitleLink'] = {'title-link', 'episode-link', 'episodelink', 'lk tựa đề', 'liên kết tựa đề', 'lk tiêu đề', 'liên kết tiêu đề', 'lk tên bài', 'liên kết tên bài', 'lk phần', 'liên kết phần'}, -- Used by InternetArchiveBot | ||
['TitleNote'] = {'department', 'tờ'}, | ['TitleNote'] = {'department', 'tờ'}, | ||
['TitleType'] = {'type', 'medium', 'kiểu', 'phương tiện'}, | ['TitleType'] = {'type', 'medium', 'kiểu', 'phương tiện'}, | ||
['TransChapter'] = {'trans- | ['TransChapter'] = {'trans-article', 'trans-chapter', 'trans-contribution', | ||
'trans-entry', 'trans-section', 'dịch chương'}, | |||
['Transcript'] = {'transcript', 'bản sao'}, | ['Transcript'] = {'transcript', 'bản sao'}, | ||
['TranscriptFormat'] = {'transcript-format', 'định dạng bản sao'}, | ['TranscriptFormat'] = {'transcript-format', 'định dạng bản sao'}, | ||
['TranscriptURL'] = {'transcript-url', 'transcripturl', 'lk bản sao', 'liên kết bản sao'}, | ['TranscriptURL'] = {'transcript-url', 'transcripturl', 'lk bản sao', 'liên kết bản sao'}, -- Used by InternetArchiveBot | ||
[' | ['TransMap'] = 'trans-map', -- cite map only | ||
['URL'] = {'url', 'URL', 'địa chỉ'}, | ['TransPeriodical'] = {'trans-journal', 'trans-magazine', 'trans-newspaper', | ||
'trans-periodical', 'trans-website', 'trans-work'}, | |||
['TransQuote'] = 'trans-quote', | |||
['TransTitle'] = {'trans-title', 'dịch tựa đề', 'dịch tiêu đề', 'dịch tên bài'}, -- Used by InternetArchiveBot | |||
['URL'] = {'url', 'URL', 'địa chỉ'}, -- Used by InternetArchiveBot | |||
['UrlAccess'] = 'url-access', -- Used by InternetArchiveBot | |||
['UrlStatus'] = 'url-status', -- Used by InternetArchiveBot | |||
['Vauthors'] = 'vauthors', | ['Vauthors'] = 'vauthors', | ||
['Veditors'] = 'veditors', | ['Veditors'] = 'veditors', | ||
𣳔246: | 𣳔343: | ||
['Year'] = {'year', 'năm'}, | ['Year'] = {'year', 'năm'}, | ||
['AuthorList-First'] = {"first#", "given#", "author- | ['AuthorList-First'] = {"first#", "author-first#", "author#-first", "given#", | ||
['AuthorList-Last'] = {"last#", "author#", "surname#", "author- | "author-given#", "author#-given", "tên #", "tên#"}, | ||
['AuthorList-Link'] = { | ['AuthorList-Last'] = {"last#", "author-last#", "author#-last", "surname#", | ||
['AuthorList-Mask'] = {"author-mask#", "authormask#", "author#mask", " | "author-surname#", "author#-surname", "author#", "subject#", 'host#', "họ #", "họ#", "tác giả #", "tác giả#"}, | ||
['AuthorList-Link'] = {"author-link#", "author#-link", "subject-link#", | |||
"subject#-link", "authorlink#", "author#link", "lk tác giả #", "lk tác giả#"}, | |||
['AuthorList-Mask'] = {"author-mask#", "author#-mask", "subject-mask#", "subject#-mask", "authormask#", "author#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", | |||
"tên biên tập #", "tên biên tập#", "tên biên tập viên #", "tên biên tập viên#"}, | |||
['EditorList-Last'] = {"editor-last#", "editor#-last", "editor-surname#", | |||
"editor#-surname", "editor#", | |||
"họ biên tập #", "họ biên tập#", "họ biên tập viên #", "họ biên tập viên#"}, | |||
['EditorList-Link'] = {"editor-link#", "editor#-link", | |||
"lk biên tập #", "lk biên tập#", "liên kết biên tập #", "liên kết biên tập#", | |||
"lk biên tập viên #", "lk biên tập viên#", "liên kết biên tập viên #", "liên kết biên tập viên#"}, | |||
['EditorList-Mask'] = {"editor-mask#", "editor#-mask"}, | |||
[' | ['InterviewerList-First'] = {'interviewer-first#', 'interviewer#-first', | ||
[' | 'interviewer-given#', 'interviewer#-given', 'tên phóng viên #', 'tên phóng viên#'}, | ||
[' | ['InterviewerList-Last'] = {'interviewer-last#', 'interviewer#-last', | ||
[' | 'interviewer-surname#', 'interviewer#-surname', 'interviewer#', 'họ phóng viên #', 'họ phóng viên#'}, | ||
} | ['InterviewerList-Link'] = {'interviewer-link#', 'interviewer#-link', | ||
'liên kết phóng viên #', 'liên kết phóng viên#'}, | |||
['InterviewerList-Mask'] = {'interviewer-mask#', 'interviewer#-mask'}, | |||
['TranslatorList-First'] = {'translator-first#', 'translator#-first', | |||
'translator-given#', 'translator#-given', 'tên dịch giả #', 'tên dịch giả#'}, | |||
['TranslatorList-Last'] = {'translator-last#', 'translator#-last', | |||
'translator-surname#', 'translator#-surname', 'translator#', 'họ dịch giả #', 'họ dịch giả#'}, | |||
['TranslatorList-Link'] = {'translator-link#', 'translator#-link', 'liên kết dịch giả #', 'liên kết dịch giả#'}, | |||
['TranslatorList-Mask'] = {'translator-mask#', 'translator#-mask'}, | |||
} | |||
--[[--------------------------< P U N C T _ S K I P >--------------------------- | |||
builds a table of parameter names that the extraneous terminal punctuation check should not check. | |||
]] | |||
local punct_skip = {}; | |||
local meta_params = { -- table of aliases[] keys (meta parameters); each key has a table of parameter names for a value | |||
'BookTitle', 'Chapter', 'ScriptChapter', 'ScriptTitle', 'Title', 'TransChapter', 'Transcript', 'TransMap', 'TransTitle', -- title-holding parameters | |||
'AuthorList-Mask', 'ContributorList-Mask', 'EditorList-Mask', 'InterviewerList-Mask', 'TranslatorList-Mask', -- name-list mask may have name separators | |||
'PostScript', 'Quote', 'ScriptQuote', 'TransQuote', 'Ref', -- miscellaneous | |||
'ArchiveURL', 'ChapterURL', 'ConferenceURL', 'LayURL', 'MapURL', 'TranscriptURL', 'URL', -- URL-holding parameters | |||
} | |||
for _, meta_param in ipairs (meta_params) do -- for each meta parameter key | |||
local params = aliases[meta_param]; -- get the parameter or the table of parameters associated with the meta parameter name | |||
if 'string' == type (params) then | |||
punct_skip[params] = 1; -- just a single parameter | |||
else | |||
for _, param in ipairs (params) do -- get the parameter name | |||
punct_skip[param] = 1; -- add the parameter name to the skip table | |||
local count; | |||
param, count = param:gsub ('#', ''); -- remove enumerator marker from enumerated parameters | |||
if 0 ~= count then -- if removed | |||
punct_skip[param] = 1; -- add param name without enumerator marker | |||
end | |||
end | |||
end | |||
end | |||
--[[-----------< S P E C I A L C A S E T R A N S L A T I O N S >------------ | |||
This table is primarily here to support internationalization. Translations in | |||
this table are used, for example, when an error message, category name, etc., | |||
is extracted from the English alias key. There may be other cases where | |||
this translation table may be useful. | |||
]] | |||
local special_case_translation = { | |||
['AuthorList'] = 'danh sách tác giả', -- used to assemble maintenance category names | |||
['ContributorList'] = 'danh sách đồng nghiệp', -- translation of these names plus translation of the base mainenance category names in maint_cats{} table below | |||
['EditorList'] = 'danh sách biên tập viên', -- must match the names of the actual categories | |||
['InterviewerList'] = 'danh sách phóng viên', -- this group or translations used by name_has_ed_markup() and name_has_mult_names() | |||
['TranslatorList'] = 'danh sách dịch giả', | |||
['authors'] = 'tác giả', -- used to assemble maintenance category names | |||
['contributors'] = 'đồng nghiệp', -- translation of these names plus translation of the base maintenance category names in maint_cats{} table below | |||
['editors'] = 'biên tập viên', -- must match the names of the actual categories | |||
['interviewers'] = 'phóng viên', -- this group of translations used by get_display_names() | |||
['translators'] = 'dịch giả', | |||
-- 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'] = nil, -- 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'] = { | |||
-- patterns in this table should be lowercase only | |||
-- leave ['local'] nil except when there is a matching generic title in your language | |||
-- generic titles must be lowercase | |||
-- boolean 'true' for plain-text searches; 'false' for pattern searches | |||
{['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', true}, ['local'] = nil}, | |||
{['en'] = {'internet archive wayback machine', true}, ['local'] = nil}, | |||
{['en'] = {'log into facebook', true}, ['local'] = nil}, | |||
{['en'] = {'redirecting...', true}, ['local'] = nil}, | |||
{['en'] = {'webcite query result', true}, ['local'] = nil}, | |||
{['en'] = {'wikiwix\'s cache', true}, ['local'] = nil}, | |||
} | |||
} | |||
--[[--------------------------< D A T E _ N A M E S >---------------------------------------------------------- | |||
This table of tables lists local language date names and fallback English date names. | |||
The code in Date_validation will look first in the local table for valid date names. | |||
If date names are not found in the local table, the code will look in the English table. | |||
Because citations can be copied to the local wiki from en.wiki, the English is | |||
required when the date-name translation function date_name_xlate() is used. | |||
In these tables, season numbering is defined by | |||
Extended Date/Time Format (EDTF) Specification (https://www.loc.gov/standards/datetime/) | |||
which became part of ISO 8601 in 2019. See '§Sub-year groupings'. The standard | |||
defines various divisions using numbers 21-41. CS1|2 only supports generic seasons. | |||
EDTF does support the distinction between north and south hemisphere seasons | |||
but CS1|2 has no way to make that distinction. | |||
- | 33-36 = Quarter 1, Quarter 2, Quarter 3, Quarter 4 (3 months each) | ||
The standard does not address 'named' dates so, for the purposes of CS1|2, | |||
Easter and Christmas are defined here as 98 and 99, which should be out of the | |||
ISO 8601 (EDTF) range of uses for a while. | |||
]] | ]] | ||
local | local date_names = { | ||
[' | ['en'] = { -- English | ||
[' | ['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'] = { -- replace these English date names with the local language equivalents | |||
['long'] = { | |||
['tháng một']=1, ['tháng hai']=2, ['tháng ba']=3, ['tháng tư']=4, ['tháng năm']=5, ['tháng sáu']=6, ['tháng bảy']=7, ['tháng tám']=8, ['tháng chín']=9, ['tháng mười']=10, ['tháng mười một']=11, ['tháng mười hai']=12, | |||
['Tháng một']=1, ['Tháng hai']=2, ['Tháng ba']=3, ['Tháng tư']=4, ['Tháng năm']=5, ['Tháng sáu']=6, ['Tháng bảy']=7, ['Tháng tám']=8, ['Tháng chín']=9, ['Tháng mười']=10, ['Tháng mười một']=11, ['Tháng mười hai']=12, | |||
['tháng Một']=1, ['tháng Hai']=2, ['tháng Ba']=3, ['tháng Tư']=4, ['tháng Năm']=5, ['tháng Sáu']=6, ['tháng Bảy']=7, ['tháng Tám']=8, ['tháng Chín']=9, ['tháng Mười']=10, ['tháng Mười một']=11, ['tháng Mười hai']=12, | |||
['Tháng Một']=1, ['Tháng Hai']=2, ['Tháng Ba']=3, ['Tháng Tư']=4, ['Tháng Năm']=5, ['Tháng Sáu']=6, ['Tháng Bảy']=7, ['Tháng Tám']=8, ['Tháng Chín']=9, ['Tháng Mười']=10, ['Tháng Mười một']=11, ['Tháng Mười hai']=12, | |||
['tháng Mười Một']=11, ['tháng Mười Hai']=12, | |||
['Tháng Mười Một']=11, ['Tháng Mười Hai']=12}, | |||
['short'] = { | |||
['tháng 1']=1, ['tháng 2']=2, ['tháng 3']=3, ['tháng 4']=4, ['tháng 5']=5, ['tháng 6']=6, ['tháng 7']=7, ['tháng 8']=8, ['tháng 9']=9, ['tháng 10']=10, ['tháng 11']=11, ['tháng 12']=12, | |||
['Tháng 1']=1, ['Tháng 2']=2, ['Tháng 3']=3, ['Tháng 4']=4, ['Tháng 5']=5, ['Tháng 6']=6, ['Tháng 7']=7, ['Tháng 8']=8, ['Tháng 9']=9, ['Tháng 10']=10, ['Tháng 11']=11, ['Tháng 12']=12, | |||
['tháng 01']=1, ['tháng 02']=2, ['tháng 03']=3, ['tháng 04']=4, ['tháng 05']=5, ['tháng 06']=6, ['tháng 07']=7, ['tháng 08']=8, ['tháng 09']=9, | |||
['Tháng 01']=1, ['Tháng 02']=2, ['Tháng 03']=3, ['Tháng 04']=4, ['Tháng 05']=5, ['Tháng 06']=6, ['Tháng 07']=7, ['Tháng 08']=8, ['Tháng 09']=9}, | |||
['quarter'] = { | |||
['quý 1'] = 33, ['quý 2'] = 34, ['quý 3'] = 35, ['quý 4'] = 36, | |||
['Quý 1'] = 33, ['Quý 2'] = 34, ['Quý 3'] = 35, ['Quý 4'] = 36, | |||
['quí 1'] = 33, ['quí 2'] = 34, ['quí 3'] = 35, ['quí 4'] = 36, | |||
['Quí 1'] = 33, ['Quí 2'] = 34, ['Quí 3'] = 35, ['Quí 4'] = 36}, | |||
['season'] = { | |||
['mùa đông'] = 24, ['mùa xuân'] = 21, ['mùa hè'] = 22, ['mùa hạ'] = 22, ['mùa thu'] = 23, | |||
['Mùa đông'] = 24, ['Mùa xuân'] = 21, ['Mùa hè'] = 22, ['Mùa hạ'] = 22, ['Mùa thu'] = 23, | |||
['mùa Đông'] = 24, ['mùa Xuân'] = 21, ['mùa Hè'] = 22, ['mùa Hạ'] = 22, ['mùa Thu'] = 23, | |||
['Mùa Đông'] = 24, ['Mùa Xuân'] = 21, ['Mùa Hè'] = 22, ['Mùa Hạ'] = 22, ['Mùa Thu'] = 23}, | |||
['named'] = { | |||
['Phục sinh'] = 98, ['Lễ Phục sinh'] = 98, | |||
['Giáng sinh'] = 99, ['Giáng Sinh']=99, ['Lễ Giáng Sinh']=99, ['Lễ Giáng sinh']=99, ['Noel']=99, ['Nô-en']=99}, | |||
}, | |||
['inv_local_l'] = {}, -- used in date reformatting; copy of date_names['local'].long where k/v are inverted: [1]='<local name>' etc. | |||
['inv_local_s'] = {}, -- used in date reformatting; copy of date_names['local'].short where k/v are inverted: [1]='<local name>' etc. | |||
['local_digits'] = {['0'] = '0', ['1'] = '1', ['2'] = '2', ['3'] = '3', ['4'] = '4', ['5'] = '5', ['6'] = '6', ['7'] = '7', ['8'] = '8', ['9'] = '9'}, -- used to convert local language digits to Western 0-9 | |||
['xlate_digits'] = {}, | |||
} | |||
for name, i in pairs (date_names['local'].long) do -- this table is ['name'] = i | |||
date_names['inv_local_l'][i] = name; -- invert to get [i] = 'name' for conversions from ymd | |||
end | |||
for name, i in pairs (date_names['local'].short) do -- this table is ['name'] = i | |||
date_names['inv_local_s'][i] = name; -- invert to get [i] = 'name' for conversions from ymd | |||
end | |||
for ld, ed in pairs (date_names.local_digits) do -- make a digit translation table for simple date translation from en to local language using local_digits table | |||
date_names.xlate_digits [ed] = ld; -- en digit becomes index with local digit as the value | |||
end | |||
local df_template_patterns = { -- table of redirects to {{Use dmy dates}} and {{Use mdy dates}} | |||
'{{ *[Uu]se +(dmy) +dates *[|}]', -- 1159k -- sorted by approximate transclusion count | |||
'{{ *[Uu]se +(mdy) +dates *[|}]', -- 212k | |||
'{{ *[Uu]se +(MDY) +dates *[|}]', -- 788 | |||
'{{ *[Uu]se +(DMY) +dates *[|}]', -- 343 | |||
'{{ *([Mm]dy) *[|}]', -- 176 | |||
'{{ *[Uu]se *(dmy) *[|}]', -- 156 + 18 | |||
'{{ *[Uu]se *(mdy) *[|}]', -- 149 + 11 | |||
'{{ *([Dd]my) *[|}]', -- 56 | |||
'{{ *[Uu]se +(MDY) *[|}]', -- 5 | |||
'{{ *([Dd]MY) *[|}]', -- 3 | |||
'{{ *[Uu]se(mdy)dates *[|}]', -- 1 | |||
'{{ *[Uu]se +(DMY) *[|}]', -- 0 | |||
'{{ *([Mm]DY) *[|}]', -- 0 | |||
} | |||
local function get_date_format () | |||
local content = mw.title.getCurrentTitle():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 | |||
for _, pattern in ipairs (df_template_patterns) do -- loop through the patterns looking for {{Use dmy dates}} or {{Use mdy dates}} or any of their redirects | |||
local start, _, match = content:find(pattern); -- match is the three letters indicating desired date format | |||
if match then | |||
content = content:match ('%b{}', start); -- get the whole template | |||
if content:match ('| *cs1%-dates *= *[lsy][sy]?') then -- look for |cs1-dates=publication date length access-/archive-date length | |||
return match:lower() .. '-' .. content:match ('| *cs1%-dates *= *([lsy][sy]?)'); | |||
else | |||
return match:lower() .. '-all'; -- no |cs1-dates= k/v pair; return value appropriate for use in |df= | |||
end | |||
end | |||
end | |||
end | |||
local global_df = get_date_format (); | |||
--[[ | --[[-----------------< V O L U M E , I S S U E , P A G E S >------------------ | ||
These tables hold cite class values (from the template invocation) and identify those templates that support | These tables hold cite class values (from the template invocation) and identify those templates that support | ||
𣳔277: | 𣳔589: | ||
]] | ]] | ||
local templates_using_volume = {'citation', 'audio-visual', 'book', 'conference', 'encyclopaedia', 'interview', 'journal', 'magazine', 'map', 'news', 'report', 'techreport'} | local templates_using_volume = {'citation', 'audio-visual', 'book', 'conference', 'encyclopaedia', 'interview', 'journal', 'magazine', 'map', 'news', 'report', 'techreport', 'thesis'} | ||
local templates_using_issue = {'citation', 'conference', 'episode', 'interview', 'journal', 'magazine', 'map', 'news'} | local templates_using_issue = {'citation', 'conference', 'episode', 'interview', 'journal', 'magazine', 'map', 'news', 'podcast'} | ||
local templates_not_using_page = {'audio-visual', 'episode', 'mailinglist', 'newsgroup', 'podcast', 'serial', 'sign', 'speech'} | local templates_not_using_page = {'audio-visual', 'episode', 'mailinglist', 'newsgroup', 'podcast', 'serial', 'sign', 'speech'} | ||
--[[ | |||
Patterns for finding extra text in |volume=, |issue=, |page=, |pages= | |||
]] | |||
local vol_iss_pg_patterns = { | |||
good_ppattern = '^P[^%.PpGg]', -- OK to begin with uppercase P: P7 (page 7 of section P), but not p123 (page 123); TODO: this allows 'Pages' which it should not | |||
bad_ppatterns = { -- patterns for |page= and |pages= | |||
'^[Pp][PpGg]?%.?[ %d]', | |||
'^[Pp]ages?', | |||
'^[Pp]gs.?', | |||
}, | |||
vpatterns = { -- patterns for |volume= | |||
'^volumes?', | |||
'^vols?[%.:=]?' | |||
}, | |||
ipatterns = { -- patterns for |issue= | |||
'^issues?', | |||
'^iss[%.:=]?', | |||
'^numbers?', | |||
'^nos?%A', -- don't match 'november' or 'nostradamus' | |||
'^nr[%.:=]?', | |||
'^n[%.:= ]' -- might be a valid issue without separator (space char is sep char here) | |||
} | |||
} | |||
--[[--------------------------< K E Y W O R D S > | --[[--------------------------< K E Y W O R D S >------------------------------- | ||
These tables hold keywords for those parameters that have defined sets of acceptable keywords. | |||
]] | |||
--[[-------------------< K E Y W O R D S T A B L E >-------------------------- | |||
this is a list of keywords; each key in the list is associated with a table of | |||
synonymous keywords possibly from different languages. | |||
for I18N: add local-language keywords to value table; do not change the key. | |||
For example, adding the German keyword 'ja': | |||
['affirmative'] = {'yes', 'true', 'y', 'ja'}, | |||
Because CS1|2 templates from en.wiki articles are often copied to other local wikis, | |||
it is recommended that the English keywords remain in these tables. | |||
]] | ]] | ||
local keywords = { | local keywords = { | ||
[' | ['amp'] = {'&', 'amp', 'ampersand'}, -- |name-list-style= | ||
[' | ['and'] = {'and', 'serial', 'và'}, -- |name-list-style= | ||
[' | ['affirmative'] = {'yes', 'true', 'y', 'có'}, -- |no-tracking=, |no-pp= -- Used by InternetArchiveBot | ||
[' | ['afterword'] = {'afterword', 'lời bạt'}, -- |contribution= | ||
[' | ['bot: unknown'] = {'bot: unknown'}, -- |url-status= -- Used by InternetArchiveBot | ||
[' | ['cs1'] = {'cs1'}, -- |mode= | ||
} | ['cs2'] = {'cs2'}, -- |mode= | ||
['dead'] = {'dead', 'hư', 'hỏng', 'hư hỏng'}, -- |url-status= -- Used by InternetArchiveBot | |||
['dmy'] = {'dmy'}, -- |df= | |||
['dmy-all'] = {'dmy-all'}, -- |df= | |||
['foreword'] = {'foreword', 'lời tựa'}, -- |contribution= | |||
['free'] = {'free', 'miễn phí', 'mở'}, -- |url-access= -- Used by InternetArchiveBot | |||
['introduction'] = {'introduction', 'lời giới thiệu', 'lời đầu'}, -- |contribution= | |||
['limited'] = {'limited', 'hạn chế'}, -- |url-access= -- Used by InternetArchiveBot | |||
['live'] = {'live'}, -- |url-status= -- Used by InternetArchiveBot | |||
['mdy'] = {'mdy'}, -- |df= | |||
['mdy-all'] = {'mdy-all'}, -- |df= | |||
['none'] = {'none', 'không có', 'không'}, -- |postscript=, |ref=, |title=, |type= -- Used by InternetArchiveBot | |||
['off'] = {'off', 'tắt', 'ẩn'}, -- |title= (potentially also: |title-link=, |postscript=, |ref=, |type=) | |||
['preface'] = {'preface', 'lời nói đầu'}, -- |contribution= | |||
['registration'] = {'registration', 'đăng ký', 'đăng kí', 'tài khoản'}, -- |url-access= -- Used by InternetArchiveBot | |||
['subscription'] = {'subscription', 'đăng ký mua', 'đăng kí mua'}, -- |url-access= -- Used by InternetArchiveBot | |||
['unfit'] = {'unfit'}, -- |url-status= -- Used by InternetArchiveBot | |||
['usurped'] = {'usurped', 'chiếm đoạt', 'cướp đoạt'}, -- |url-status= -- Used by InternetArchiveBot | |||
['vanc'] = {'vanc'}, -- |name-list-style= | |||
['ymd'] = {'ymd'}, -- |df= | |||
['ymd-all'] = {'ymd-all'}, -- |df= | |||
-- ['yMd'] = {'yMd'}, -- |df=; not supported at en.wiki | |||
-- ['yMd-all'] = {'yMd-all'}, -- |df=; not supported at en.wiki | |||
} | |||
--[[------------------------< X L A T E _ K E Y W O R D S >--------------------- | |||
this function builds a list, keywords_xlate{}, of the keywords found in keywords{} where the values from keywords{} | |||
become the keys in keywords_xlate{} and the keys from keywords{} become the values in keywords_xlate{}: | |||
['affirmative'] = {'yes', 'true', 'y'}, -- in keywords{} | |||
becomes | |||
['yes'] = 'affirmative', -- in keywords_xlate{} | |||
['true'] = 'affirmative', | |||
['y'] = 'affirmative', | |||
the purpose of this function is to act as a translator between a non-English keyword and its English equivalent | |||
that may be used in other modules of this suite | |||
]] | |||
local function xlate_keywords () | |||
local out_table = {}; -- output goes here | |||
for k, keywords_t in pairs (keywords) do -- spin through the keywords table | |||
for _, keyword in ipairs (keywords_t) do -- for each keyword | |||
out_table[keyword] = k; -- create an entry in the output table where keyword is the key | |||
end | |||
end | |||
return out_table; | |||
end | |||
local keywords_xlate = xlate_keywords (); -- the list of translated keywords | |||
--[[----------------< M A K E _ K E Y W O R D S _ L I S T >--------------------- | |||
this function assembles, for parameter-value validation, the list of keywords appropriate to that parameter. | |||
keywords_lists{}, is a table of tables from keywords{} | |||
]] | |||
local function make_keywords_list (keywords_lists) | |||
local out_table = {}; -- output goes here | |||
for _, keyword_list in ipairs (keywords_lists) do -- spin through keywords_lists{} and get a table of keywords | |||
for _, keyword in ipairs (keyword_list) do -- spin through keyword_list{} and add each keyword, ... | |||
table.insert (out_table, keyword); -- ... as plain text, to the output list | |||
end | |||
end | |||
return out_table; | |||
end | |||
--[[----------------< K E Y W O R D S _ L I S T S >----------------------------- | |||
this is a list of lists of valid keywords for the various parameters in [key]. | |||
Generally the keys in this table are the canonical en.wiki parameter names though | |||
some are contrived because of use in multiple differently named parameters: | |||
['yes_true_y'], ['id-access']. | |||
The function make_keywords_list() extracts the individual keywords from the | |||
appropriate list in keywords{}. | |||
The lists in this table are used to validate the keyword assignment for the | |||
parameters named in this table's keys. | |||
]] | |||
local keywords_lists = { | |||
['yes_true_y'] = make_keywords_list ({keywords.affirmative}), | |||
['contribution'] = make_keywords_list ({keywords.afterword, keywords.foreword, keywords.introduction, keywords.preface}), | |||
['df'] = make_keywords_list ({keywords.dmy, keywords['dmy-all'], keywords.mdy, keywords['mdy-all'], keywords.ymd, keywords['ymd-all']}), | |||
-- ['df'] = make_keywords_list ({keywords.dmy, keywords['dmy-all'], keywords.mdy, keywords['mdy-all'], keywords.ymd, keywords['ymd-all'], keywords.yMd, keywords['yMd-all']}), -- not supported at en.wiki | |||
['mode'] = make_keywords_list ({keywords.cs1, keywords.cs2}), | |||
['name-list-style'] = make_keywords_list ({keywords.amp, keywords['and'], keywords.vanc}), | |||
['url-access'] = make_keywords_list ({keywords.subscription, keywords.limited, keywords.registration}), | |||
['url-status'] = make_keywords_list ({keywords.dead, keywords.live, keywords.unfit, keywords.usurped, keywords['bot: unknown']}), | |||
['id-access'] = make_keywords_list ({keywords.free}), | |||
} | |||
--[[---------------------< S T R I P M A R K E R S >---------------------------- | |||
Common pattern definition location for stripmarkers so that we don't have to go | |||
hunting for them if (when) MediaWiki changes their form. | |||
]] | |||
local stripmarkers = { | |||
['any'] = '\127[^\127]*UNIQ%-%-(%a+)%-[%a%d]+%-QINU[^\127]*\127', -- capture returns name of stripmarker | |||
['math'] = '\127[^\127]*UNIQ%-%-math%-[%a%d]+%-QINU[^\127]*\127' -- math stripmarkers used in coins_cleanup() and coins_replace_math_stripmarker() | |||
} | |||
--[[------------< I N V I S I B L E _ C H A R A C T E R S >--------------------- | |||
Also here is a pattern that recognizes stripmarkers that begin and end with the delete characters. The nowiki | This table holds non-printing or invisible characters indexed either by name or | ||
stripmarker is not an error but some others are because the parameter values that include them become part of the | by Unicode group. Values are decimal representations of UTF-8 codes. The table | ||
template's metadata before stripmarker replacement. | is organized as a table of tables because the Lua pairs keyword returns table | ||
data in an arbitrary order. Here, we want to process the table from top to bottom | |||
because the entries at the top of the table are also found in the ranges specified | |||
by the entries at the bottom of the table. | |||
Also here is a pattern that recognizes stripmarkers that begin and end with the | |||
delete characters. The nowiki stripmarker is not an error but some others are | |||
because the parameter values that include them become part of the template's | |||
metadata before stripmarker replacement. | |||
]] | ]] | ||
local invisible_defs = { | |||
del = '\127', -- used to distinguish between stripmarker and del char | |||
zwj = '\226\128\141', -- used with capture because zwj may be allowed | |||
} | |||
local invisible_chars = { | local invisible_chars = { | ||
{'replacement', '\239\191\189'}, -- U+FFFD, EF BF BD | {'replacement', '\239\191\189'}, -- U+FFFD, EF BF BD | ||
{'zero width joiner', '('.. invisible_defs.zwj .. ')'}, -- U+200D, E2 80 8D; capture because zwj may be allowed | |||
{'zero width space', '\226\128\139'}, -- U+200B, E2 80 8B | {'zero width space', '\226\128\139'}, -- U+200B, E2 80 8B | ||
{'hair space', '\226\128\138'}, -- U+200A, E2 80 8A | {'hair space', '\226\128\138'}, -- U+200A, E2 80 8A | ||
𣳔325: | 𣳔793: | ||
{'horizontal tab', '\009'}, -- U+0009 (HT), 09 | {'horizontal tab', '\009'}, -- U+0009 (HT), 09 | ||
{'line feed', '\010'}, -- U+000A (LF), 0A | {'line feed', '\010'}, -- U+000A (LF), 0A | ||
{'no-break space', '\194\160'}, -- U+00A0 (NBSP), C2 A0 | |||
{'carriage return', '\013'}, -- U+000D (CR), 0D | {'carriage return', '\013'}, -- U+000D (CR), 0D | ||
{'stripmarker', stripmarkers.any}, -- stripmarker; may or may not be an error; capture returns the stripmaker type | |||
{'stripmarker', | {'delete', '('.. invisible_defs.del .. ')'}, -- U+007F (DEL), 7F; must be done after stripmarker test; capture to distinguish isolated del chars not part of stripmarker | ||
{'delete', ' | |||
{'C0 control', '[\000-\008\011\012\014-\031]'}, -- U+0000–U+001F (NULL–US), 00–1F (except HT, LF, CR (09, 0A, 0D)) | {'C0 control', '[\000-\008\011\012\014-\031]'}, -- U+0000–U+001F (NULL–US), 00–1F (except HT, LF, CR (09, 0A, 0D)) | ||
{'C1 control', '[\194\128-\194\159]'}, -- U+0080–U+009F (XXX–APC), C2 80 – C2 9F | {'C1 control', '[\194\128-\194\159]'}, -- U+0080–U+009F (XXX–APC), C2 80 – C2 9F | ||
-- {'Specials', '[\239\191\185-\239\191\191]'}, -- U+FFF9-U+FFFF, EF BF B9 – EF BF BF | -- {'Specials', '[\239\191\185-\239\191\191]'}, -- U+FFF9-U+FFFF, EF BF B9 – EF BF BF | ||
-- {'Private use area', '[\238\128\128-\239\163\191]'}, -- U+E000–U+F8FF, EE 80 80 – EF A3 BF | -- {'Private use area', '[\238\128\128-\239\163\191]'}, -- U+E000–U+F8FF, EE 80 80 – EF A3 BF | ||
-- {'Supplementary Private Use Area-A', '[\243\176\128\128-\243\191\191\189]'}, -- U+F0000–U+FFFFD, F3 B0 80 80 – F3 BF BF BD | -- {'Supplementary Private Use Area-A', '[\243\176\128\128-\243\191\191\189]'}, -- U+F0000–U+FFFFD, F3 B0 80 80 – F3 BF BF BD | ||
-- {'Supplementary Private Use Area-B', '[\244\128\128\128-\244\143\191\189]'}, -- U+100000–U+10FFFD, F4 80 80 80 – F4 8F BF BD | -- {'Supplementary Private Use Area-B', '[\244\128\128\128-\244\143\191\189]'}, -- U+100000–U+10FFFD, F4 80 80 80 – F4 8F BF BD | ||
} | } | ||
--[[ | |||
Indic script makes use of zero width joiner as a character modifier so zwj | |||
characters must be left in. This pattern covers all of the unicode characters | |||
for these languages: | |||
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 | |||
plus the not-necessarily Indic scripts for Sinhala and 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 | |||
the pattern is used by has_invisible_chars() and coins_cleanup() | |||
]] | |||
local indic_script = '[\224\164\128-\224\181\191\224\163\160-\224\183\191\225\128\128-\225\130\159\234\167\160-\234\167\191\234\169\160-\234\169\191]'; | |||
-- list of emoji that use zwj character (U+200D) to combine with another emoji | |||
local emoji = { -- indexes are decimal forms of the hex values in U+xxxx | |||
[127752] = true, -- U+1F308 🌈 rainbow | |||
[127806] = true, -- U+1F33E 🌾 ear of rice | |||
[127859] = true, -- U+1F373 🍳 cooking | |||
[127891] = true, -- U+1F393 🎓 graduation cap | |||
[127908] = true, -- U+1F3A4 🎤 microphone | |||
[127912] = true, -- U+1F3A8 🎨 artist palette | |||
[127979] = true, -- U+1F3EB 🏫 school | |||
[127981] = true, -- U+1F3ED 🏭 factory | |||
[128102] = true, -- U+1F466 👦 boy | |||
[128103] = true, -- U+1F467 👧 girl | |||
[128104] = true, -- U+1F468 👨 man | |||
[128105] = true, -- U+1F469 👩 woman | |||
[128139] = true, -- U+1F48B 💋 kiss mark | |||
[128187] = true, -- U+1F4BB 💻 personal computer | |||
[128188] = true, -- U+1F4BC 💼 brief case | |||
[128295] = true, -- U+1F527 🔧 wrench | |||
[128300] = true, -- U+1F52C 🔬 microscope | |||
[128488] = true, -- U+1F5E8 🗨 left speech bubble | |||
[128640] = true, -- U+1F680 🚀 rocket | |||
[128658] = true, -- U+1F692 🚒 fire engine | |||
[129309] = true, -- U+1F91D 🤝 handshake | |||
[129455] = true, -- U+1F9AF 🦯 probing cane | |||
[129456] = true, -- U+1F9B0 🦰 emoji component red hair | |||
[129457] = true, -- U+1F9B1 🦱 emoji component curly hair | |||
[129458] = true, -- U+1F9B2 🦲 emoji component bald | |||
[129459] = true, -- U+1F9B3 🦳 emoji component white hair | |||
[129466] = true, -- U+1F9BA 🦺 safety vest | |||
[129468] = true, -- U+1F9BC 🦼 motorized wheelchair | |||
[129469] = true, -- U+1F9BD 🦽 manual wheelchair | |||
[129489] = true, -- U+1F9D1 🧑 adult | |||
[9760] = true, -- U+2620 ☠ skull and crossbones | |||
[9792] = true, -- U+2640 ♀ female sign | |||
[9794] = true, -- U+2642 ♂ male sign | |||
[9877] = true, -- U+2695 ⚕ staff of aesculapius | |||
[9878] = true, -- U+2696 ⚖ scales | |||
[9992] = true, -- U+2708 ✈ airplane | |||
[10084] = true, -- U+2764 ❤ heavy black heart | |||
} | |||
--[[----------------------< L A N G U A G E S U P P O R T >------------------- | |||
These tables and constants support various language-specific functionality. | |||
]] | |||
local this_wiki_code = mw.getContentLanguage():getCode(); -- get this wiki's language code | |||
if string.match (mw.site.server, 'wikidata') then | |||
this_wiki_code = mw.getCurrentFrame():preprocess('{{int:lang}}'); -- on Wikidata so use interface language setting instead | |||
end | |||
local languages = mw.language.fetchLanguageNames (this_wiki_code, 'all'); -- get a list of language names known to Wikimedia; used for |language= and interwiki tests | |||
local inter_wiki_map = {}; -- map of interwiki prefixes that are language-code prefixes | |||
for k, v in pairs (mw.site.interwikiMap ('local')) do -- spin through the base interwiki map (limited to local) | |||
if languages[v["prefix"]] then -- if the prefix matches a known language code | |||
inter_wiki_map[v["prefix"]] = true; -- add it to our local map | |||
end | |||
end | |||
local local_lang_cat_enable = false; -- set to true to categorize pages where |language=<local wiki's language> | |||
--[[--------------------< S C R I P T _ L A N G _ C O D E S >------------------- | |||
This table is used to hold ISO 639-1 two-character and ISO 639-3 three-character | |||
language codes that apply only to |script-title= and |script-chapter= | |||
]] | |||
local script_lang_codes = { | |||
'am', 'ar', 'be', 'bg', 'bn', 'bo', 'bs', 'dv', 'dz', 'el', 'fa', 'gu', | |||
'he', 'hi', 'hy', 'ja', 'ka', 'kk', 'km', 'kn', 'ko', 'ku', 'ky', 'lo', | |||
'mk', 'ml', 'mn', 'mr', 'my', 'ne', 'or', 'ota', 'ps', 'ru', 'sd', 'si', | |||
'sr', 'ta', 'te', 'tg', 'th', 'ti', 'ug', 'uk', 'ur', 'uz', 'yi', 'zh' | |||
}; | |||
--[[---------------< L A N G U A G E R E M A P P I N G >---------------------- | |||
These tables hold language information that is different (correct) from MediaWiki's definitions | |||
For each ['code'] = 'language name' in lang_code_remap{} there must be a matching ['language name'] = {'language name', 'code'} in lang_name_remap{} | |||
-- | lang_code_remap{}: | ||
key is always lowercase ISO 639-1, -2, -3 language code or a valid lowercase IETF language tag | |||
value is properly spelled and capitalized language name associated with key | |||
only one language name per key; | |||
key/value pair must have matching entry in lang_name_remap{} | |||
lang_name_remap{}: | |||
key is always lowercase language name | |||
value is a table the holds correctly spelled and capitalized language name [1] and associated code [2] (code must match a code key in lang_code_remap{}) | |||
may have multiple keys referring to a common preferred name and code; For example: | |||
['kolsch'] and ['kölsch'] both refer to 'Kölsch' and 'ksh' | |||
]] | ]] | ||
local | local lang_code_remap = { -- used for |language= and |script-title= / |script-chapter= | ||
[' | ['als'] = 'Albania Tosk', -- MediaWiki returns Alemannisch | ||
[' | ['bh'] = 'Bihar', -- MediaWiki uses 'bh' as a subdomain name for Bhojpuri Wikipedia: bh.wikipedia.org | ||
[' | ['bla'] = 'Blackfoot', -- MediaWiki/IANA/ISO 639: Siksika; use en.wiki preferred name | ||
[' | ['bn'] = 'Bengal', -- MediaWiki returns Bangla | ||
[' | ['ca-valencia'] = 'Valencia', -- IETF variant of Catalan | ||
[' | ['crh'] = 'Tatar Crưm', -- synonymous with Crimean Turkish (return value from {{#language:crh|en}}) | ||
[' | ['ilo'] = 'Ilokano', -- MediaWiki/IANA/ISO 639: Iloko; use en.wiki preferred name | ||
[' | ['ksh'] = 'Kölsch', -- MediaWiki: Colognian; use IANA/ISO 639 preferred name | ||
[' | ['ksh-x-colog'] = 'Köln', -- override MediaWiki ksh; no IANA/ISO 639 code for Colognian; IETF private code created at Module:Lang/data | ||
['mis-x-ripuar'] = 'Ripuarian', -- override MediaWiki ksh; no IANA/ISO 639 code for Ripuarian; IETF private code created at Module:Lang/data | |||
['nan-tw'] = 'Phúc Kiến Đài Loan', -- make room for MediaWiki/IANA/ISO 639 nan: Min Nan Chinese and support en.wiki preferred name | |||
['it'] = 'Ý', | |||
['nd'] = 'Bắc Ndebele', | |||
['nr'] = 'Nam Ndebele', | |||
['os'] = 'Ossetia', | |||
['ps'] = 'Pashtun', | |||
['sc'] = 'Sardegna', | |||
['sd'] = 'Sindh', | |||
['se'] = 'Bắc Sami', | |||
['st'] = 'Nam Sotho', | |||
['ug'] = 'Duy Ngô Nhĩ', | |||
['wa'] = 'Wallon', | |||
['za'] = 'Tráng', | |||
['elx'] = 'Elam', | |||
['ckb'] = 'Soran', | |||
['ka'] = 'Gruzia' | |||
} | |||
local lang_name_remap = { -- used for |language= | |||
['alemannisch'] = {'tiếng Đức Thụy Sĩ', 'gsw'}, -- not an ISO or IANA language name; MediaWiki uses 'als' as a subdomain name for Alemannic Wikipedia: als.wikipedia.org | |||
['bangla'] = {'tiếng Bengal', 'bn'}, -- MediaWiki returns Bangla (the endonym) but we want Bengali (the exonym); here we remap | |||
['bengali'] = {'tiếng Bengal', 'bn'}, -- MediaWiki doesn't use exonym so here we provide correct language name and 639-1 code | |||
['bhojpuri'] = {'tiếng Bhojpur', 'bho'}, -- MediaWiki uses 'bh' as a subdomain name for Bhojpuri Wikipedia: bh.wikipedia.org | |||
['bihari'] = {'tiếng Bihar', 'bh'}, -- MediaWiki replaces 'Bihari' with 'Bhojpuri' so 'Bihari' cannot be found | |||
['blackfoot'] = {'tiếng Blackfoot', 'bla'}, -- MediaWiki/IANA/ISO 639: Siksika; use en.wiki preferred name | |||
['colognian'] = {'tiếng Köln', 'ksh-x-colog'}, -- MediaWiki preferred name for ksh | |||
['crimean tatar'] = {'Crimean Tatar', 'crh'}, -- MediaWiki uses 'crh' as a subdomain name for Crimean Tatar Wikipedia: crh.wikipedia.org | |||
['ilocano'] = {'tiếng Ilokano', 'ilo'}, -- MediaWiki/IANA/ISO 639: Iloko; use en.wiki preferred name | |||
['kolsch'] = {'tiếng Kölsch', 'ksh'}, -- use IANA/ISO 639 preferred name (use non-diacritical o instead of umlaut ö) | |||
['kölsch'] = {'tiếng Kölsch', 'ksh'}, -- use IANA/ISO 639 preferred name | |||
['ripuarian'] = {'tiếng Ripuarian', 'mis-x-ripuar'}, -- group of dialects; no code in MediaWiki or in IANA/ISO 639 | |||
['taiwanese hokkien'] = {'tiếng Phúc Kiến Đài Loan', 'nan-TW'}, -- make room for MediaWiki/IANA/ISO 639 nan: Min Nan Chinese | |||
['tosk albanian'] = {'tiếng Albania Tosk', 'als'}, -- MediaWiki replaces 'Tosk Albanian' with 'Alemannisch' so 'Tosk Albanian' cannot be found | |||
['valencian'] = {'tiếng Valencia', 'ca'}, -- variant of Catalan; categorizes as Catalan | |||
} | } | ||
--[[---------------< P R O P E R T I E S _ C A T E G O R I E S >---------------- | |||
Properties categories. These are used for investigating qualities of citations. | |||
]] | ]] | ||
local prop_cats = { | local prop_cats = { | ||
['foreign_lang_source'] = 'Nguồn CS1 tiếng $1 ($2)', | ['foreign_lang_source'] = 'Nguồn CS1 tiếng $1 ($2)', -- |language= categories; $1 is foreign-language name, $2 is ISO639-1 code | ||
['script'] = 'Nguồn CS1 có hệ thống viết khác', | ['foreign_lang_source_2'] = 'Nguồn CS1 ngoại ngữ (ISO 639-2)|$1', -- |language= category; a cat for ISO639-2 languages; $1 is the ISO 639-2 code used as a sort key | ||
['script_with_name'] = 'Nguồn CS1 có chữ $1 ($2)', | ['local_lang_source'] = 'Nguồn CS1 tiếng $1 ($2)', -- |language= categories; $1 is local-language name, $2 is ISO639-1 code; not emitted when local_lang_cat_enable is false | ||
['location test'] = 'Thử địa điểm CS1', | |||
['script'] = 'Nguồn CS1 có hệ thống viết khác', -- when language specified by |script-title=xx: doesn't have its own category | |||
['script_with_name'] = 'Nguồn CS1 có chữ $1 ($2)', -- |script-title=xx: has matching category; $1 is language name, $2 is ISO639-1 code | |||
['jul_greg_uncertainty'] = 'CS1: không rõ lịch Julius–Gregorius', -- probably temporary cat to identify scope of template with dates 1 October 1582 – 1 January 1926 | |||
['long_vol'] = 'CS1: giá trị quyển dài', -- probably temporary cat to identify scope of |volume= values longer than 4 charachters | |||
['year_range_abbreviated'] = 'CS1: dãy năm viết tắt', -- probably temporary cat to identify scope of |date=, |year= values using YYYY–YY form | |||
} | } | ||
--[[-------------------< T I T L E _ T Y P E S >-------------------------------- | |||
Here we map a template's CitationClass to TitleType (default values for |type= parameter) | |||
Here we map a template's CitationClass to TitleType | |||
]] | ]] | ||
𣳔377: | 𣳔1.005: | ||
local title_types = { | local title_types = { | ||
['AV-media-notes'] = 'Chú thích phương tiện', | ['AV-media-notes'] = 'Chú thích phương tiện', | ||
[' | ['interview'] = 'Phỏng vấn', | ||
['mailinglist'] = 'Danh sách thư', | ['mailinglist'] = 'Danh sách thư', | ||
['map'] = 'Bản đồ', | ['map'] = 'Bản đồ', | ||
𣳔387: | 𣳔1.015: | ||
} | } | ||
--[[===================<< E R R O R M E S S A G I N G >>====================== | |||
]] | |||
The following contains a list of IDs for various error conditions defined in the | --[[----------< E R R O R M E S S A G E S U P P L I M E N T S >------------- | ||
I18N for those messages that are supplemented with additional specific text that | |||
describes the reason for the error | |||
TODO: merge this with special_case_translations{}? | |||
]] | |||
local err_msg_supl = { | |||
['char'] = 'ký tự không hợp lệ', -- |isbn=, |sbn= | |||
['check'] = 'giá trị tổng kiểm', -- |isbn=, |sbn= | |||
['flag'] = 'cờ', -- |archive-url= | |||
['form'] = 'định dạng không hợp lệ', -- |isbn=, |sbn= | |||
['group'] = 'số nhóm không hợp lệ', -- |isbn= | |||
['initials'] = 'chữ đầu', -- Vancouver | |||
['journal'] = 'tạp chí', -- |bibcode= | |||
['length'] = 'số con số', -- |isbn=, |bibcode=, |sbn= | |||
['liveweb'] = 'liveweb', -- |archive-url= | |||
['missing comma'] = 'thiếu dấu phẩy', -- Vancouver | |||
['name'] = 'tên', -- Vancouver | |||
['non-Latin char'] = 'ký tự không phải chữ Latinh', -- Vancouver | |||
['path'] = 'đường dẫn', -- |archive-url= | |||
['prefix'] = 'tiền tố không hợp lệ', -- |isbn= | |||
['punctuation'] = 'chấm câu', -- Vancouver | |||
['save'] = 'lệnh lưu', -- |archive-url= | |||
['suffix'] = 'hậu tố', -- Vancouver | |||
['timestamp'] = 'dấu thời gian', -- |archive-url= | |||
['value'] = 'giá trị', -- |bibcode= | |||
['year'] = 'năm', -- |bibcode= | |||
} | |||
--[[--------------< E R R O R _ C O N D I T I O N S >--------------------------- | |||
Error condition table. This table has two sections: errors at the top, maintenance | |||
at the bottom. Maint 'messaging' does not have a 'message' (message=nil) | |||
The following contains a list of IDs for various error conditions defined in the | |||
code. For each ID, we specify a text message to display, an error category to | code. For each ID, we specify a text message to display, an error category to | ||
include, and whether the error message should be wrapped as a hidden comment. | include, and whether the error message should be wrapped as a hidden comment. | ||
Anchor changes require identical changes to matching anchor in | Anchor changes require identical changes to matching anchor in Help:CS1 errors | ||
TODO: rename error_conditions{} to something more generic; create separate error | |||
and maint tables inside that? | |||
] | ]] | ||
local error_conditions = { | local error_conditions = { | ||
err_accessdate_missing_url = { | |||
message = '<code | message = '<code class="cs1-code">|ngày truy cập=</code> cần <code class="cs1-code">|url=</code>', | ||
anchor = 'accessdate_missing_url', | anchor = 'accessdate_missing_url', | ||
category = ' | category = 'Lỗi CS1: ngày truy cập thiếu URL', | ||
hidden = | hidden = false | ||
}, | |||
message = '<code | err_apostrophe_markup = { | ||
message = 'Không cho phép mã đánh dấu trong: <code class="cs1-code">|$1=</code>', -- $1 is parameter name | |||
anchor = 'apostrophe_markup', | |||
category = 'Lỗi CS1: mã đánh dấu', | |||
hidden = false | |||
}, | |||
err_archive_missing_date = { | |||
message = '<code class="cs1-code">|url lưu trữ=</code> cần <code class="cs1-code">|ngày lưu trữ=</code>', | |||
anchor = 'archive_missing_date', | anchor = 'archive_missing_date', | ||
category = ' | category = 'Lỗi CS1: URL lưu trữ', | ||
hidden = false }, | hidden = false | ||
}, | |||
message = '<code | err_archive_missing_url = { | ||
message = '<code class="cs1-code">|url lưu trữ=</code> cần <code class="cs1-code">|url=</code>', | |||
anchor = 'archive_missing_url', | anchor = 'archive_missing_url', | ||
category = ' | category = 'Lỗi CS1: URL lưu trữ', | ||
hidden = false }, | hidden = false | ||
}, | |||
message = ' | err_archive_url = { | ||
message = '<code class="cs1-code">|archive-url=</code> bị hỏng: $1', -- $1 is error message detail | |||
anchor = 'archive_url', | |||
category = 'Lỗi CS1: URL lưu trữ', | |||
hidden = false | |||
}, | |||
err_arxiv_missing = { | |||
message = 'Cần <code class="cs1-code">|arxiv=</code>', | |||
anchor = 'arxiv_missing', | anchor = 'arxiv_missing', | ||
category = 'Lỗi CS1: arXiv', -- same as bad arxiv | category = 'Lỗi CS1: arXiv', -- same as bad arxiv | ||
hidden = false }, | hidden = false | ||
}, | |||
message = ' | err_asintld_missing_asin = { | ||
anchor = ' | message = '<code class="cs1-code">|$1=</code> requires <code class="cs1-code">|asin=</code>', -- $1 is parameter name | ||
category = 'Lỗi CS1: | anchor = 'asintld_missing_asin', | ||
hidden = false }, | category = 'Lỗi CS1: ASIN TLD', | ||
hidden = false | |||
message = 'Kiểm tra giá trị <code | }, | ||
err_bad_arxiv = { | |||
message = 'Kiểm tra giá trị <code class="cs1-code">|arxiv=</code>', | |||
anchor = 'bad_arxiv', | anchor = 'bad_arxiv', | ||
category = 'Lỗi CS1: arXiv', | category = 'Lỗi CS1: arXiv', | ||
hidden = false }, | hidden = false | ||
}, | |||
message = 'Kiểm tra giá trị <code | err_bad_asin = { | ||
message = 'Kiểm tra giá trị <code class="cs1-code">|asin=</code>', | |||
anchor = 'bad_asin', | anchor = 'bad_asin', | ||
category ='Lỗi CS1: ASIN', | category ='Lỗi CS1: ASIN', | ||
hidden = false }, | hidden = false | ||
}, | |||
message = 'Kiểm tra giá trị <code | err_bad_asin_tld = { | ||
anchor = ' | message = 'Kiểm tra giá trị <code class="cs1-code">|asin-tld=</code>', | ||
category = 'Lỗi CS1: | anchor = 'bad_asin_tld', | ||
hidden = false }, | category ='Lỗi CS1: ASIN TLD', | ||
hidden = false | |||
message = 'Kiểm tra giá trị | }, | ||
err_bad_bibcode = { | |||
message = 'Kiểm tra <code class="cs1-code">|bibcode=</code> $1', -- $1 is error message detail | |||
anchor = 'bad_bibcode', | |||
category = 'Lỗi CS1: bibcode', | |||
hidden = false | |||
}, | |||
err_bad_biorxiv = { | |||
message = 'Kiểm tra giá trị <code class="cs1-code">|biorxiv=</code>', | |||
anchor = 'bad_biorxiv', | |||
category = 'Lỗi CS1: bioRxiv', | |||
hidden = false | |||
}, | |||
err_bad_citeseerx = { | |||
message = 'Kiểm tra giá trị <code class="cs1-code">|citeseerx=</code>', | |||
anchor = 'bad_citeseerx', | |||
category = 'Lỗi CS1: citeseerx', | |||
hidden = false | |||
}, | |||
err_bad_date = { | |||
message = 'Kiểm tra giá trị ngày tháng trong: $1', -- $1 is a parameter name list | |||
anchor = 'bad_date', | anchor = 'bad_date', | ||
category = 'Lỗi CS1: ngày tháng', | category = 'Lỗi CS1: ngày tháng', | ||
hidden = false }, | hidden = false | ||
}, | |||
message = 'Kiểm tra giá trị <code | err_bad_doi = { | ||
message = 'Kiểm tra giá trị <code class="cs1-code">|doi=</code>', | |||
anchor = 'bad_doi', | anchor = 'bad_doi', | ||
category = ' | category = 'Lỗi CS1: DOI', | ||
hidden = false }, | hidden = false | ||
}, | |||
message = 'Kiểm tra giá trị <code | err_bad_hdl = { | ||
message = 'Kiểm tra giá trị <code class="cs1-code">|hdl=</code>', | |||
anchor = 'bad_hdl', | |||
category = 'Lỗi CS1: HDL', | |||
hidden = false | |||
}, | |||
err_bad_isbn = { | |||
message = 'Kiểm tra giá trị <code class="cs1-code">|isbn=</code>: $1', -- $1 is error message detail | |||
anchor = 'bad_isbn', | anchor = 'bad_isbn', | ||
category = ' | category = 'Lỗi CS1: ISBN', | ||
hidden = false }, | hidden = false | ||
}, | |||
message = 'Kiểm tra giá trị <code | err_bad_ismn = { | ||
message = 'Kiểm tra giá trị <code class="cs1-code">|ismn=</code>', | |||
anchor = 'bad_ismn', | anchor = 'bad_ismn', | ||
category = 'Lỗi CS1: ISMN', | category = 'Lỗi CS1: ISMN', | ||
hidden = false }, | hidden = false | ||
}, | |||
message = 'Kiểm tra giá trị <code | err_bad_issn = { | ||
message = 'Kiểm tra giá trị <code class="cs1-code">|$1issn=</code>', -- $1 is 'e' or '' for eissn or issn | |||
anchor = 'bad_issn', | anchor = 'bad_issn', | ||
category = 'Lỗi CS1: ISSN', | category = 'Lỗi CS1: ISSN', | ||
hidden = false }, | hidden = false | ||
}, | |||
message = 'Kiểm tra giá trị <code | err_bad_jfm = { | ||
message = 'Kiểm tra giá trị <code class="cs1-code">|jfm=</code>', | |||
anchor = 'bad_jfm', | |||
category = 'Lỗi CS1: JFM', | |||
hidden = false | |||
}, | |||
err_bad_jstor = { | |||
message = 'Kiểm tra giá trị <code class="cs1-code">|jstor=</code>', | |||
anchor = 'bad_jstor', | |||
category = 'Lỗi CS1: JSTOR', | |||
hidden = false | |||
}, | |||
err_bad_lccn = { | |||
message = 'Kiểm tra giá trị <code class="cs1-code">|lccn=</code>', | |||
anchor = 'bad_lccn', | anchor = 'bad_lccn', | ||
category = 'Lỗi CS1: LCCN', | category = 'Lỗi CS1: LCCN', | ||
hidden = false }, | hidden = false | ||
}, | |||
message = 'Kiểm tra giá trị <code | err_bad_mr = { | ||
anchor = ' | message = 'Kiểm tra giá trị <code class="cs1-code">|mr=</code>', | ||
category = 'Lỗi CS1: | anchor = 'bad_mr', | ||
hidden = false }, | category = 'Lỗi CS1: MR', | ||
hidden = false | |||
message = 'Kiểm tra giá trị <code | }, | ||
err_bad_oclc = { | |||
message = 'Kiểm tra giá trị <code class="cs1-code">|oclc=</code>', | |||
anchor = 'bad_oclc', | |||
category = 'Lỗi CS1: OCLC', | |||
hidden = false | |||
}, | |||
err_bad_ol = { | |||
message = 'Kiểm tra giá trị <code class="cs1-code">|ol=</code>', | |||
anchor = 'bad_ol', | anchor = 'bad_ol', | ||
category = ' | category = 'Lỗi CS1: OL', | ||
hidden = false }, | hidden = false | ||
}, | |||
message = 'Kiểm tra giá trị <code | err_bad_osti = { | ||
message = 'Kiểm tra giá trị <code class="cs1-code">|osti=</code>', | |||
anchor = 'bad_osti', | |||
category = 'Lỗi CS1: OSTI', | |||
hidden = false | |||
}, | |||
err_bad_paramlink = { -- for |title-link=, |author/editor/translator-link=, |series-link=, |episode-link= | |||
message = 'Kiểm tra giá trị <code class="cs1-code">|$1=</code>', -- $1 is parameter name | |||
anchor = 'bad_paramlink', | |||
category = 'Lỗi CS1: liên kết tham số', | |||
hidden = false | |||
}, | |||
err_bad_pmc = { | |||
message = 'Kiểm tra giá trị <code class="cs1-code">|pmc=</code>', | |||
anchor = 'bad_pmc', | anchor = 'bad_pmc', | ||
category = 'Lỗi CS1: PMC', | category = 'Lỗi CS1: PMC', | ||
hidden = false }, | hidden = false | ||
}, | |||
message = 'Kiểm tra giá trị <code | err_bad_pmid = { | ||
message = 'Kiểm tra giá trị <code class="cs1-code">|pmid=</code>', | |||
anchor = 'bad_pmid', | anchor = 'bad_pmid', | ||
category = 'Lỗi CS1: PMID', | category = 'Lỗi CS1: PMID', | ||
hidden = false }, | hidden = false | ||
}, | |||
message = 'Kiểm tra | err_bad_rfc = { | ||
message = 'Kiểm tra giá trị <code class="cs1-code">|rfc=</code>', | |||
anchor = 'bad_rfc', | |||
category = 'Lỗi CS1: RFC', | |||
hidden = false | |||
}, | |||
err_bad_s2cid = { | |||
message = 'Kiểm tra giá trị <code class="cs1-code">|s2cid=</code>', | |||
anchor = 'bad_s2cid', | |||
category = 'Lỗi CS1: S2CID', | |||
hidden = false | |||
}, | |||
err_bad_sbn = { | |||
message = 'Kiểm tra giá trị <code class="cs1-code">|sbn=</code>: $1', -- $1 is error message detail | |||
anchor = 'bad_sbn', | |||
category = 'Lỗi CS1: SBN', | |||
hidden = false | |||
}, | |||
err_bad_ssrn = { | |||
message = 'Kiểm tra giá trị <code class="cs1-code">|ssrn=</code>', | |||
anchor = 'bad_ssrn', | |||
category = 'Lỗi CS1: SSRN', | |||
hidden = false | |||
}, | |||
err_bad_url = { | |||
message = 'Kiểm tra giá trị $1', -- $1 is parameter name | |||
anchor = 'bad_url', | anchor = 'bad_url', | ||
category = ' | category = 'Lỗi CS1: URL', | ||
hidden = false }, | hidden = false | ||
}, | |||
message = '$1 | err_bad_usenet_id = { | ||
message = 'Kiểm tra giá trị <code class="cs1-code">|message-id=</code>', | |||
anchor = 'bad_message_id', | |||
category = 'Lỗi CS1: message-id', | |||
hidden = false | |||
}, | |||
err_bad_zbl = { | |||
message = 'Kiểm tra giá trị <code class="cs1-code">|zbl=</code>', | |||
anchor = 'bad_zbl', | |||
category = 'Lỗi CS1: Zbl', | |||
hidden = false | |||
}, | |||
err_bare_url_missing_title = { | |||
message = '$1 missing title', -- $1 is parameter name | |||
anchor = 'bare_url_missing_title', | anchor = 'bare_url_missing_title', | ||
category = ' | category = 'Lỗi CS1: URL trần', | ||
hidden = false }, | hidden = false | ||
}, | |||
message = '<code | err_biorxiv_missing = { | ||
message = 'Cần <code class="cs1-code">|biorxiv=</code>', | |||
anchor = 'biorxiv_missing', | |||
category = 'Lỗi CS1: bioRxiv', -- same as bad bioRxiv | |||
hidden = false | |||
}, | |||
err_chapter_ignored = { | |||
message = '<code class="cs1-code">|$1=</code> bị bỏ qua', -- $1 is parameter name | |||
anchor = 'chapter_ignored', | anchor = 'chapter_ignored', | ||
category = 'Lỗi CS1: chương bị bỏ qua', | category = 'Lỗi CS1: chương bị bỏ qua', | ||
hidden = false }, | hidden = false | ||
}, | |||
message = '<code | err_citation_missing_title = { | ||
message = '<code class="cs1-code">|$1=</code> trống hay bị thiếu', -- $1 is parameter name | |||
anchor = 'citation_missing_title', | anchor = 'citation_missing_title', | ||
category = ' | category = 'Lỗi CS1: thiếu tựa đề', | ||
hidden = false }, | hidden = false | ||
}, | |||
message = '<code | err_citeseerx_missing = { | ||
message = 'Cần <code class="cs1-code">|citeseerx=</code>', | |||
anchor = 'citeseerx_missing', | |||
category = 'Lỗi CS1: citeseerx', -- same as bad citeseerx | |||
hidden = false | |||
}, | |||
err_cite_web_url = { -- this error applies to cite web and to cite podcast | |||
message = '<code class="cs1-code">|url=</code> trống hay bị thiếu', | |||
anchor = 'cite_web_url', | anchor = 'cite_web_url', | ||
category = ' | category = 'Lỗi CS1: cần URL', | ||
hidden = | hidden = false | ||
}, | |||
message = '<code | err_class_ignored = { | ||
anchor = ' | message = '<code class="cs1-code">|lớp=</code> bị bỏ qua', | ||
category = 'Lỗi CS1: đồng | anchor = 'class_ignored', | ||
hidden = false }, | category = 'Lỗi CS1: lớp', | ||
hidden = false | |||
message = 'Chú thích sử dụng tham số <code | }, | ||
err_contributor_ignored = { | |||
message = '<code class="cs1-code">|contributor=</code> bị bỏ qua', | |||
anchor = 'contributor_ignored', | |||
category = 'Lỗi CS1: đồng nghiệp', | |||
hidden = false | |||
}, | |||
err_contributor_missing_required_param = { | |||
message = '<code class="cs1-code">|đồng nghiệp=</code> cần <code class="cs1-code">|$1=</code>', -- $1 is parameter name | |||
anchor = 'contributor_missing_required_param', | |||
category = 'Lỗi CS1: đồng nghiệp', | |||
hidden = false | |||
}, | |||
err_deprecated_params = { | |||
message = 'Chú thích sử dụng tham số <code class="cs1-code">|$1=</code>', -- $1 is parameter name | |||
anchor = 'deprecated_params', | anchor = 'deprecated_params', | ||
category = ' | category = 'Lỗi CS1: tham số lỗi thời', | ||
hidden = | hidden = false | ||
}, | |||
err_disp_name = { | |||
message = '<code class="cs1-code">|$1=$2</code> không hợp lệ', -- $1 is parameter name; $2 is the assigned value | |||
anchor = 'disp_name', | |||
category = 'Lỗi CS1: số tên hiển thị', | |||
hidden = false, | |||
}, | |||
err_doibroken_missing_doi = { | |||
message = '<code class="cs1-code">|$1=</code> cần <code class="cs1-code">|doi=</code>', -- $1 is parameter name | |||
anchor = 'doibroken_missing_doi', | |||
category = 'Lỗi CS1: DOI', | |||
hidden = false | |||
}, | |||
err_embargo_missing_pmc = { | |||
message = '<code class="cs1-code">|$1=</code> requires <code class="cs1-code">|pmc=</code>', -- $1 is parameter name | |||
anchor = 'embargo_missing_pmc', | |||
category = 'Lỗi CS1: PMC embargo', | |||
hidden = false | |||
}, | |||
err_empty_citation = { | |||
message = 'Chú thích trống', | message = 'Chú thích trống', | ||
anchor = 'empty_citation', | anchor = 'empty_citation', | ||
category = ' | category = 'Lỗi CS1: chú thích trống', | ||
hidden = false }, | hidden = false | ||
}, | |||
message = '<code | err_etal = { | ||
anchor = ' | message = '“Và đồng nghiệp” được ghi trong: <code class="cs1-code">|$1=</code>', -- $1 is parameter name | ||
category = ' | anchor = 'explicit_et_al', | ||
hidden = false }, | category = 'Lỗi CS1: và-đồng-nghiệp rõ ràng', | ||
hidden = false | |||
message = '<code | }, | ||
err_extra_text_edition = { | |||
message = '<code class="cs1-code">|ấn bản=</code> có văn bản dư', | |||
anchor = 'extra_text_edition', | |||
category = 'Lỗi CS1: văn bản thừa: ấn bản', | |||
hidden = false, | |||
}, | |||
err_extra_text_issue = { | |||
message = '<code class="cs1-code">|$1=</code> có văn bản dư', -- $1 is parameter name | |||
anchor = 'extra_text_issue', | |||
category = 'Lỗi CS1: văn bản thừa: số', | |||
hidden = false, | |||
}, | |||
err_extra_text_pages = { | |||
message = '<code class="cs1-code">|$1=</code> có văn bản dư', -- $1 is parameter name | |||
anchor = 'extra_text_pages', | |||
category = 'Lỗi CS1: văn bản thừa: trang', | |||
hidden = false, | |||
}, | |||
err_extra_text_volume = { | |||
message = '<code class="cs1-code">|$1=</code> có văn bản thừa', -- $1 is parameter name | |||
anchor = 'extra_text_volume', | |||
category = 'Lỗi CS1: văn bản thừa: volume', | |||
hidden = true, | |||
}, | |||
err_first_missing_last = { | |||
message = '<code class="cs1-code">|$1=</code> thiếu <code class="cs1-code">|$2=</code>', -- $1 is first alias, $2 is matching last alias | |||
anchor = 'first_missing_last', | anchor = 'first_missing_last', | ||
category = 'CS1 | category = 'Lỗi CS1: thiếu tên', -- author, contributor, editor, interviewer, translator | ||
hidden = false }, | hidden = false | ||
}, | |||
message = '<code | err_format_missing_url = { | ||
message = '<code class="cs1-code">|$1=</code> cần <code class="cs1-code">|$2=</code>', -- $1 is format parameter $2 is url parameter | |||
anchor = 'format_missing_url', | anchor = 'format_missing_url', | ||
category = ' | category = 'Lỗi CS1: định dạng thiếu URL', | ||
hidden = | hidden = false | ||
}, | |||
message = ' | err_generic_title = { | ||
anchor = ' | message = 'Chú thích có tiêu đề chung', | ||
category = ' | anchor = 'generic_title', | ||
hidden = | category = 'Lỗi CS1: tiêu đề chung', | ||
hidden = false, | |||
message = '<code | }, | ||
err_invalid_param_val = { | |||
message = '<code class="cs1-code">|$1=$2</code> không hợp lệ', -- $1 is parameter name $2 is parameter value | |||
anchor = 'invalid_param_val', | anchor = 'invalid_param_val', | ||
category = 'Lỗi CS1: giá trị tham số không hợp lệ', | category = 'Lỗi CS1: giá trị tham số không hợp lệ', | ||
hidden = false }, | hidden = false | ||
}, | |||
message = ' | err_invisible_char = { | ||
message = '$1 trong $2 tại ký tự số $3', -- $1 is invisible char $2 is parameter name $3 is position number | |||
anchor = 'invisible_char', | |||
category = 'Lỗi CS1: ký tự ẩn', | |||
hidden = false | |||
}, | |||
err_missing_name = { | |||
message = '<code class="cs1-code">|$1$2=</code> bị thiếu', -- $1 is modified NameList; $2 is enumerator | |||
anchor = 'missing_name', | anchor = 'missing_name', | ||
category = 'CS1 | category = 'Lỗi CS1: thiếu tên', -- author, contributor, editor, interviewer, translator | ||
hidden = false }, | hidden = false | ||
}, | |||
message = 'Đã bỏ qua tham số không rõ <code | err_missing_periodical = { | ||
message = 'Chú thích $1 cần <code class="cs1-code">|$2=</code>', -- $1 is cs1 template name; $2 is canonical periodical parameter name for cite $1 | |||
anchor = 'missing_periodical', | |||
category = 'Lỗi CS1: thiếu tạp chí', | |||
hidden = true | |||
}, | |||
err_missing_pipe = { | |||
message = 'Thiếu dấu sổ thẳng trong: <code class="cs1-code">|$1=</code>', -- $1 is parameter name | |||
anchor = 'missing_pipe', | |||
category = 'Lỗi CS1: thiếu dấu sổ thẳng', | |||
hidden = false | |||
}, | |||
err_param_access_requires_param = { | |||
message = '<code class="cs1-code">|$1-access=</code> cần <code class="cs1-code">|$1=</code>', -- $1 is parameter name | |||
anchor = 'param_access_requires_param', | |||
category = 'Lỗi CS1: param-access', | |||
hidden = false | |||
}, | |||
err_param_has_ext_link = { | |||
message = 'Liên kết ngoài trong <code class="cs1-code">$1</code>', -- $1 is parameter name | |||
anchor = 'param_has_ext_link', | |||
category = 'Lỗi CS1: liên kết ngoài', | |||
hidden = false | |||
}, | |||
err_parameter_ignored = { | |||
message = 'Đã bỏ qua tham số không rõ <code class="cs1-code">|$1=</code>', -- $1 is parameter name | |||
anchor = 'parameter_ignored', | anchor = 'parameter_ignored', | ||
category = ' | category = 'Lỗi CS1: tham số không rõ', | ||
hidden = false }, | hidden = false | ||
}, | |||
message = 'Đã bỏ qua tham số không rõ <code | err_parameter_ignored_suggest = { | ||
message = 'Đã bỏ qua tham số không rõ <code class="cs1-code">|$1=</code> (gợi ý <code class="cs1-code">|$2=</code>)', -- $1 is unknown parameter $2 is suggested parameter name | |||
anchor = 'parameter_ignored_suggest', | anchor = 'parameter_ignored_suggest', | ||
category = ' | category = 'Lỗi CS1: tham số không rõ', | ||
hidden = false }, | hidden = false | ||
}, | |||
message = 'Đã định rõ hơn một tham số trong $1', | err_redundant_parameters = { | ||
message = 'Đã định rõ hơn một tham số trong $1', -- $1 is error message detail | |||
anchor = 'redundant_parameters', | anchor = 'redundant_parameters', | ||
category = ' | category = 'Lỗi CS1: tham số thừa', | ||
hidden = false }, | hidden = false | ||
}, | |||
message = 'Đã bỏ qua văn bản “$1”', | err_script_parameter = { | ||
message = '<code class="cs1-code">|$1=</code> không hợp lệ: $2', -- $1 is parameter name $2 is script language code or error detail | |||
anchor = 'script_parameter', | |||
category = 'Lỗi CS1: tham số hệ thống viết', | |||
hidden = false | |||
}, | |||
err_ssrn_missing = { | |||
message = 'Cần <code class="cs1-code">|ssrn=</code>', | |||
anchor = 'ssrn_missing', | |||
category = 'Lỗi CS1: SSRN', -- same as bad arxiv | |||
hidden = false | |||
}, | |||
err_text_ignored = { | |||
message = 'Đã bỏ qua văn bản “$1”', -- $1 is ignored text | |||
anchor = 'text_ignored', | anchor = 'text_ignored', | ||
category = ' | category = 'Lỗi CS1: tham số không tên', | ||
hidden = false }, | hidden = false | ||
}, | |||
message = '<code | err_trans_missing_title = { | ||
message = '<code class="cs1-code">|dịch $1=</code> cần <code class="cs1-code">|$1=</code> hoặc <code class="cs1-code">|script-$1=</code>', -- $1 is base parameter name | |||
anchor = 'trans_missing_title', | anchor = 'trans_missing_title', | ||
category = ' | category = 'Lỗi CS1: dịch tiêu đề', | ||
hidden = false }, | hidden = false | ||
}, | |||
message = 'Lỗi văn phong Vancouver', | err_param_unknown_empty = { | ||
message = 'Chú thích có $1 tham số trống không rõ: $2', -- $1 is 'các' or empty space; $2 is emty unknown param list | |||
anchor = 'param_unknown_empty', | |||
category = 'Lỗi CS1: tham số trống không rõ', | |||
hidden = false | |||
}, | |||
err_vancouver = { | |||
message = 'Lỗi văn phong Vancouver: $1 trong tên $2', -- $1 is error detail, $2 is the nth name | |||
anchor = 'vancouver', | anchor = 'vancouver', | ||
category = 'Lỗi CS1: văn phong Vancouver', | category = 'Lỗi CS1: văn phong Vancouver', | ||
hidden = false }, | hidden = false | ||
}, | |||
message = 'Tựa đề URL chứa liên kết wiki', | err_wikilink_in_url = { | ||
message = 'Tựa đề URL chứa liên kết wiki', -- uses ndash | |||
anchor = 'wikilink_in_url', | anchor = 'wikilink_in_url', | ||
category = ' | category = 'Lỗi CS1: URL chứa liên kết wiki', -- uses ndash | ||
hidden = | hidden = false | ||
} | }, | ||
--[[--------------------------< M A I N T >------------------------------------- | |||
maint messages do not have a message (message = nil); otherwise the structure | |||
is the same as error messages | |||
]] | |||
maint_archived_copy = { | |||
message = nil, | |||
anchor = 'archived_copy', | |||
category = 'Quản lý CS1: bản lưu trữ là tiêu đề', | |||
hidden = true, | |||
}, | |||
maint_authors = { | |||
message = nil, | |||
anchor = 'authors', | |||
category = 'Quản lý CS1: sử dụng tham số tác giả', | |||
hidden = true, | |||
}, | |||
maint_bot_unknown = { | |||
message = nil, | |||
anchor = 'bot:_unknown', | |||
category = 'Quản lý CS1: bot: trạng thái URL ban đầu không rõ', | |||
hidden = true, | |||
}, | |||
maint_date_format = { | |||
message = nil, | |||
anchor = 'date_format', | |||
category = 'Quản lý CS1: định dạng ngày tháng', | |||
hidden = true, | |||
}, | |||
maint_date_year = { | |||
message = nil, | |||
anchor = 'date_year', | |||
category = 'Quản lý CS1: ngày tháng và năm', | |||
hidden = true, | |||
}, | |||
maint_discouraged = { | |||
message = nil, | |||
anchor = 'discouraged', | |||
category = 'Quản lý CS1: tham số không được khuyến khích', | |||
hidden = true, | |||
}, | |||
maint_doi_ignore = { | |||
message = nil, | |||
anchor = 'doi_ignore', | |||
category = 'Quản lý CS1: lỗi DOI bị bỏ qua', | |||
hidden = true, | |||
}, | |||
maint_doi_inactive = { | |||
message = nil, | |||
anchor = 'doi_inactive', | |||
category = 'Quản lý CS1: DOI không hoạt động', | |||
hidden = true, | |||
}, | |||
maint_doi_inactive_dated = { | |||
message = nil, | |||
anchor = 'doi_inactive_dated', | |||
category = 'Quản lý CS1: DOI không hoạt động tính đến $2$3$1', -- $1 is year, $2 is month-name or empty string, $3 is space or empty string | |||
hidden = true, | |||
}, | |||
maint_extra_punct = { | |||
message = nil, | |||
anchor = 'extra_punct', | |||
category = 'Quản lý CS1: dấu chấm câu dư', | |||
hidden = true, | |||
}, | |||
maint_extra_text_names = { | |||
message = nil, | |||
anchor = 'extra_text_names', | |||
category = 'Quản lý CS1: văn bản dư: $1', -- $1 is '<name>s list'; gets value from special_case_translation table | |||
hidden = true, | |||
}, | |||
maint_isbn_ignore = { | |||
message = nil, | |||
anchor = 'ignore_isbn_err', | |||
category = 'Quản lý CS1: lỗi ISBN bị bỏ qua', | |||
hidden = true, | |||
}, | |||
maint_issn_ignore = { | |||
message = nil, | |||
anchor = 'ignore_issn', | |||
category = 'Quản lý CS1: lỗi ISSN bị bỏ qua', | |||
hidden = true, | |||
}, | |||
maint_jfm_format = { | |||
message = nil, | |||
anchor = 'jfm_format', | |||
category = 'Quản lý CS1: định dạng JFM', | |||
hidden = true, | |||
}, | |||
maint_location = { | |||
message = nil, | |||
anchor = 'location', | |||
category = 'Quản lý CS1: địa điểm', | |||
hidden = true, | |||
}, | |||
maint_mr_format = { | |||
message = nil, | |||
anchor = 'mr_format', | |||
category = 'Quản lý CS1: định dạng MR', | |||
hidden = true, | |||
}, | |||
maint_mult_names = { | |||
message = nil, | |||
anchor = 'mult_names', | |||
category = 'Quản lý CS1: nhiều tên: $1', -- $1 is '<name>s list'; gets value from special_case_translation table | |||
hidden = true, | |||
}, | |||
maint_numeric_names = { | |||
message = nil, | |||
anchor = 'numeric_names', | |||
category = 'Quản lý CS1: tên số: $1', -- $1 is '<name>s list'; gets value from special_case_translation table | |||
hidden = true, | |||
}, | |||
maint_others = { | |||
message = nil, | |||
anchor = 'others', | |||
category = 'Quản lý CS1: khác', | |||
hidden = true, | |||
}, | |||
maint_others_avm = { | |||
message = nil, | |||
anchor = 'others_avm', | |||
category = 'Quản lý CS1: tham số others trong cite AV media', | |||
hidden = true, | |||
}, | |||
maint_pmc_embargo = { | |||
message = nil, | |||
anchor = 'embargo', | |||
category = 'Quản lý CS1: cấm vận PMC hết hạn', | |||
hidden = true, | |||
}, | |||
maint_pmc_format = { | |||
message = nil, | |||
anchor = 'pmc_format', | |||
category = 'Quản lý CS1: định dạng PMC', | |||
hidden = true, | |||
}, | |||
maint_postscript = { | |||
message = nil, | |||
anchor = 'postscript', | |||
category = 'Quản lý CS1: postscript', | |||
hidden = true, | |||
}, | |||
maint_ref_duplicates_default = { | |||
message = nil, | |||
anchor = 'ref_default', | |||
category = 'Quản lý CS1: ref trùng mặc định', | |||
hidden = true, | |||
}, | |||
maint_ref_harv = { | |||
message = nil, | |||
anchor = 'ref_harv', | |||
category = 'Quản lý CS1: ref=harv', | |||
hidden = true, | |||
}, | |||
maint_unfit = { | |||
message = nil, | |||
anchor = 'unfit', | |||
category = 'Quản lý CS1: URL hỏng', | |||
hidden = true, | |||
}, | |||
maint_unknown_lang = { | |||
message = nil, | |||
anchor = 'unknown_lang', | |||
category = 'Quản lý CS1: ngôn ngữ không rõ', | |||
hidden = true, | |||
}, | |||
maint_untitled = { | |||
message = nil, | |||
anchor = 'untitled', | |||
category = 'Quản lý CS1: tạp chí không tên', | |||
hidden = true, | |||
}, | |||
maint_zbl = { | |||
message = nil, | |||
anchor = 'zbl', | |||
category = 'Quản lý CS1: Zbl', | |||
hidden = true, | |||
}, | |||
} | |||
--[[--------------------------< I D _ H A N D L E R S >-------------------------------------------------------- | --[[--------------------------< I D _ H A N D L E R S >-------------------------------------------------------- | ||
The following contains a list of values for various defined identifiers. For each identifier we specify a | The following contains a list of values for various defined identifiers. For each | ||
variety of information necessary to properly render the identifier in the citation. | identifier we specify a variety of information necessary to properly render the | ||
identifier in the citation. | |||
parameters: a list of parameter aliases for this identifier | parameters: a list of parameter aliases for this identifier; first in the list is the canonical form | ||
link: Wikipedia article name | link: Wikipedia article name | ||
redirect: a local redirect to a local Wikipedia article name; at en.wiki, 'ISBN (identifier)' is a redirect to 'International Standard Book Number' | |||
q: Wikidata q number for the identifier | |||
label: the label preceeding the identifier; label is linked to a Wikipedia article (in this order): | |||
prefix: the first part of a | redirect from id_handlers['<id>'].redirect when use_identifier_redirects is true | ||
encode: true if | Wikidata-supplied article name for the local wiki from id_handlers['<id>'].q | ||
COinS: | local article name from id_handlers['<id>'].link | ||
prefix: the first part of a URL that will be concatenated with a second part which usually contains the identifier | |||
suffix: optional third part to be added after the identifier | |||
encode: true if URI should be percent-encoded; otherwise false | |||
COinS: identifier link or keyword for use in COinS: | |||
for identifiers registered at info-uri.info use: info:.... where '...' is the appropriate identifier label | |||
for identifiers that have COinS keywords, use the keyword: rft.isbn, rft.issn, rft.eissn | |||
for |asin= and |ol=, which require assembly, use the keyword: url | |||
for others make a URL using the value in prefix/suffix and #label, use the keyword: pre (not checked; any text other than 'info', 'rft', or 'url' works here) | |||
set to nil to leave the identifier out of the COinS | |||
separator: character or text between label and the identifier in the rendered citation | separator: character or text between label and the identifier in the rendered citation | ||
id_limit: for those identifiers with established limits, this property holds the upper limit | |||
access: use this parameter to set the access level for all instances of this identifier. | |||
the value must be a valid access level for an identifier (see ['id-access'] in this file). | |||
custom_access: to enable custom access level for an identifier, set this parameter | |||
to the parameter that should control it (normally 'id-access') | |||
]] | ]] | ||
local id_handlers = { | local id_handlers = { | ||
['ARXIV'] = { | ['ARXIV'] = { | ||
parameters = {'arxiv | parameters = {'arxiv', 'eprint'}, | ||
link = 'arXiv', | link = 'arXiv', | ||
redirect = 'arXiv', | |||
q = 'Q118398', | |||
label = 'arXiv', | label = 'arXiv', | ||
prefix = '//arxiv.org/abs/', -- protocol-relative tested 2013-09-04 | |||
prefix = '//arxiv.org/abs/', | |||
encode = false, | encode = false, | ||
COinS = 'info:arxiv', | COinS = 'info:arxiv', | ||
separator = ':', | separator = ':', | ||
access = 'free', -- free to read | |||
}, | |||
['ASIN'] = { | ['ASIN'] = { | ||
parameters = { 'asin', 'ASIN' }, | parameters = { 'asin', 'ASIN' }, | ||
link = 'Mã số định danh chuẩn Amazon', | link = 'Mã số định danh chuẩn Amazon', | ||
redirect = 'ASIN', | |||
q = 'Q1753278', | |||
label = 'ASIN', | label = 'ASIN', | ||
prefix = '//www.amazon.', | |||
COinS = ' | COinS = 'url', | ||
separator = ' ', | separator = ' ', | ||
encode = false; | encode = false; | ||
}, | |||
['BIBCODE'] = { | ['BIBCODE'] = { | ||
parameters = {'bibcode | parameters = {'bibcode'}, | ||
link = 'Bibcode', | link = 'Bibcode', | ||
redirect = 'Bibcode (định danh)', | |||
q = 'Q25754', | |||
label = 'Bibcode', | label = 'Bibcode', | ||
prefix = 'https://ui.adsabs.harvard.edu/abs/', | |||
prefix = ' | |||
encode = false, | encode = false, | ||
COinS = 'info:bibcode', | COinS = 'info:bibcode', | ||
separator = ':', | separator = ':', | ||
}, | custom_access = 'bibcode-access', | ||
['DOI'] = { | }, | ||
parameters = { 'doi', 'DOI' }, | ['BIORXIV'] = { | ||
parameters = {'biorxiv'}, | |||
link = 'bioRxiv', | |||
redirect = 'bioRxiv (định danh)', | |||
q = 'Q19835482', | |||
label = 'bioRxiv', | |||
prefix = '//doi.org/', | |||
COinS = 'pre', -- use prefix value | |||
access = 'free', -- free to read | |||
encode = true, | |||
separator = ' ', | |||
}, | |||
['CITESEERX'] = { | |||
parameters = {'citeseerx'}, | |||
link = 'CiteSeerX', | |||
redirect = 'CiteSeerX (định danh)', | |||
q = 'Q2715061', | |||
label = 'CiteSeerX', | |||
prefix = '//citeseerx.ist.psu.edu/viewdoc/summary?doi=', | |||
COinS = 'pre', -- use prefix value | |||
access = 'free', -- free to read | |||
encode = true, | |||
separator = ' ', | |||
}, | |||
['DOI'] = { -- Used by InternetArchiveBot | |||
parameters = { 'doi', 'DOI'}, | |||
link = 'DOI', | link = 'DOI', | ||
redirect = 'Định danh đối tượng số', | |||
q = 'Q25670', | |||
label = 'doi', | label = 'doi', | ||
prefix = '//doi.org/', | |||
prefix = '// | |||
COinS = 'info:doi', | COinS = 'info:doi', | ||
separator = ':', | separator = ':', | ||
encode = true, | encode = true, | ||
}, | custom_access = 'doi-access', | ||
['ISBN'] = { | }, | ||
parameters = {'isbn', 'ISBN', 'isbn13', 'ISBN13'}, | ['EISSN'] = { | ||
parameters = {'eissn', 'EISSN'}, | |||
link = 'ISSN', | |||
redirect = 'ISSN điện tử', | |||
q = 'Q46339674', | |||
label = 'eISSN', | |||
prefix = '//www.worldcat.org/issn/', | |||
COinS = 'rft.eissn', | |||
encode = false, | |||
separator = ' ', | |||
}, | |||
['HDL'] = { | |||
parameters = { 'hdl', 'HDL' }, | |||
link = 'Handle System', | |||
redirect = 'hdl (định danh)', | |||
q = 'Q3126718', | |||
label = 'hdl', | |||
prefix = '//hdl.handle.net/', | |||
COinS = 'info:hdl', | |||
separator = ':', | |||
encode = true, | |||
custom_access = 'hdl-access', | |||
}, | |||
['ISBN'] = { -- Used by InternetArchiveBot | |||
parameters = {'isbn', 'ISBN', 'isbn13', 'ISBN13'}, | |||
link = 'ISBN', | link = 'ISBN', | ||
redirect = 'ISBN', | |||
q = 'Q33057', | |||
label = 'ISBN', | label = 'ISBN', | ||
prefix = 'Đặc biệt:Nguồn sách/', | prefix = 'Đặc biệt:Nguồn sách/', | ||
COinS = 'rft.isbn', | COinS = 'rft.isbn', | ||
separator = ' ', | separator = ' ', | ||
}, | |||
['ISMN'] = { | ['ISMN'] = { | ||
parameters = {'ismn', 'ISMN'}, | parameters = {'ismn', 'ISMN'}, | ||
link = ' | link = 'Mã số tiêu chuẩn quốc tế cho bản nhạc in', | ||
redirect = 'ISMN (định danh)', | |||
q = 'Q1666938', | |||
label = 'ISMN', | label = 'ISMN', | ||
prefix = '', -- not currently used; | |||
prefix = '', -- not currently used; | COinS = nil, -- nil because we can't use pre or rft or info: | ||
COinS = 'info: | |||
separator = ' ', | separator = ' ', | ||
}, | |||
['ISSN'] = { | ['ISSN'] = { | ||
parameters = {'issn', 'ISSN'}, | parameters = {'issn', 'ISSN'}, | ||
link = 'ISSN', | link = 'ISSN', | ||
redirect = 'Mã số tiêu chuẩn quốc tế cho xuất bản phẩm nhiều kỳ', | |||
q = 'Q131276', | |||
label = 'ISSN', | label = 'ISSN', | ||
prefix = '//www.worldcat.org/issn/', | prefix = '//www.worldcat.org/issn/', | ||
COinS = 'rft.issn', | COinS = 'rft.issn', | ||
encode = false, | encode = false, | ||
separator = ' ', | separator = ' ', | ||
}, | |||
['JFM'] = { | ['JFM'] = { | ||
parameters = {'jfm', 'JFM'}, | parameters = {'jfm', 'JFM'}, | ||
link = ' | link = 'Jahrbuch über die Fortschritte der Mathematik', | ||
redirect = 'JFM (định danh)', | |||
q = '', | |||
label = 'JFM', | label = 'JFM', | ||
prefix = '//zbmath.org/?format=complete&q=an:', | prefix = '//zbmath.org/?format=complete&q=an:', | ||
COinS = ' | COinS = 'pre', -- use prefix value | ||
encode = true, | encode = true, | ||
separator = ' ', | separator = ' ', | ||
}, | |||
['JSTOR'] = { | ['JSTOR'] = { | ||
parameters = {'jstor', 'JSTOR'}, | parameters = {'jstor', 'JSTOR'}, | ||
link = 'JSTOR', | link = 'JSTOR', | ||
redirect = 'JSTOR (định danh)', | |||
q = 'Q1420342', | |||
label = 'JSTOR', | label = 'JSTOR', | ||
prefix = '//www.jstor.org/stable/', -- protocol-relative tested 2013-09-04 | |||
prefix = '//www.jstor.org/stable/', | COinS = 'pre', -- use prefix value | ||
COinS = ' | |||
encode = false, | encode = false, | ||
separator = ' ', | separator = ' ', | ||
custom_access = 'jstor-access', | |||
}, | |||
['LCCN'] = { | ['LCCN'] = { | ||
parameters = {' | parameters = {'lccn', 'LCCN'}, | ||
link = 'Số kiểm soát của Thư viện Quốc hội Mỹ', | link = 'LCCN', | ||
redirect = 'Số kiểm soát của Thư viện Quốc hội Mỹ', | |||
q = 'Q620946', | |||
label = 'LCCN', | label = 'LCCN', | ||
prefix = '//lccn.loc.gov/', -- protocol-relative tested 2015-12-28 | |||
prefix = ' | COinS = 'info:lccn', | ||
COinS = ' | |||
encode = false, | encode = false, | ||
separator = ' ', | separator = ' ', | ||
}, | |||
['MR'] = { | ['MR'] = { | ||
parameters = {' | parameters = {'mr', 'MR'}, | ||
link = 'Mathematical Reviews', | link = 'Mathematical Reviews', | ||
redirect = 'MR (định danh)', | |||
q = 'Q211172', | |||
label = 'MR', | label = 'MR', | ||
prefix = '//www.ams.org/mathscinet-getitem?mr=', -- protocol-relative tested 2013-09-04 | |||
prefix = '//www.ams.org/mathscinet-getitem?mr=', | COinS = 'pre', -- use prefix value | ||
COinS = ' | |||
encode = true, | encode = true, | ||
separator = ' ', | separator = ' ', | ||
}, | |||
['OCLC'] = { | ['OCLC'] = { | ||
parameters = {' | parameters = {'oclc', 'OCLC'}, | ||
link = 'OCLC', | link = 'OCLC', | ||
redirect = 'OCLC (định danh)', | |||
q = 'Q190593', | |||
label = 'OCLC', | label = 'OCLC', | ||
prefix = '//www.worldcat.org/oclc/', | prefix = '//www.worldcat.org/oclc/', | ||
COinS = 'info:oclcnum', | COinS = 'info:oclcnum', | ||
encode = true, | encode = true, | ||
separator = ' ', | separator = ' ', | ||
id_limit = 9999999999, -- 10-digits | |||
}, | |||
['OL'] = { | ['OL'] = { | ||
parameters = { 'ol', 'OL' }, | parameters = { 'ol', 'OL' }, | ||
link = 'Open Library', | link = 'Open Library', | ||
redirect = 'OL (định danh)', | |||
q = 'Q1201876', | |||
label = 'OL', | label = 'OL', | ||
prefix = '//openlibrary.org/', | |||
COinS = ' | COinS = 'url', | ||
separator = ' ', | separator = ' ', | ||
encode = true, | |||
custom_access = 'ol-access', | |||
}, | |||
['OSTI'] = { | ['OSTI'] = { | ||
parameters = {' | parameters = {'osti', 'OSTI'}, | ||
link = 'Văn phòng Thông tin Khoa học và Kỹ thuật', | link = 'Văn phòng Thông tin Khoa học và Kỹ thuật', | ||
redirect = 'OSTI (định danh)', | |||
q = 'Q2015776', | |||
label = 'OSTI', | label = 'OSTI', | ||
prefix = '//www.osti.gov/biblio/', -- protocol-relative tested 2018-09-12 | |||
prefix = '//www.osti.gov/ | COinS = 'pre', -- use prefix value | ||
COinS = ' | |||
encode = true, | encode = true, | ||
separator = ' ', | separator = ' ', | ||
id_limit = 23010000, | |||
custom_access = 'osti-access', | |||
}, | |||
['PMC'] = { | ['PMC'] = { | ||
parameters = {' | parameters = {'pmc', 'PMC'}, | ||
link = 'PubMed Central', | link = 'PubMed Central', | ||
redirect = 'PMC (định danh)', | |||
q = 'Q229883', | |||
label = 'PMC', | label = 'PMC', | ||
prefix = '//www.ncbi.nlm.nih.gov/pmc/articles/PMC', | prefix = '//www.ncbi.nlm.nih.gov/pmc/articles/PMC', | ||
suffix = | suffix = '', | ||
COinS = ' | COinS = 'pre', -- use prefix value | ||
encode = true, | encode = true, | ||
separator = ' ', | separator = ' ', | ||
id_limit = 9900000, | |||
access = 'free', -- free to read | |||
}, | |||
['PMID'] = { | ['PMID'] = { | ||
parameters = {' | parameters = {'pmid', 'PMID'}, | ||
link = 'Định danh PubMed', | link = 'Định danh PubMed', | ||
redirect = 'PMID', | |||
q = 'Q2082879', | |||
label = 'PMID', | label = 'PMID', | ||
prefix = '//pubmed.ncbi.nlm.nih.gov/', | |||
prefix = '// | |||
COinS = 'info:pmid', | COinS = 'info:pmid', | ||
encode = false, | encode = false, | ||
separator = ' ', | separator = ' ', | ||
id_limit = 37900000, | |||
}, | |||
['RFC'] = { | ['RFC'] = { | ||
parameters = {' | parameters = {'rfc', 'RFC'}, | ||
link = 'RFC', | link = 'RFC', | ||
redirect = 'Đề nghị duyệt thảo và bình luận', | |||
q = 'Q212971', | |||
label = 'RFC', | label = 'RFC', | ||
prefix = '//tools.ietf.org/html/rfc', | prefix = '//tools.ietf.org/html/rfc', | ||
COinS = ' | COinS = 'pre', -- use prefix value | ||
encode = false, | encode = false, | ||
separator = ' ', | separator = ' ', | ||
}, | id_limit = 9300, | ||
access = 'free', -- free to read | |||
}, | |||
['SBN'] = { | |||
parameters = {'sbn', 'SBN'}, | |||
link = 'Mã số tiêu chuẩn cho sách', -- redirect to International_Standard_Book_Number#History | |||
redirect = 'SBN (định danh)', | |||
label = 'SBN', | |||
prefix = 'Đặc biệt:Nguồn sách/0-', -- prefix has leading zero necessary to make 9-digit sbn a 10-digit isbn | |||
COinS = nil, -- nil because we can't use pre or rft or info: | |||
separator = ' ', | |||
}, | |||
['SSRN'] = { | ['SSRN'] = { | ||
parameters = {' | parameters = {'ssrn', 'SSRN'}, | ||
link = 'Mạng Nghiên cứu Khoa học Xã hội', | link = 'Mạng Nghiên cứu Khoa học Xã hội', | ||
redirect = 'SSRN (định danh)', | |||
q = 'Q7550801', | |||
label = 'SSRN', | label = 'SSRN', | ||
prefix = '//ssrn.com/abstract=', -- protocol-relative tested 2013-09-04 | |||
prefix = '//ssrn.com/abstract=', | COinS = 'pre', -- use prefix value | ||
COinS = ' | |||
encode = true, | encode = true, | ||
separator = ' ', | separator = ' ', | ||
}, | id_limit = 4600000, | ||
access = 'free', -- always free to read | |||
}, | |||
['S2CID'] = { | |||
parameters = {'s2cid', 'S2CID'}, | |||
link = 'Semantic Scholar', | |||
redirect = 'S2CID (định danh)', | |||
q = 'Q22908627', | |||
label = 'S2CID', | |||
prefix = 'https://api.semanticscholar.org/CorpusID:', | |||
COinS = 'pre', -- use prefix value | |||
encode = false, | |||
separator = ' ', | |||
id_limit = 262000000, | |||
custom_access = 's2cid-access', | |||
}, | |||
['USENETID'] = { | ['USENETID'] = { | ||
parameters = {'message-id'}, | parameters = {'message-id'}, | ||
link = 'Usenet', | link = 'Usenet', | ||
redirect = 'Usenet (định danh)', | |||
q = 'Q193162', | |||
label = 'Usenet:', | label = 'Usenet:', | ||
prefix = 'news:', | prefix = 'news:', | ||
encode = false, | encode = false, | ||
COinS = ' | COinS = 'pre', -- use prefix value | ||
separator = ' ', | separator = ' ', | ||
}, | |||
['ZBL'] = { | ['ZBL'] = { | ||
parameters = {' | parameters = {'zbl', 'ZBL' }, | ||
link = 'Zentralblatt MATH', | link = 'Zentralblatt MATH', | ||
redirect = 'Zbl (định danh)', | |||
q = 'Q190269', | |||
label = 'Zbl', | label = 'Zbl', | ||
prefix = '//zbmath.org/?format=complete&q=an:', | prefix = '//zbmath.org/?format=complete&q=an:', | ||
COinS = ' | COinS = 'pre', -- use prefix value | ||
encode = true, | encode = true, | ||
separator = ' ', | separator = ' ', | ||
}, | |||
} | } | ||
--[[--------------------------< E X P O R T S >--------------------------------- | |||
]] | |||
return { | return { | ||
use_identifier_redirects = true, -- when true use redirect name for identifier label links | |||
aliases = aliases, | aliases = aliases, | ||
special_case_translation = special_case_translation, | |||
date_names = date_names, | |||
err_msg_supl = err_msg_supl, | |||
error_conditions = error_conditions, | error_conditions = error_conditions, | ||
editor_markup_patterns = editor_markup_patterns, | |||
et_al_patterns = et_al_patterns, | |||
global_df = global_df, | |||
id_handlers = id_handlers, | id_handlers = id_handlers, | ||
keywords_lists = keywords_lists, | |||
keywords_xlate = keywords_xlate, | |||
stripmarkers=stripmarkers, | |||
invisible_chars = invisible_chars, | |||
invisible_defs = invisible_defs, | |||
indic_script = indic_script, | |||
emoji = emoji, | |||
local_lang_cat_enable = local_lang_cat_enable, | |||
maint_cats = maint_cats, | maint_cats = maint_cats, | ||
messages = messages, | messages = messages, | ||
presentation = presentation, | presentation = presentation, | ||
prop_cats = prop_cats, | prop_cats = prop_cats, | ||
punct_skip = punct_skip, | |||
script_lang_codes = script_lang_codes, | |||
lang_code_remap = lang_code_remap, | |||
lang_name_remap = lang_name_remap, | |||
this_wiki_code = this_wiki_code, | |||
title_types = title_types, | title_types = title_types, | ||
uncategorized_namespaces = uncategorized_namespaces, | uncategorized_namespaces = uncategorized_namespaces, | ||
uncategorized_subpages = uncategorized_subpages, | uncategorized_subpages = uncategorized_subpages, | ||
templates_using_volume = templates_using_volume, | |||
templates_using_issue = templates_using_issue, | |||
templates_not_using_page = templates_not_using_page, | |||
vol_iss_pg_patterns = vol_iss_pg_patterns, | |||
inter_wiki_map = inter_wiki_map, | |||
languages = languages, | |||
} | } |