Home
Random
Recent changes
Special pages
Community portal
Preferences
About Stockhub
Disclaimers
Search
User menu
Talk
Contributions
Create account
Log in
Editing
Module:Month translator/data
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
--[[--------------------------< 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', 'da', 'de', 'es', 'fi', 'fr', 'it', 'nb', 'pl', 'pt', 'ru', 'sv', 'tr'}; --[[--------------------------< 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_t = {}; --[[--------------------------< 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?)%. +(%a+) +(%d%d%d%d%a?)$', 'd', 'm', 'y'}, -- dd Mmm yyyy β for Danish {'^(%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_t> (which this function also fills). lang_obj:formatDate() must be given a day in addition to <en_month> else it will use the current day so, if today is 31 August 2021, without the expicit '1' preceding the month from <en_month>, when creating a translation for February, April, June, September, or October lang_obj:formatDate() will return the 'next' month. To dump this table: =mw.dumpObject (p.month_names_t) ]] local function month_names_get () local month_names_t = {}; local lang_obj = mw.language.getContentLanguage(); -- make a language object for the local language for i=1, 12 do -- loop 12x and en_months_t[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_t) do -- spin through the English month-names table local en_date = '1 ' .. en_month; local month_name = mw.ustring.lower (lang_obj:formatDate('F', en_date)); -- translate the English date '1 <en month>' to <month_name>; ustring requred for tr February (Εubat) month_names_t[month_name] = en_month; -- add to translations table; first day of month required -- for pl and other languages that have nominative and genitive forms month_name = mw.ustring.lower (lang_obj:formatDate('xg', en_date)); -- translate the English date '1 <en month>' to <month_name> (genitive form) month_names_t[month_name] = en_month; -- add to translations table; when 'xg' is same as 'F', this overwrites the 'F' month name end end return month_names_t; end --[[--------------------------< E X P O R T E D T A B L E S >------------------------------------------------ ]] return { month_names_t = month_names_get (), override_names = override_names, patterns = patterns, }
Summary:
Please note that all contributions to Stockhub may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Stockhub:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Template used on this page:
Module:Month translator/data/doc
(
edit
)