Skip to content

Commit 4a18fe2

Browse files
committed
Use aliases in transliteration.
1 parent 796f1a9 commit 4a18fe2

1 file changed

Lines changed: 20 additions & 2 deletions

File tree

scriptshifter/tables/__init__.py

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -594,9 +594,13 @@ def get_language(lang):
594594

595595
def get_lang_general(conn, lang):
596596
""" Language general attributes. """
597+
ref_q = "SELECT id, ref_id FROM tbl_language WHERE name = ?"
598+
ref_data = conn.execute(ref_q, (lang,)).fetchone()
599+
lang_id = ref_data[1] if ref_data[1] else ref_data[0]
600+
597601
lang_q = conn.execute(
598602
"""SELECT id, name, label, features, marc_code, description
599-
FROM tbl_language WHERE name = ?""", (lang,))
603+
FROM tbl_language WHERE id = ?""", (lang_id,))
600604
lang_data = lang_q.fetchone()
601605

602606
if not lang_data:
@@ -605,7 +609,7 @@ def get_lang_general(conn, lang):
605609
return {
606610
"id": lang_data[0],
607611
"data": {
608-
"name": lang_data[1],
612+
"name": lang,
609613
"label": lang_data[2],
610614
"has_s2r": bool(lang_data[3] & FEAT_S2R),
611615
"has_r2s": bool(lang_data[3] & FEAT_R2S),
@@ -617,6 +621,7 @@ def get_lang_general(conn, lang):
617621

618622

619623
def get_lang_normalize(conn, lang_id):
624+
lang_id = _get_ref(conn, lang_id)
620625
qry = conn.execute(
621626
"""SELECT src, dest FROM tbl_normalize
622627
WHERE lang_id = ?""",
@@ -628,6 +633,7 @@ def get_lang_ignore(conn, lang_id):
628633
"""
629634
Ignore list as a tuple.
630635
"""
636+
lang_id = _get_ref(conn, lang_id)
631637
qry = conn.execute(
632638
"""SELECT rule, features FROM tbl_ignore
633639
WHERE lang_id = ?""",
@@ -644,6 +650,7 @@ def get_lang_map(conn, lang_id, t_dir):
644650
645651
Generator of tuples (source, destination).
646652
"""
653+
lang_id = _get_ref(conn, lang_id)
647654
qry = conn.execute(
648655
"""SELECT src, dest FROM tbl_trans_map
649656
WHERE lang_id = ? AND dir = ?
@@ -656,6 +663,7 @@ def get_lang_map(conn, lang_id, t_dir):
656663

657664
def get_lang_options(conn, lang_id):
658665
""" Language options as a tuple of dictionaries. """
666+
lang_id = _get_ref(conn, lang_id)
659667
qry = conn.execute(
660668
"""SELECT name, label, description, dtype, options, default_v
661669
FROM tbl_option
@@ -676,6 +684,7 @@ def get_lang_options(conn, lang_id):
676684

677685

678686
def get_lang_hooks(conn, lang_id, t_dir):
687+
lang_id = _get_ref(conn, lang_id)
679688
""" Language hooks in sorting order. """
680689
hooks = defaultdict(list)
681690

@@ -698,9 +707,18 @@ def get_lang_hooks(conn, lang_id, t_dir):
698707

699708

700709
def get_lang_dcap(conn, lang_id):
710+
lang_id = _get_ref(conn, lang_id)
701711
qry = conn.execute(
702712
"""SELECT rule
703713
FROM tbl_double_cap WHERE lang_id = ?""",
704714
(lang_id,))
705715

706716
return tuple(row[0] for row in qry)
717+
718+
719+
def _get_ref(conn, lang_id):
720+
ref_data = conn.execute(
721+
"""SELECT ref_id FROM tbl_language WHERE id = ?""",
722+
(lang_id,)).fetchone()
723+
724+
return ref_data[0] if ref_data and ref_data[0] else lang_id

0 commit comments

Comments
 (0)