""" 紫微斗数术语双语对照表 —— 单一真相源。 跟astrologybazi-api的terms.py同一个思路:AI报告/evidence块引用命理术语时统一从这里查, 避免同一颗星这次译一个名字下次译另一个名字。 """ STAR_TERMS = { "紫微": "Zi Wei (Emperor Star)", "天机": "Tian Ji (Advisor Star)", "太阳": "Tai Yang (Sun Star)", "武曲": "Wu Qu (Military Star)", "天同": "Tian Tong (Harmony Star)", "廉贞": "Lian Zhen (Chastity Star)", "天府": "Tian Fu (Treasury Star)", "太阴": "Tai Yin (Moon Star)", "贪狼": "Tan Lang (Greedy Wolf Star)", "巨门": "Ju Men (Giant Gate Star)", "天相": "Tian Xiang (Minister Star)", "天梁": "Tian Liang (Beam Star)", "七杀": "Qi Sha (Seven Killings Star)", "破军": "Po Jun (Army Breaker Star)", "左辅": "Zuo Fu (Left Assistant)", "右弼": "You Bi (Right Assistant)", "文昌": "Wen Chang (Literary Star)", "文曲": "Wen Qu (Artistic Star)", "天魁": "Tian Kui (Noble Star, Yang)", "天钺": "Tian Yue (Noble Star, Yin)", } PALACE_TERMS = { "命宫": "Life Palace (Ming Gong)", "兄弟": "Siblings Palace (Xiong Di)", "夫妻": "Spouse Palace (Fu Qi)", "子女": "Children Palace (Zi Nu)", "财帛": "Wealth Palace (Cai Bo)", "疾厄": "Health Palace (Ji E)", "迁移": "Travel Palace (Qian Yi)", "仆役": "Friends Palace (Pu Yi)", "官禄": "Career Palace (Guan Lu)", "田宅": "Property Palace (Tian Zhai)", "福德": "Fortune Palace (Fu De)", "父母": "Parents Palace (Fu Mu)", } BRIGHTNESS_TERMS = { "庙": "temple-bright, strongest (Miao)", "旺": "prosperous, strong (Wang)", "得": "gaining, above average (De)", "利": "favorable, average-plus (Li)", "平": "level, average (Ping)", "不": "weak, below average (Bu)", "陷": "trapped, weakest (Xian)", } MUTAGEN_TERMS = { "禄": "Transformation of Wealth (Hua Lu)", "权": "Transformation of Power (Hua Quan)", "科": "Transformation of Fame (Hua Ke)", "忌": "Transformation of Obstruction (Hua Ji)", } def star_term(name: str) -> str: return f"{name} ({STAR_TERMS[name]})" if name in STAR_TERMS else name def palace_term(name: str) -> str: return f"{name} ({PALACE_TERMS[name]})" if name in PALACE_TERMS else name def brightness_term(level: str) -> str: return f"{level} ({BRIGHTNESS_TERMS[level]})" if level in BRIGHTNESS_TERMS else level def mutagen_term(mutagen: str) -> str: return f"Hua {mutagen} ({MUTAGEN_TERMS[mutagen]})" if mutagen in MUTAGEN_TERMS else mutagen def star_with_brightness(name: str, brightness: str) -> str: if brightness: return f"{star_term(name)} [{brightness_term(brightness)}]" return star_term(name)