Mô đun:Month translator/data
Có thể viết tài liệu về mô đun này tại Mô đun:Month translator/data/tài liệu.
--[[--------------------------< L A N G U A G E S >------------------------------------------------------------ Table of ISO 639 codes for languages supported by this module. List of MediaWiki supported languages and their codes can be found at: Template:Citation_Style_documentation/language/doc ]] local langs = {'ca', 'de', 'es', 'fi', 'fr', 'it', 'pl', 'pt', 'ru', 'sv'}; --[[--------------------------< E N G L I S H M O N T H N A M E S >---------------------------------------- Table of local language month names filled by month_names_get() ]] local en_months = {}; --[[--------------------------< P A T T E R N S >-------------------------------------------------------------- table of tables that hold pattern and other information used to extract date parts for translation and reconstrution Tables have the form: [1] - pattern for a particular date format; must include captures for the requiste date components: day, month, year which ever are included in the date format [2] - a letter 'd', 'm', or 'y' that identified the content of the first (left-most) capture [3] - same as [2] for the second capture [4] - same as [2] for the last (right-most) capture ymd numeric dates have no hames so are not translated; use |df= parameter in the cs1|2 template for that. ]] local patterns = { {'^(%d%d?) +(%a+) +(%d%d%d%d%a?)$', 'd', 'm', 'y'}, -- dd Mmm yyyy {'^(%d%d?) +de +(%a+) +de +(%d%d%d%d%a?)$', 'd', 'm', 'y'}, -- dd de Mmm de yyyy {'^(%a+) +(%d%d%d%d%a?)$', 'm', 'y'}, -- Mmm yyyy {'^(%a+) +de +(%d%d%d%d%a?)$', 'm', 'y'}, -- Mmm de yyyy {'^(%a+) +(%d%d?) *, +(%d%d%d%d%a?)$', 'm', 'd', 'y'}, -- Mmm dd, yyyy {'^(%a+)$', 'm'}, -- month only; mostly for debug purposes }; --[[--------------------------< O V E R R I D E _ N A M E S >-------------------------------------------------- table of non-English month names that are valid but are not in the list of names taken from MediaWiki with month_names_get(). Items in this list have the form: ['<non-English month name>'] = 'English month name', '<non-English month name>' must be lowercase ]] local override_names = { [''] = '', } --[[--------------------------< M O N T H _ N A M E S _ G E T >------------------------------------------------ creates a translation table of non-English month names listed in lang{} mapped to English month names listed in en_months{} (which this function also fills). ]] local function month_names_get () local month_names = {}; local lang_obj = mw.language.getContentLanguage(); -- make a language object for the local language for i=1, 12 do -- loop 12x and en_months[i] = lang_obj:formatDate('F', '2018-' .. i) -- get month names for each i end for _, lang in ipairs (langs) do -- spin through the languages table lang_obj = mw.getLanguage (lang); -- make a language object for the current language for i, en_month in ipairs (en_months) do -- spin through the English month-names table month_names[lang_obj:formatDate('F', en_month):lower()] = en_month; -- translate the English name to the current language and store in the translations table if 'pl' == lang then -- for polish and other languages that have nominative and genitive forms month_names[lang_obj:formatDate('xg', en_month):lower()] = en_month; -- translate English to genitive form and save end end end return month_names; end --[[--------------------------< E X P O R T E D T A B L E S >------------------------------------------------ ]] return { month_names = month_names_get (), override_names = override_names, patterns = patterns, }