You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
lexonomy_custom_editor/src/model/tags.py

101 lines
5.1 KiB

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