lunar-typescript-optimize
Version:
A TypeScript library for Solar and Chinese Lunar calendar calculations, with optimized build and browser compatibility
931 lines (930 loc) • 26.3 kB
JavaScript
import { LunarUtil } from "./LunarUtil.mjs";
import { SolarUtil } from "./SolarUtil.mjs";
import { TaoUtil } from "./TaoUtil.mjs";
import { FotoUtil } from "./FotoUtil.mjs";
import { NineStarUtil } from "./NineStarUtil.mjs";
export class I18n {
static _DEFAULT_LANG = "chs";
static _LANG;
static _INIT = false;
static _MESSAGES = {
"chs": {
"wx.jin": "\u91D1",
"wx.mu": "\u6728",
"wx.shui": "\u6C34",
"wx.huo": "\u706B",
"wx.tu": "\u571F",
"wx.ri": "\u65E5",
"wx.yue": "\u6708",
"n.zero": "\u3007",
"n.one": "\u4E00",
"n.two": "\u4E8C",
"n.three": "\u4E09",
"n.four": "\u56DB",
"n.five": "\u4E94",
"n.six": "\u516D",
"n.seven": "\u4E03",
"n.eight": "\u516B",
"n.nine": "\u4E5D",
"n.ten": "\u5341",
"n.eleven": "\u5341\u4E00",
"n.twelve": "\u5341\u4E8C",
"d.one": "\u521D\u4E00",
"d.two": "\u521D\u4E8C",
"d.three": "\u521D\u4E09",
"d.four": "\u521D\u56DB",
"d.five": "\u521D\u4E94",
"d.six": "\u521D\u516D",
"d.seven": "\u521D\u4E03",
"d.eight": "\u521D\u516B",
"d.nine": "\u521D\u4E5D",
"d.ten": "\u521D\u5341",
"d.eleven": "\u5341\u4E00",
"d.twelve": "\u5341\u4E8C",
"d.thirteen": "\u5341\u4E09",
"d.fourteen": "\u5341\u56DB",
"d.fifteen": "\u5341\u4E94",
"d.sixteen": "\u5341\u516D",
"d.seventeen": "\u5341\u4E03",
"d.eighteen": "\u5341\u516B",
"d.nighteen": "\u5341\u4E5D",
"d.twenty": "\u4E8C\u5341",
"d.twentyOne": "\u5EFF\u4E00",
"d.twentyTwo": "\u5EFF\u4E8C",
"d.twentyThree": "\u5EFF\u4E09",
"d.twentyFour": "\u5EFF\u56DB",
"d.twentyFive": "\u5EFF\u4E94",
"d.twentySix": "\u5EFF\u516D",
"d.twentySeven": "\u5EFF\u4E03",
"d.twentyEight": "\u5EFF\u516B",
"d.twentyNine": "\u5EFF\u4E5D",
"d.thirty": "\u4E09\u5341",
"m.one": "\u6B63",
"m.two": "\u4E8C",
"m.three": "\u4E09",
"m.four": "\u56DB",
"m.five": "\u4E94",
"m.six": "\u516D",
"m.seven": "\u4E03",
"m.eight": "\u516B",
"m.nine": "\u4E5D",
"m.ten": "\u5341",
"m.eleven": "\u51AC",
"m.twelve": "\u814A",
"w.sun": "\u65E5",
"w.mon": "\u4E00",
"w.tues": "\u4E8C",
"w.wed": "\u4E09",
"w.thur": "\u56DB",
"w.fri": "\u4E94",
"w.sat": "\u516D",
"ps.dong": "\u4E1C",
"ps.nan": "\u5357",
"ps.xi": "\u897F",
"ps.bei": "\u5317",
"ps.zhengDong": "\u6B63\u4E1C",
"ps.zhengNan": "\u6B63\u5357",
"ps.zhengXi": "\u6B63\u897F",
"ps.zhengBei": "\u6B63\u5317",
"ps.dongBei": "\u4E1C\u5317",
"ps.dongNan": "\u4E1C\u5357",
"ps.xiBei": "\u897F\u5317",
"ps.xiNan": "\u897F\u5357",
"jq.dongZhi": "\u51AC\u81F3",
"jq.xiaoHan": "\u5C0F\u5BD2",
"jq.daHan": "\u5927\u5BD2",
"jq.liChun": "\u7ACB\u6625",
"jq.yuShui": "\u96E8\u6C34",
"jq.jingZhe": "\u60CA\u86F0",
"jq.chunFen": "\u6625\u5206",
"jq.qingMing": "\u6E05\u660E",
"jq.guYu": "\u8C37\u96E8",
"jq.liXia": "\u7ACB\u590F",
"jq.xiaoMan": "\u5C0F\u6EE1",
"jq.mangZhong": "\u8292\u79CD",
"jq.xiaZhi": "\u590F\u81F3",
"jq.xiaoShu": "\u5C0F\u6691",
"jq.daShu": "\u5927\u6691",
"jq.liQiu": "\u7ACB\u79CB",
"jq.chuShu": "\u5904\u6691",
"jq.baiLu": "\u767D\u9732",
"jq.qiuFen": "\u79CB\u5206",
"jq.hanLu": "\u5BD2\u9732",
"jq.shuangJiang": "\u971C\u964D",
"jq.liDong": "\u7ACB\u51AC",
"jq.xiaoXue": "\u5C0F\u96EA",
"jq.daXue": "\u5927\u96EA",
"s.goodLuck": "\u5409",
"s.badLuck": "\u51F6",
"s.yin": "\u9634",
"s.yang": "\u9633",
"s.white": "\u767D",
"s.black": "\u9ED1",
"s.blue": "\u78A7",
"s.green": "\u7EFF",
"s.yellow": "\u9EC4",
"s.red": "\u8D64",
"s.purple": "\u7D2B",
"jr.chuXi": "\u9664\u5915",
"jr.chunJie": "\u6625\u8282",
"jr.yuanXiao": "\u5143\u5BB5\u8282",
"jr.longTou": "\u9F99\u5934\u8282",
"jr.duanWu": "\u7AEF\u5348\u8282",
"jr.qiXi": "\u4E03\u5915\u8282",
"jr.zhongQiu": "\u4E2D\u79CB\u8282",
"jr.chongYang": "\u91CD\u9633\u8282",
"jr.laBa": "\u814A\u516B\u8282",
"jr.yuanDan": "\u5143\u65E6\u8282",
"jr.qingRen": "\u60C5\u4EBA\u8282",
"jr.fuNv": "\u5987\u5973\u8282",
"jr.zhiShu": "\u690D\u6811\u8282",
"jr.xiaoFei": "\u6D88\u8D39\u8005\u6743\u76CA\u65E5",
"jr.wuYi": "\u52B3\u52A8\u8282",
"jr.qingNian": "\u9752\u5E74\u8282",
"jr.erTong": "\u513F\u7AE5\u8282",
"jr.yuRen": "\u611A\u4EBA\u8282",
"jr.jianDang": "\u5EFA\u515A\u8282",
"jr.jianJun": "\u5EFA\u519B\u8282",
"jr.jiaoShi": "\u6559\u5E08\u8282",
"jr.guoQing": "\u56FD\u5E86\u8282",
"jr.wanShengYe": "\u4E07\u5723\u8282\u524D\u591C",
"jr.wanSheng": "\u4E07\u5723\u8282",
"jr.pingAn": "\u5E73\u5B89\u591C",
"jr.shengDan": "\u5723\u8BDE\u8282"
},
"en": {
"tg.jia": "Jia",
"tg.yi": "Yi",
"tg.bing": "Bing",
"tg.ding": "Ding",
"tg.wu": "Wu",
"tg.ji": "Ji",
"tg.geng": "Geng",
"tg.xin": "Xin",
"tg.ren": "Ren",
"tg.gui": "Gui",
"dz.zi": "Zi",
"dz.chou": "Chou",
"dz.yin": "Yin",
"dz.mao": "Mao",
"dz.chen": "Chen",
"dz.si": "Si",
"dz.wu": "Wu",
"dz.wei": "Wei",
"dz.shen": "Shen",
"dz.you": "You",
"dz.xu": "Xu",
"dz.hai": "Hai",
"zx.jian": "Build",
"zx.chu": "Remove",
"zx.man": "Full",
"zx.ping": "Flat",
"zx.ding": "Stable",
"zx.zhi": "Hold",
"zx.po": "Break",
"zx.wei": "Danger",
"zx.cheng": "Complete",
"zx.shou": "Collect",
"zx.kai": "Open",
"zx.bi": "Close",
"jz.jiaZi": "JiaZi",
"jz.yiChou": "YiChou",
"jz.bingYin": "BingYin",
"jz.dingMao": "DingMao",
"jz.wuChen": "WuChen",
"jz.jiSi": "JiSi",
"jz.gengWu": "GengWu",
"jz.xinWei": "XinWei",
"jz.renShen": "RenShen",
"jz.guiYou": "GuiYou",
"jz.jiaXu": "JiaXu",
"jz.yiHai": "YiHai",
"jz.bingZi": "BingZi",
"jz.dingChou": "DingChou",
"jz.wuYin": "WuYin",
"jz.jiMao": "JiMao",
"jz.gengChen": "GengChen",
"jz.xinSi": "XinSi",
"jz.renWu": "RenWu",
"jz.guiWei": "GuiWei",
"jz.jiaShen": "JiaShen",
"jz.yiYou": "YiYou",
"jz.bingXu": "BingXu",
"jz.dingHai": "DingHai",
"jz.wuZi": "WuZi",
"jz.jiChou": "JiChou",
"jz.gengYin": "GengYin",
"jz.xinMao": "XinMao",
"jz.renChen": "RenChen",
"jz.guiSi": "GuiSi",
"jz.jiaWu": "JiaWu",
"jz.yiWei": "YiWei",
"jz.bingShen": "BingShen",
"jz.dingYou": "DingYou",
"jz.wuXu": "WuXu",
"jz.jiHai": "JiHai",
"jz.gengZi": "GengZi",
"jz.xinChou": "XinChou",
"jz.renYin": "RenYin",
"jz.guiMao": "GuiMao",
"jz.jiaChen": "JiaChen",
"jz.yiSi": "YiSi",
"jz.bingWu": "BingWu",
"jz.dingWei": "DingWei",
"jz.wuShen": "WuShen",
"jz.jiYou": "JiYou",
"jz.gengXu": "GengXu",
"jz.xinHai": "XinHai",
"jz.renZi": "RenZi",
"jz.guiChou": "GuiChou",
"jz.jiaYin": "JiaYin",
"jz.yiMao": "YiMao",
"jz.bingChen": "BingChen",
"jz.dingSi": "DingSi",
"jz.wuWu": "WuWu",
"jz.jiWei": "JiWei",
"jz.gengShen": "GengShen",
"jz.xinYou": "XinYou",
"jz.renXu": "RenXu",
"jz.guiHai": "GuiHai",
"sx.rat": "Rat",
"sx.ox": "Ox",
"sx.tiger": "Tiger",
"sx.rabbit": "Rabbit",
"sx.dragon": "Dragon",
"sx.snake": "Snake",
"sx.horse": "Horse",
"sx.goat": "Goat",
"sx.monkey": "Monkey",
"sx.rooster": "Rooster",
"sx.dog": "Dog",
"sx.pig": "Pig",
"dw.long": "Dragon",
"dw.niu": "Ox",
"dw.gou": "Dog",
"dw.yang": "Goat",
"dw.tu": "Rabbit",
"dw.shu": "Rat",
"dw.ji": "Rooster",
"dw.ma": "Horse",
"dw.hu": "Tiger",
"dw.zhu": "Pig",
"dw.hou": "Monkey",
"dw.she": "Snake",
"dw.huLi": "Fox",
"dw.yan": "Swallow",
"dw.bao": "Leopard",
"dw.yuan": "Ape",
"dw.yin": "Earthworm",
"dw.lu": "Deer",
"dw.wu": "Crow",
"dw.lang": "Wolf",
"dw.fu": "Bat",
"wx.jin": "Metal",
"wx.mu": "Wood",
"wx.shui": "Water",
"wx.huo": "Fire",
"wx.tu": "Earth",
"wx.ri": "Sun",
"wx.yue": "Moon",
"n.zero": "0",
"n.one": "1",
"n.two": "2",
"n.three": "3",
"n.four": "4",
"n.five": "5",
"n.six": "6",
"n.seven": "7",
"n.eight": "8",
"n.nine": "9",
"n.ten": "10",
"n.eleven": "11",
"n.twelve": "12",
"w.sun": "Sunday",
"w.mon": "Monday",
"w.tues": "Tuesday",
"w.wed": "Wednesday",
"w.thur": "Thursday",
"w.fri": "Friday",
"w.sat": "Saturday",
"xz.aries": "Aries",
"xz.taurus": "Taurus",
"xz.gemini": "Gemini",
"xz.cancer": "Cancer",
"xz.leo": "Leo",
"xz.virgo": "Virgo",
"xz.libra": "Libra",
"xz.scorpio": "Scorpio",
"xz.sagittarius": "Sagittarius",
"xz.capricornus": "Capricornus",
"xz.aquarius": "Aquarius",
"xz.pisces": "Pisces",
"bg.qian": "Qian",
"bg.kun": "Kun",
"bg.zhen": "Zhen",
"bg.xun": "Xun",
"bg.kan": "Kan",
"bg.li": "Li",
"bg.gen": "Gen",
"bg.dui": "Dui",
"ps.center": "Center",
"ps.dong": "East",
"ps.nan": "South",
"ps.xi": "West",
"ps.bei": "North",
"ps.zhong": "Center",
"ps.zhengDong": "East",
"ps.zhengNan": "South",
"ps.zhengXi": "West",
"ps.zhengBei": "North",
"ps.dongBei": "Northeast",
"ps.dongNan": "Southeast",
"ps.xiBei": "Northwest",
"ps.xiNan": "Southwest",
"jq.dongZhi": "Winter Solstice",
"jq.xiaoHan": "Lesser Cold",
"jq.daHan": "Great Cold",
"jq.liChun": "Spring Beginning",
"jq.yuShui": "Rain Water",
"jq.jingZhe": "Awakening from Hibernation",
"jq.chunFen": "Spring Equinox",
"jq.qingMing": "Fresh Green",
"jq.guYu": "Grain Rain",
"jq.liXia": "Beginning of Summer",
"jq.xiaoMan": "Lesser Fullness",
"jq.mangZhong": "Grain in Ear",
"jq.xiaZhi": "Summer Solstice",
"jq.xiaoShu": "Lesser Heat",
"jq.daShu": "Greater Heat",
"jq.liQiu": "Beginning of Autumn",
"jq.chuShu": "End of Heat",
"jq.baiLu": "White Dew",
"jq.qiuFen": "Autumnal Equinox",
"jq.hanLu": "Cold Dew",
"jq.shuangJiang": "First Frost",
"jq.liDong": "Beginning of Winter",
"jq.xiaoXue": "Light Snow",
"jq.daXue": "Heavy Snow",
"sn.qingLong": "Azure Dragon",
"sn.baiHu": "White Tiger",
"sn.zhuQue": "Rosefinch",
"sn.xuanWu": "Black Tortoise",
"sn.tianEn": "Serene Grace",
"sn.siShen": "Death",
"sn.tianMa": "Pegasus",
"sn.baLong": "Eight Dragon",
"sn.jiuHu": "Nine Tiger",
"sn.qiNiao": "Seven Bird",
"sn.liuShe": "Six Snake",
"s.none": "None",
"s.goodLuck": "Good luck",
"s.badLuck": "Bad luck",
"s.yin": "Yin",
"s.yang": "Yang",
"s.white": "White",
"s.black": "Black",
"s.blue": "Blue",
"s.green": "Green",
"s.yellow": "Yellow",
"s.red": "Red",
"s.purple": "Purple",
"jr.chuXi": "Chinese New Year's Eve",
"jr.chunJie": "Luna New Year",
"jr.yuanXiao": "Lantern Festival",
"jr.duanWu": "Dragon Boat Festival",
"jr.qiXi": "Begging Festival",
"jr.zhongQiu": "Mid-Autumn Festival",
"jr.laBa": "Laba Festival",
"jr.yuanDan": "New Year's Day",
"jr.qingRen": "Valentine's Day",
"jr.fuNv": "Women's Day",
"jr.xiaoFei": "Consumer Rights Day",
"jr.zhiShu": "Arbor Day",
"jr.wuYi": "International Worker's Day",
"jr.erTong": "Children's Day",
"jr.qingNian": "Youth Day",
"jr.yuRen": "April Fools' Day",
"jr.jianDang": "Party's Day",
"jr.jianJun": "Army Day",
"jr.jiaoShi": "Teachers' Day",
"jr.guoQing": "National Day",
"jr.wanShengYe": "All Saints' Eve",
"jr.wanSheng": "All Saints' Day",
"jr.pingAn": "Christmas Eve",
"jr.shengDan": "Christmas Day",
"ts.zhan": "At",
"ts.hu": "Household",
"ts.zao": "Cooker",
"ts.dui": "Pestle",
"ts.xi": "Habitat",
"ts.win": "Window",
"ts.fang": "Room",
"ts.chuang": "Bed",
"ts.lu": "Stove",
"ts.mo": "Mill",
"ts.chu": "Kitchen",
"ts.ce": "Toilet",
"ts.cang": "Depot",
"ts.cangKu": "Depot",
"ts.daMen": "Gate",
"ts.men": "Door",
"ts.tang": "Hall",
"ly.xianSheng": "Win first",
"ly.xianFu": "Lose first",
"ly.youYin": "Friend's referral",
"ly.foMie": "Buddhism's demise",
"ly.daAn": "Great safety",
"ly.chiKou": "Chikagoro",
"yj.jiSi": "Sacrifice",
"yj.qiFu": "Pray",
"yj.qiuSi": "Seek heirs",
"yj.kaiGuang": "Consecretion",
"yj.suHui": "Paint sculptural",
"yj.qiJiao": "Build altar",
"yj.zhaiJiao": "Taoist rites",
"yj.muYu": "Bathing",
"yj.chouShen": "Reward gods",
"yj.zaoMiao": "Build temple",
"yj.siZhao": "Offer kitchen god",
"yj.fenXiang": "Burn incense",
"yj.xieTu": "Earth gratitude",
"yj.chuHuo": "Expel the flame",
"yj.diaoKe": "Carving",
"yj.jiaQu": "Marriage",
"yj.DingHun": "Engagement",
"yj.naCai": "Proposing",
"yj.wenMing": "Ask name",
"yj.naXu": "Uxorilocal marriage",
"yj.guiNing": "Visit parents",
"yj.anChuang": "Bed placing",
"yj.heZhang": "Make up accounts",
"yj.guanJi": "Crowning adulthood",
"yj.dingMeng": "Make alliance",
"yj.jinRenKou": "Adopt",
"yj.caiYi": "Dressmaking",
"yj.wanMian": "Cosmeticsurgery",
"yj.kaiRong": "Open face",
"yj.xiuFen": "Grave repair",
"yj.qiZuan": "Open coffin",
"yj.poTu": "Break earth",
"yj.anZang": "Burial",
"yj.liBei": "Tombstone erecting",
"yj.chengFu": "Formation of clothes",
"yj.chuFu": "Mourning clothes removal",
"yj.kaiShengFen": "Open grave",
"yj.heShouMu": "Make coffin",
"yj.ruLian": "Body placing",
"yj.yiJiu": "Move coffin",
"yj.puDu": "Save soul",
"yj.ruZhai": "Enter house",
"yj.anXiang": "Incenst placement",
"yj.anMen": "Door placing",
"yj.xiuZao": "Repair",
"yj.qiJi": "Digging",
"yj.dongTu": "Break ground",
"yj.shangLiang": "Beam placing",
"yj.shuZhu": "Erecting pillars",
"yj.kaiJing": "Open pond and well",
"yj.zuoBei": "Make pond and fill water",
"yj.chaiXie": "Smash house",
"yj.poWu": "Break house",
"yj.huaiYuan": "Demolish",
"yj.buYuan": "Mending",
"yj.faMuZuoLiang": "Make beams",
"yj.zuoZhao": "Make stove",
"yj.jieChu": "Removal",
"yj.kaiZhuYan": "Build beam",
"yj.chuanPing": "Build door",
"yj.gaiWuHeJi": "Cover house",
"yj.kaiCe": "Open toilet",
"yj.zaoCang": "Build depot",
"yj.saiXue": "Block nest",
"yj.pingZhi": "Repair roads",
"yj.zaoQiao": "Build bridge",
"yj.zuoCe": "Build toilet",
"yj.zhuDi": "Fill",
"yj.kaiChi": "Open pond",
"yj.faMu": "Lumbering",
"yj.kaiQu": "Canalization",
"yj.jueJing": "Dig well",
"yj.saoShe": "Sweep house",
"yj.fangShui": "Drainage",
"yj.zaoWu": "Build house",
"yj.heJi": "Close ridge",
"yj.zaoChuChou": "Livestock thickening",
"yj.xiuMen": "Repair door",
"yj.dingSang": "Fix stone",
"yj.zuoLiang": "Beam construction",
"yj.xiuShi": "Decorate wall",
"yj.jiaMa": "Erect horse",
"yj.kaiShi": "Opening",
"yj.guaBian": "Hang plaque",
"yj.naChai": "Accept wealth",
"yj.qiuCai": "Seek wealth",
"yj.kaiCang": "Open depot",
"yj.maiChe": "Buy car",
"yj.zhiChan": "Buy property",
"yj.guYong": "Hire",
"yj.chuHuoCai": "Delivery",
"yj.anJiXie": "Build machine",
"yj.zaoCheQi": "Build car",
"yj.jingLuo": "Build loom",
"yj.yunNiang": "Brew",
"yj.zuoRan": "Dye",
"yj.guZhu": "Cast",
"yj.zaoChuan": "Build boat",
"yj.geMi": "Harvest honey",
"yj.zaiZhong": "Farming",
"yj.quYu": "Fishing",
"yj.jieWang": "Netting",
"yj.muYang": "Graze",
"yj.anDuiWei": "Build rub",
"yj.xiYi": "Learn",
"yj.ruXue": "Enter school",
"yj.liFa": "Haircut",
"yj.tanBing": "Visiting",
"yj.jianGui": "Meet noble",
"yj.chengChuan": "Ride boat",
"yj.duShui": "Cross water",
"yj.zhenJiu": "Acupuncture",
"yj.chuXing": "Travel",
"yj.yiXi": "Move",
"yj.fenJu": "Live apart",
"yj.TiTou": "Shave",
"yj.zhengShou": "Manicure",
"yj.naChu": "Feed livestock",
"yj.buZhuo": "Catch",
"yj.tianLie": "Hunt",
"yj.jiaoNiuMa": "Train horse",
"yj.huiQinYou": "Meet friends",
"yj.fuRen": "Go post",
"yj.qiuYi": "See doctor",
"yj.zhiBing": "Treat",
"yj.ciSong": "Litigation",
"yj.qiJiDongTu": "Lay foundation",
"yj.poWuHuaiYuan": "Demolish",
"yj.gaiWu": "Build house",
"yj.zaoCangKu": "Build depot",
"yj.liQuanJiaoYi": "Covenant trade",
"yj.jiaoYi": "Trade",
"yj.liQuan": "Covenant",
"yj.anJi": "Install machine",
"yj.huiYou": "Meet friends",
"yj.qiuYiLiaoBing": "Seek treatment",
"yj.zhuShi": "Everything Sucks",
"yj.yuShi": "Do nothing else",
"yj.xingSang": "Funeral",
"yj.duanYi": "Block ant hole",
"yj.guiXiu": "Place beam",
"xx.bi": "Finish",
"xx.yi": "Wing",
"xx.ji": "Sieve",
"xx.kui": "Qui",
"xx.gui": "Ghost",
"xx.di": "Foundation",
"xx.xu": "Virtual",
"xx.wei": "Danger",
"xx.zi": "Mouth",
"xx.zhen": "Cross-bar",
"xx.dou": "Fight",
"xx.lou": "Weak",
"xx.liu": "Willow",
"xx.fang": "House",
"xx.xin": "Heart",
"xx.shi": "Room",
"xx.can": "Join",
"xx.jiao": "Horn",
"xx.niu": "Ox",
"xx.vei": "Stomach",
"xx.xing": "Star",
"xx.zhang": "Chang",
"xx.tail": "Tail",
"xx.qiang": "Wall",
"xx.jing": "Well",
"xx.kang": "Kang",
"xx.nv": "Female",
"xx.mao": "Mao",
"sz.chun": "Spring",
"sz.xia": "Summer",
"sz.qiu": "Autumn",
"sz.dong": "Winter",
"yx.shuo": "New",
"yx.eMeiXin": "New waxing",
"yx.eMei": "Waxing",
"yx.xi": "Evening",
"yx.shangXian": "First quarter",
"yx.jiuYe": "Nine night",
"yx.night": "Night",
"yx.jianYingTu": "Gibbous",
"yx.xiaoWang": "Little full",
"yx.wang": "Full",
"yx.jianKuiTu": "Disseminating",
"yx.xiaXian": "Third quarter",
"yx.eMeiCan": "Waning waxing",
"yx.can": "Waning",
"yx.xiao": "Daybreak",
"yx.hui": "Obscure",
"ny.sangZhe": "Cudrania",
"ny.baiLa": "Wax",
"ny.yangLiu": "Willow",
"ny.jinBo": "Foil",
"ny.haiZhong": "Sea",
"ny.daHai": "Ocean",
"ny.shaZhong": "Sand",
"ny.luZhong": "Stove",
"ny.shanXia": "Piedmont",
"ny.daLin": "Forest",
"ny.pingDi": "Land",
"ny.luPang": "Roadside",
"ny.biShang": "Wall",
"ny.jianFeng": "Blade",
"ny.shanTou": "Hilltop",
"ny.fuDeng": "Light",
"ny.jianXia": "Valleyn",
"ny.tianHe": "River",
"ny.chengTou": "City",
"ny.daYi": "Post",
"ny.chaiChuan": "Ornaments",
"ny.quanZhong": "Spring",
"ny.daXi": "Stream",
"ny.wuShang": "Roof",
"ny.piLi": "Thunderbolt",
"ny.tianShang": "Sky",
"ny.songBo": "Coniferin",
"ny.shiLiu": "Pomegranate",
"ny.changLiu": "Flows"
}
};
static _OBJS = {
"LunarUtil": LunarUtil,
"SolarUtil": SolarUtil,
"TaoUtil": TaoUtil,
"FotoUtil": FotoUtil,
"NineStarUtil": NineStarUtil
};
static _DICT_STRING = {
"LunarUtil": {
"TIAN_SHEN_TYPE": {},
"TIAN_SHEN_TYPE_LUCK": {},
"XIU_LUCK": {},
"LU": {},
"XIU": {},
"SHA": {},
"POSITION_DESC": {},
"NAYIN": {},
"WU_XING_GAN": {},
"WU_XING_ZHI": {},
"SHOU": {},
"GONG": {},
"FESTIVAL": {},
"ZHENG": {},
"ANIMAL": {},
"SHI_SHEN": {},
"XIU_SONG": {}
},
"SolarUtil": {
"FESTIVAL": {}
},
"TaoUtil": {
"BA_HUI": {},
"BA_JIE": {}
}
};
static _DICT_NUMBER = {
"LunarUtil": {
"ZHI_TIAN_SHEN_OFFSET": {},
"CHANG_SHENG_OFFSET": {}
}
};
static _DICT_ARRAY = {
"LunarUtil": {
"ZHI_HIDE_GAN": {}
}
};
static _ARRAYS = {
"LunarUtil": {
"GAN": [],
"ZHI": [],
"JIA_ZI": [],
"ZHI_XING": [],
"XUN": [],
"XUN_KONG": [],
"CHONG": [],
"CHONG_GAN": [],
"CHONG_GAN_TIE": [],
"HE_GAN_5": [],
"HE_ZHI_6": [],
"SHENGXIAO": [],
"NUMBER": [],
"POSITION_XI": [],
"POSITION_YANG_GUI": [],
"POSITION_YIN_GUI": [],
"POSITION_FU": [],
"POSITION_FU_2": [],
"POSITION_CAI": [],
"POSITION_TAI_SUI_YEAR": [],
"POSITION_GAN": [],
"POSITION_ZHI": [],
"JIE_QI": [],
"JIE_QI_IN_USE": [],
"TIAN_SHEN": [],
"SHEN_SHA": [],
"PENGZU_GAN": [],
"PENGZU_ZHI": [],
"MONTH_ZHI": [],
"CHANG_SHENG": [],
"HOU": [],
"WU_HOU": [],
"POSITION_TAI_DAY": [],
"POSITION_TAI_MONTH": [],
"YI_JI": [],
"LIU_YAO": [],
"MONTH": [],
"SEASON": [],
"DAY": [],
"YUE_XIANG": []
},
"SolarUtil": {
"WEEK": [],
"XINGZUO": []
},
"TaoUtil": {
"AN_WU": []
},
"FotoUtil": {
"XIU_27": []
},
"NineStarUtil": {
"NUMBER": [],
"WU_XING": [],
"POSITION": [],
"LUCK_XUAN_KONG": [],
"YIN_YANG_QI_MEN": [],
"COLOR": []
}
};
static updateArray(c) {
const v = I18n._ARRAYS[c];
const o = I18n._OBJS[c];
for (let k in v) {
const arr = v[k];
for (let i = 0, j = arr.length; i < j; i++) {
o[k][i] = arr[i].replace(/{(.[^}]*)}/g, ($0, $1) => {
return I18n.getMessage($1);
});
}
}
}
static updateStringDictionary(c) {
const v = I18n._DICT_STRING[c];
const o = I18n._OBJS[c];
for (let k in v) {
const dict = v[k];
for (let key in dict) {
const i = key.replace(/{(.[^}]*)}/g, ($0, $1) => {
return I18n.getMessage($1);
});
o[k][i] = dict[key].replace(/{(.[^}]*)}/g, ($0, $1) => {
return I18n.getMessage($1);
});
}
}
}
static updateNumberDictionary(c) {
const v = I18n._DICT_NUMBER[c];
const o = I18n._OBJS[c];
for (let k in v) {
const dict = v[k];
for (let key in dict) {
const i = key.replace(/{(.[^}]*)}/g, ($0, $1) => {
return I18n.getMessage($1);
});
o[k][i] = dict[key];
}
}
}
static updateArrayDictionary(c) {
const v = I18n._DICT_ARRAY[c];
const o = I18n._OBJS[c];
for (let k in v) {
const dict = v[k];
for (let key in dict) {
const x = key.replace(/{(.[^}]*)}/g, ($0, $1) => {
return I18n.getMessage($1);
});
const arr = dict[key];
for (let i = 0, j = arr.length; i < j; i++) {
arr[i] = arr[i].replace(/{(.[^}]*)}/g, ($0, $1) => {
return I18n.getMessage($1);
});
}
o[k][x] = arr;
}
}
}
static update() {
for (let c in I18n._ARRAYS) {
I18n.updateArray(c);
}
for (let c in I18n._DICT_STRING) {
I18n.updateStringDictionary(c);
}
for (let c in I18n._DICT_NUMBER) {
I18n.updateNumberDictionary(c);
}
for (let c in I18n._DICT_ARRAY) {
I18n.updateArrayDictionary(c);
}
}
static setMessages(lang, messages) {
if (!messages) {
return;
}
if (!I18n._MESSAGES[lang]) {
I18n._MESSAGES[lang] = {};
}
for (const key in messages) {
I18n._MESSAGES[lang][key] = messages[key];
}
I18n.update();
}
static getMessage(key) {
let s = I18n._MESSAGES[I18n._LANG][key];
if (void 0 == s) {
s = I18n._MESSAGES[I18n._DEFAULT_LANG][key];
}
if (void 0 == s) {
s = key;
}
return s;
}
static setLanguage(lang) {
if (I18n._MESSAGES[lang]) {
I18n._LANG = lang;
I18n.update();
}
}
static getLanguage() {
return I18n._LANG;
}
static initArray(c) {
const v = I18n._ARRAYS[c];
const o = I18n._OBJS[c];
for (let k in v) {
v[k].length = 0;
const arr = o[k];
for (let i = 0, j = arr.length; i < j; i++) {
v[k].push(arr[i]);
}
}
}
static initArrayDictionary(c) {
const v = I18n._DICT_ARRAY[c];
const o = I18n._OBJS[c];
for (let k in v) {
const dict = o[k];
for (let key in dict) {
v[k][key] = dict[key];
}
}
}
static initStringDictionary(c) {
const v = I18n._DICT_STRING[c];
const o = I18n._OBJS[c];
for (let k in v) {
const dict = o[k];
for (let key in dict) {
v[k][key] = dict[key];
}
}
}
static initNumberDictionary(c) {
const v = I18n._DICT_NUMBER[c];
const o = I18n._OBJS[c];
for (let k in v) {
const dict = o[k];
for (let key in dict) {
v[k][key] = dict[key];
}
}
}
static init() {
if (I18n._INIT) {
return;
}
I18n._INIT = true;
for (let c in I18n._ARRAYS) {
I18n.initArray(c);
}
for (let c in I18n._DICT_STRING) {
I18n.initStringDictionary(c);
}
for (let c in I18n._DICT_NUMBER) {
I18n.initNumberDictionary(c);
}
for (let c in I18n._DICT_ARRAY) {
I18n.initArrayDictionary(c);
}
I18n.setLanguage(I18n._DEFAULT_LANG);
}
}