وحدة:Citation/CS1/Configuration/sandbox

من موسوعة المزرعة
< وحدة:Citation/CS1‏ | Configuration
مراجعة 04:08، 4 أبريل 2021 بواسطة Ahmad A Najar (نقاش | مساهمات) (أنشأ الصفحة ب' --[[--------------------------< U N C A T E G O R I Z E D _ N A M E S P A C E S >------------------------------ قائمة النطاقات التي لا ينبغي أ...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

يمكن إنشاء صفحة توثيق الوحدة في وحدة:Citation/CS1/Configuration/sandbox/شرح


--[[--------------------------< U N C A T E G O R I Z E D _ N A M E S P A C E S >------------------------------

قائمة النطاقات التي لا ينبغي أن تدرج فيها تصانيف تتبع أخطاء الاستشهادات
هي بالضبط كما تضع  notracking = true
ملاحظة: يجب استخدام (_) بدلا من المسافات في أسماء النطاقات.

]]
local code_style="color:inherit; border:inherit; padding:inherit;";

local uncategorized_namespaces = { 
        'مستخدم'
        ,'مستخدمة'
        ,'نقاش'
        ,'نقاش_المستخدم'
        ,'نقاش_المستخدمة'
        ,'نقاش_ويكيبيديا'
        ,'نقاش_الملف'
        ,'نقاش_القالب'
        ,'Help_talk'
        ,'نقاش_التصنيف'
        ,'نقاش_البوابة'
        ,'Book_talk'
        ,'Draft'
        ,'Draft_talk'
        ,'Education_Program_talk'
        ,'نقاش_الوحدة'
        ,'نقاش_ميدياويكي'
 };
local uncategorized_subpages = {'/[Ss]andbox', '/[Tt]estcases', '/ملعب', '/مختبر'};        -- list of Lua patterns found in page names of pages we should not categorize


--[[--------------------------< M E S S A G E S >--------------------------------------------------------------

Translation table

The following contains fixed text that may be output as part of a citation.
This is separated from the main body to aid in future translations of this
module.

]]

local messages = {
	['agency'] = '$1 $2',														-- $1 is sepc, $2 is agency
    ['archived-dead'] = 'مؤرشف من $1 في $2',
	['archived-live'] = '$1 من الأصل في $2',
    ['archived-missing'] = 'مؤرشف من الأصل $1 في $2',
	['archived-unfit'] = 'Archived from the original on ',
    ['archived'] = 'مؤرشف',
    ['by'] = 'بواسطة',                                                              -- contributions to authored works: introduction, foreword, afterword
    ['cartography'] = 'رسم الخرائط من قبل $1',
    ['editor'] = 'المحرر',
    ['editors'] = 'المحررون',
    ['publisher'] = 'الناشر $1',
    ['edition'] = '(الطبعة $1)', 
    ['episode'] = 'حلقة $1',
    ['et al'] = 'et al.',
    ['in'] = 'In',                                                              -- edited works
    ['inactive'] = 'غير نشط',
    ['inset'] = '$1 inset',
    ['interview'] = 'مقابلة مع $1',                                     
    ['lay summary'] = 'ضع ملخصا',
    ['newsgroup'] = 'مجموعة للأخبار:&nbsp;$1',
    ['original'] = 'الأصل',
	['origyear'] = ' [$1]',
    ['published'] = ' (نشر $1)',
    ['retrieved'] = 'اطلع عليه بتاريخ $1',
    ['season'] = 'موسم $1',
    ['section'] = 'قسم $1',
    ['sections'] = 'الأقسام $1',
    ['series'] = '$1',														-- $1 is sepc, $2 is series
	['seriesnum'] = 'سلسلة $1',
    ['translated'] = 'تُرجم بواسطة $1',
    ['type'] = ' ($1)',                                                         -- for titletype
    ['written'] = 'كتب في $1',

    ['vol'] = '$1 المجلد.&nbsp;$2',                                             -- $1 is sepc; bold journal style volume is in presentation{}
    ['vol-no'] = '$1 Vol.&nbsp;$2 no.&nbsp;$3',                                 -- sepc, volume, issue
    ['issue'] = '$1 العدد&nbsp;$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 صفحة&nbsp;$2",                                               -- $1 is sepc
    ['pp-prefix'] = "$1 صفحات&nbsp;$2",                                         -- $1 is sepc
    ['j-page(s)'] = ': $1',                                                     -- same for page and pages

    ['sheet'] = '$1 ورقة&nbsp;$2',                                              -- $1 is sepc
    ['sheets'] = '$1 أوراق&nbsp;$2',                                            -- $1 is sepc
    ['j-sheet'] = ': ورقة&nbsp;$1',
    ['j-sheets'] = ': أوراق&nbsp;$1',
    
    ['language'] = '(باللغة $1)',
    ['via'] = " &ndash; عبر $1",
    ['event'] = 'وقع ذلك في',
    ['minutes'] = 'دقيقة في', 
    
    ['parameter-separator'] = ' و ',
    ['parameter-final-separator'] = ' و ',
    ['parameter-pair-separator'] = ' و ',-- Error output
    
    ['subscription'] = '<span style="font-size:90%; color:#555">(تتطلب إشتراكا (<span title="Sources are not required to be available online. Online sources do not have to be freely available. The site may require a paid subscription." style="border-bottom:1px dotted;cursor:help">مساعدة</span>))</span>' ..
        '[[تصنيف:صفحات تحتوي رابط بمحتوى للمشتركين فقط]]',
    
    ['registration']='<span style="font-size:90%; color:#555">(تتطلب إشتراكا (<span title="Sources are not required to be available online. Online sources do not have to be freely available. The site may require registration." style="border-bottom:1px dotted;cursor:help">مساعدة</span>))</span>' ..
        '[[تصنيف:صفحات تحتوي رابط بمحتوى يتطلب تسجيل دخول]]',
    
    -- Determines the location of the help page
    ['help page link'] = 'Help:CS1 errors',
    ['help page label'] = 'مساعدة',
    
    -- Internal errors (should only occur if configuration is bad)
    ['undefined_error'] = 'اتصال مع حالة خطأ غير معروف',
    ['unknown_manual_ID'] = 'Unrecognized manual ID mode',
    ['unknown_ID_mode'] = 'Unrecognized ID mode',
    ['unknown_argument_map'] = 'Argument map not defined for this variable',
    ['bare_url_no_origin'] = 'Bare url found but origin indicator is nil or empty',
    }


--[=[-------------------------< 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][Aa][%.\"']*$",                    -- variations on the 'et alia' theme
    "[;,]? *%f[%a]and [Oo]thers",                                               -- and alternate to et al.
	"%[%[ *[Ee][Tt]%.? *[Aa][Ll]%.? *%]%]",										-- a wikilinked form
	"[%(%[] *[Ee][Tt]%.? *[Aa][Ll]%.? *[%)%]]",									-- a bracketed form
    }


--[[--------------------------< 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 sq brackets, case insensitive, optional brackets, 's'
    '^[%(%[]?%s*[Ee][Dd][Ii][Tt][Ee][Dd]%A',                                    -- (edited: also sq 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
    }


--[[--------------------------< 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
correct place.

]]

local presentation = 
    {
    -- Error output
    -- .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
	['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 &#8239; 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='يمكن الوصول إليها بحرية'},			-- classes defined in Module:Citation/CS1/styles.css
		['registration'] = {class='cs1-lock-registration', title='يمكن التسجيل بحرية'},
		['limited'] = {class='cs1-lock-limited', title='حرية الوصول تخضع لفترة محدودة، يتطلب اشتراك عادة'},
		['subscription'] = {class='cs1-lock-subscription', title='يتطلب اشتراك مدفوع'},
    
    ['interwiki-icon'] = '<span class="$1" title="$2">$3</span>',
    ['class-wikisource'] = 'cs1-ws-icon',

    ['italic-title'] = "''$1''",

	['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 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>
    ['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 class="cs1-code">&#124;$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-title'] = '"$1"',

    ['sep_cs1'] = '.',                                                          -- cs1 element separator
    ['sep_cs2'] = ',',                                                          -- cs2 separator
    ['sep_nl'] = ';',                                                           -- cs1|2 style name-list separator between authors is a semicolon
    ['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

    ['trans-italic-title'] = "&#91;''$1''&#93;",
    ['trans-quoted-title'] = "&#91;$1&#93;",
    ['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 >----------------------------------------------------------------

-- جدول الوسائط البديلة أو المكررة لنفس الوسيط الأساسي

Parameter names on the right side in the assignements in this table must have been defined in the Whitelist
before they will be recognized as valid parameter names

]]

local aliases = {
    ['AccessDate'] = {'تاريخ الوصول','تاريخ وصول','access-date', 'accessdate'},
    ['Agency'] = {'وكالة', 'agency'},
    ['AirDate'] = {'air-date', 'airdate'},
    ['ArchiveDate'] = {'تاريخ الأرشيف', 'archive-date', 'تاريخ-الأرشيف', 'archivedate','تاريخ أرشيف'},
    ['ArchiveFormat'] = {'تنسيق الأرشيف','archive-format','تنسيق-الأرشيف',},
    ['ArchiveURL'] = {'مسار الأرشيف','archive-url','مسار أرشيف', 'archiveurl','مسار-الأرشيف',},
    ['ASINTLD'] = {'ASIN-TLD', 'asin-tld'},
    ['At'] = 'at',
    ['Authors'] = {'المؤلفون','المؤلفين','authors', 'people', 'host', 'credits', 'أشخاص'},
    ['BookTitle'] = {'book-title', 'booktitle', 'عنوان الكتاب', 'عنوان المؤتمر'},
    ['Callsign'] = {'call-sign', 'callsign'}, -- cite interview
    ['Cartography'] = 'cartography',
    ['Chapter'] = {'الفصل', 'chapter', 'contribution', 'entry', 'article', 'section'},
    ['ChapterFormat'] = {'chapter-format', 'contribution-format', 'section-format','تنسيق الفصل'},
    ['ChapterURL'] = {'مسار الفصل', 'chapter-url', 'chapterurl', 'contribution-url', 'contributionurl', 'section-url', 'sectionurl'},
    ['ChapterUrlAccess'] = {'chapter-url-access', 'contribution-url-access', 'entry-url-access', 'article-url-access', 'section-url-access'},
    ['City'] = {'city', 'المدينة'},-- cite interview
    ['Class'] = {'class','صنف الأرشيف'},-- cite arxiv and arxiv identifiers
    ['Collaboration'] = 'collaboration',
    ['Conference'] = {'conference', 'event', 'اسم المؤتمر', 'مناسبة'},
    ['ConferenceFormat'] = {'conference-format', 'event-format'},
	['ConferenceURL'] = {'conference-url', 'conferenceurl', 'event-url', 'eventurl', 'مسار المؤتمر'},	-- Used by InternetArchiveBot
    ['Contribution'] = 'contribution',-- introduction, foreword, afterword, etc; required when |contributor= set
    ['Date'] = {'التاريخ','date', 'air-date', 'airdate','تاريخ'},
    ['DeadURL'] = {'وصلة مكسورة', 'dead-url', 'deadurl', 'رابط معطوب'},
    ['Degree'] = {'degree','الدرجة'},
    ['DF'] = 'df',
    ['DisplayAuthors'] = {'display-authors', 'displayauthors','إظهار المؤلفين'},
    ['DisplayContributors'] = 'display-contributors',
    ['DisplayEditors'] = {'display-editors', 'displayeditors','إظهار المحررين'},
    ['DisplayInterviewers'] = 'display-interviewers',
    ['DisplayTranslators'] = 'display-translators',
    ['Docket'] = 'docket',
    ['DoiBroken'] = {'doi-broken', 'doi-broken-date', 'doi-inactive-date', 'doi_brokendate', 'doi_inactivedate'},
    ['Edition'] = {'الإصدار','الاصدار','إصدار','اصدار','طبعة','الطبعة','رقم الطبعة','edition'},
    ['editor'] = {'محرر','المحرر'},
    ['Editors'] = {'editors','المحررين','المحررون'},
    ['Embargo'] = 'embargo',
    ['Encyclopedia'] = {'encyclopedia','موسوعة', 'encyclopaedia'},-- this one only used by citation
    ['Episode'] = {'episode','الحلقة'},-- cite serial only TODO: make available to cite episode?
    ['Format'] = {'التنسيق', 'format','تنسيق'},
    ['ID'] = {'id', 'ID', 'المعرف'},
    ['IgnoreISBN'] = {'ignore-isbn-error','تجاهل خطأ ردمك', 'ignoreisbnerror','تجاهل خطأ الرقم المعياري','تجاهل خطأ isbn'},
    ['Inset'] = {'inset', 'مجموعة'},
    ['isbn'] = {'الرقم المعياري','رقم معياري','ردمك','ISBN'},
    ['Oclc'] = {'أكلس', 'COLC','oclc'},
    ['Issue'] = {'العدد','issue', 'number'},
    ['Language'] = {'اللغة','language', 'in','لغة'},
    ['LastAuthorAmp'] = {'last-author-amp', 'lastauthoramp'},
    ['LayDate'] = {'lay-date', 'laydate'},
    ['LayFormat'] = 'lay-format',
    ['LaySource'] = {'lay-source', 'laysource'},
    ['LayURL'] = {'lay-url', 'lay-summary', 'layurl', 'laysummary'},
    ['MailingList'] = {'القائمة البريدية','mailinglist', 'mailing-list'},-- cite mailing list only
    ['Map'] = {'الخريطة','map'},-- cite map only
    ['MapFormat'] = {'map-format','تنسيق الخريطة'},-- cite map only
    ['MapURL'] = {'مسار الخريطة','mapurl', 'map-url'},-- cite map only
	['MapUrlAccess'] = 'map-url-access',
    ['MessageID'] = {'message-id','معرف الرسالة'},
    ['Minutes'] = {'minutes', 'دقيقة'},
    ['Month'] = {'شهر','mounth','الشهر'},
    ['Mode'] = 'mode',
    ['NameListFormat'] = 'name-list-format',
    ['Network'] = {'الشبكة','network'},
	['Newsgroup'] = 'newsgroup',												-- cite newsgroup only 
    ['NoPP'] = {'no-pp', 'nopp'},
    ['NoTracking'] = {'template-doc-demo', 'template doc demo', 'no-cat', 'nocat',
        'no-tracking', 'notracking'},
    ['Number'] = 'number',-- this case only for cite techreport
    ['OrigYear'] = {'orig-year', 'origyear','سنة النشر الأصلية'},
    ['Others'] = {'others', 'interviewer', 'interviewers', 'المحاور', 'المحاورون','المحقق'},
    ['Page'] = {'p','الصفحة','page','الصفحة','صفحة','رقم الصفحة','رقم صفحة'},
    ['Pages'] = {'الصفحات','pp','صفحات','أرقام الصفحات','أرقم صفحات','pages'},

    ['Periodical'] = {'journal', 'newspaper', 'magazine', 'work',
        'website', 'الموقع',  'periodical', 'encyclopedia', 'encyclopaedia', 'dictionary','اسم الصحيفة','اسم الدورية','اسم المعجم','اسم الموسوعة','اسم الموقع','اسم القائمة البريدية','صحيفة', 'mailinglist','العمل','من عمل','موقع'},
    
    ['Place'] = {'place', 'المكان','مقر','المقر','location','مكان'},
    ['PostScript'] = 'postscript',
    ['Program'] = 'program',-- cite interview
    ['PublicationDate'] = {'publicationdate', 'تاريخ النشر', 'publication-date'},
    ['PublicationPlace'] = {'publication-place', 'مكان النشر', 'publicationplace'},
--	['PublisherName'] = {'publisher', 'institution', 'newsgroup'},
    ['PublisherName'] = {'ناشر','publisher', 'الناشر', 'distributor', 'institution', 'مصدر','الموزع', 'المصدر','المؤسسة', 'اسم المجموعة'},
    ['Quote'] = {'quote', 'quotation', 'اقتباس'},
    ['Ref'] = 'ref',
    ['RegistrationRequired'] = {'registration','التسجيل'},
    ['Scale'] = {'scale','المقياس'},
	['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'},
	['ScriptTitle'] = {'script-title','عنوان أجنبي'},											-- Used by InternetArchiveBot
    ['Section'] = {'section','القسم'},
    ['Season'] = {'season','الموسم'},
    ['Sections'] = 'sections',-- cite map only
    ['Series'] = {'سلسلة', 'series', 'version'},
    ['SeriesSeparator'] = 'series-separator',
    ['SeriesLink'] = {'series-link', 'serieslink','مسار المسلسل','وصلة سلسلة'},
    ['SeriesNumber'] = {'series-number', 'series-no', 'seriesnumber', 'seriesno', 'رقم سلسلة'},
    ['Sheet'] = {'ورقة', 'sheet'},-- cite map only
    ['Sheets'] = {'أوراق', 'sheets'},-- cite map only
    ['Station'] = {'station', 'محطة'},
    ['SubscriptionRequired'] = 'subscription',
    ['Time'] = {'time','الوقت','وقت الوقوع'},
    ['TimeCaption'] = {'time-caption', 'timecaption'},
    ['Title'] = {'عنوان','title','العنوان','اسم المسلسل'},
    ['TitleLink'] = {'title-link', 'titlelink', 'وصلة العنوان', 'episode-link', 'وصلة الحلقة', 'episodelink'},
    ['TitleNote'] = 'department',
    ['TitleType'] = {'type', 'medium', 'النوع'},
    ['TransChapter'] = {'trans-chapter', 'trans_chapter'},
    ['Transcript'] = 'transcript',
    ['TranscriptFormat'] = 'transcript-format',
	['TranscriptURL'] = {'transcript-url', 'transcripturl'},					-- Used by InternetArchiveBot
    ['TransMap'] = 'trans-map',-- cite map only
	['TransPeriodical'] = {'trans-journal', 'trans-magazine', 'trans-newspaper', 'trans-periodical', 'trans-website', 'trans-work'},
    ['TransTitle'] = {'العنوان بالعربي', 'trans-title','العنوان باللغة العربية', 'trans_title','العنوان المترجم'},
	['URL'] = {'وصلة','url','المسار', 'URL', 'مسار'},													-- Used by InternetArchiveBot
	['UrlAccess'] = 'url-access',												-- Used by InternetArchiveBot
	['UrlStatus'] = 'url-status',												-- Used by InternetArchiveBot
    ['Vauthors'] = {'عدة مؤلفين','vauthors'},
    ['Veditors'] = {'عدة محررين','veditors'},
    ['Via'] = {'بواسطة','via'},
    ['Volume'] = {'المجلد','volume','الجزء'},
    ['Year'] = {'السنة','year','سنة'},

    ['AuthorList-First'] = {"أول#","first#","اول#"
                            ,"الاول#" ,"given#" ,"الأول#"
                            , "author#-first" , "مؤلف# الأول"
                            , "author-first#", "مؤلف الأول#"},
                            
    ['AuthorList-Last'] = {  "مؤلف# الأخير" 
                            , "author#-last" , "مؤلف#-الأخير"
                            ,"الأخير#","last#","الاخير#"
                            ,"المؤلف#", "author#","مؤلف#"
                            ,"أخير#", "surname#","اخير#"
                            ,"author-last#", "مؤلف الأخير#"
                            , "subject#", "الموضوع"},
    
    ['AuthorList-Link'] = {"وصلة مؤلف#", "authorlink#"
                            , "مؤلف# وصلة" , "author#-link"
                            , "author-link#", "subjectlink#" ,  "وصلة-مؤلف#"
                            , "author#link", "وصلة المؤلف#"
                            , "subject-link#", "subject#-link", "subject#link"},
                            
    ['AuthorList-Mask'] = {"author-mask#", "authormask#", "author#mask", "author#-mask"},
    
    ['ContributorList-First'] = {'contributor-first#','مشارك-الأول#'
                            , 'contributor#-first', 'مشارك#-الأول'
                            , 'contributor-given#', 'contributor#-given'},
    ['ContributorList-Last'] = {'contributor#','مشارك#'
                            , 'contributor-last#', 'مشارك-الأخير#'
                            , 'contributor#-last', 'مشارك#-الأخير'
                            , 'contributor-surname#' , 'contributor#-surname'},
    ['ContributorList-Link'] = {'contributor-link#', 'contributor#-link', 'مشارك#-وصلة'},
    ['ContributorList-Mask'] = {'contributor-mask#', 'contributor#-mask'},

    ['EditorList-First'] = {"محرر#-الأول", "editor#-first"
                            ,"محرر# الأول", "editor-first#" 
                            ,"editor-given#" , "editor#-given"},
    ['EditorList-Last'] = {"محرر#-الأخير", "editor#-last"
                            , "editor#", "المحرر#"
                            , "محرر# الأخير", "editor-last#"
                            , "editor-surname#", "editor#-surname"
                            ,"محرر#"},
    ['EditorList-Link'] = { "محرر-وصلة#", "editor-link#"
                            ,"editor#-link","محرر#-وصلة"
                            , "editorlink#" , "وصلة محرر#"
                            , "editor#link"},
    ['EditorList-Mask'] = {"editor-mask#", "editor#-mask", "editormask#", "editor#mask"},
    
    ['InterviewerList-First'] = {'interviewer-first#', 'interviewer#-first'},
    ['InterviewerList-Last'] = {'interviewer#', 'interviewer-last#', 'interviewer#-last'},
    ['InterviewerList-Link'] = {'interviewer-link#', 'interviewer#-link'},
    ['InterviewerList-Mask'] = {'interviewer-mask#', 'interviewer#-mask'},

    ['TranslatorList-First'] = {'translator-first#', 'translator#-first', 'translator-given#', 'translator#-given'},
    ['TranslatorList-Last'] = {'مترجم#','translator#','المترجم#'
                            , 'translator-last#','المترجم-الأخير#'
                            , 'translator#-last','المترجم#-الأخير'
                            , 'translator-surname#', 'translator#-surname'},
    ['TranslatorList-Link'] = {'translator-link#'
                            ,'translator#-link', 'المترجم#-وصلة'
                            , 'مترجم#-وصلة'},
    ['TranslatorList-Mask'] = {'translator-mask#', 'translator#-mask'},
}


--[[--------------------------< P U N C T _ S K I P >----------------------------------------------------------

builds a table of parameter names that the extraneous terminal punctuation check should not check.

]]
local defaults = {
  ['DeadURL'] = 'yes',
 -- ['PostScript'] = '.',
 -- ['Separator'] = '.',
 -- ['AuthorSeparator'] = '؛',
 -- ['EditorSeparator'] = '؛',
 -- ['NameSeparator'] = '،',
--  ['PPrefix'] = "صفحة&nbsp;",
--  ['PPPrefix'] = "صفحات&nbsp;",    
}

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
	'PostScript', 'Quote', '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
			end
		end
	end