from browser import window TAGS = { "podrocje": ["administracija", "antropologija", "arheologija", "arhitektura", "astrologija", "astronomija", "avtomobilizem", "biblično", "bibliotekarstvo", "biologija", "-- anatomija", "-- biokemija", "-- botanika", "-- paleontologija", "-- zoologija", "ekonomija", "-- industrija", "-- ribištvo", "-- rudarstvo", "-- šolstvo", "-- trgovina", "-- turizem", "-- zdravstvo", "-- metalurgija", "-- živilska industrija", "elektrika", "elektronika", "filozofija", "finance", "fizika", "fotografija", "geografija", "-- ekologija", "-- geologija", "-- geodezija", "-- meteorologija", "-- mineralogija", "-- petrografija", "glasba", "gradbeništvo", "heraldika", "jezikoslovje", "kemija", "kmetijstvo", "-- čebelarstvo", "-- gozdarstvo", "-- poljedelstvo", "-- sadjarstvo", "-- vinogradništvo", "-- vrtnarstvo", "konjeništvo", "kulinarika", "letalstvo", "literarna teorija", "-- književnost", "-- pesništvo", "lovstvo", "matematika", "-- geometrija", "-- statistika", "medicina", "mehanika", "mitologija", "moda", "obrtništvo", "-- čevljarstvo", "-- dimnikarstvo", "-- kamnoseštvo", "-- mizarstvo", "-- optika", "oglaševanje", "politika", "pomorstvo", "pošta", "pravo", "psihologija", "računalništvo", "religija", "sociologija", "šport", "tekstil", "telekomunikacije", "-- radiotelevizija", "-- radio", "-- telefonija", "-- televizija", "tiskarstvo", "transport", "-- cestni promet", "-- tovorni promet", "-- zračni promet", "-- železnica", "umetnost", "uprizoritvene umetnosti", "-- film", "-- gledališče", "-- ples", "-- balet", "veterina", "vojska", "zavarovalništvo", "zgodovina"], "stilne": ["registrske", "-- narečno", "-- sleng", "-- v otroškem govoru", "-- neformalno", "-- formalno", "-- v jeziku mladih", "-- v govoru", "-- v pogovoru", "-- nenevtralno", "-- v splošni rabi", "konotacijske", "-- šaljivo", "-- ironično", "-- vulgarno", "-- slabšalno", "-- žaljivo", "-- grobo", "-- ljubkovalno", "pragmatične", "-- pregovor", "-- kot pozdrav", "-- kot kletvica", "-- kot žaljivka", "-- kot gesta", "-- kot grožnja", "-- kot nagovor", "-- kot nasvet", "-- kot navodilo", "-- kot opozorilo", "časovne", "-- starinsko", "-- nekdaj"], "slovnične": ["v pridevniški rabi", "v primerniku", "v presežniku", "v samostalniški rabi", "v ednini", "v dvojini", "v množini", "števno", "neštevno", "v 3. osebi", "v velelniku", "z veliko začetnico"], "skupne": ["tudi", "predvsem", "običajno", "včasih", "redko"], "latinsko": [], "razmerje": ["približek", "sinonim", "antonim"], "semantično": [], "English-full": [] } SLO2ENG_TAGS = { "podrocje": "domain", "stilne-časovne": "style-time", "stilne-registrske": "style-register", "stilne-konotacijske": "style-connotation", "stilne-pragmatične": "style-pragmatics", "slovnične": "grammar", "skupne": "general", "latinsko": "latin", "razmerje": "relation", "semantično": "semantic", "English-full": "Polno angleško" } ENG2SLO_TAGS = { value: key for key, value in SLO2ENG_TAGS.items() } STYLE_SECTIONS = [("registrske", "register"), ("konotacijske", "connotation"), ("pragmatične", "pragmatics"), ("časovne", "time")] def import_label_list(selector, xml_element): result = [] for tag_xml in xml_element.querySelectorAll(selector): t_type = tag_xml.getAttribute("type") t_value = tag_xml.textContent t_type, t_value = import_tag(t_type, t_value) result.append((t_type, t_value)) return result def import_tag(key, value): # converts tag from input xml to what we need in the editor # if slovene, than some old values apparantly, just import as is # simmilar for "stilne" # if english, than translate and change style-xxx for stilne # for value, just handle if some bad "-- xxx" stuff is in xml if key in SLO2ENG_TAGS: pass elif key in ("stilne", "style"): key = "stilne" elif key in ENG2SLO_TAGS: key = ENG2SLO_TAGS[key] # handle stilne-xxx stuff if "-" in key: key = key.split("-")[0] else: window.console.log("Uknown tag :(", key, value) # using some default key = TAGS.keys()[0] # this should not happen, but maybe there was a bug... value = value.replace("--", "").strip() for tag_key in TAGS.keys(): for possible_value in TAGS[tag_key]: if value == possible_value or "-- " + value == possible_value: return key, possible_value # not found, must be manually inputted return key, value def export_tag(key, value): if key == "stilne": arr = TAGS["stilne"] key = "style" value_idx = arr.index(value) if value_idx >= 0: for sec_slo, sec_eng in reversed(STYLE_SECTIONS): idx = arr.index(sec_slo) if idx < value_idx: key = "style-" + sec_eng break else: key = SLO2ENG_TAGS[key] value = value.replace("--", "").strip() return key, value