From 72747015ede30ecc5dc678f1cdd9162cbb6aa697 Mon Sep 17 00:00:00 2001 From: Aadhavan Srinivasan Date: Thu, 6 Mar 2025 21:21:21 -0500 Subject: [PATCH] Check if romanizations already exist in database; transliterate the whole sentence instead of just one word --- updateTranslations.js | 2 +- xlit_server.py | 31 ++++++++++++++++++++++++++++--- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/updateTranslations.js b/updateTranslations.js index 1f424f2..105696d 100644 --- a/updateTranslations.js +++ b/updateTranslations.js @@ -20,7 +20,7 @@ function updateTranslations(response) { const romanizations = data; document.querySelectorAll(".romanizationText").forEach(element => { if (element.id.replace("Romanization", "") in romanizations) { - element.textContent = "(" + romanizations[element.id.replace("Romanization", "")][0] + ")"; + element.textContent = "(" + romanizations[element.id.replace("Romanization", "")] + ")"; } }); }); diff --git a/xlit_server.py b/xlit_server.py index d599c30..63655bf 100644 --- a/xlit_server.py +++ b/xlit_server.py @@ -21,6 +21,7 @@ from uuid import uuid4 from datetime import datetime import traceback import enum +import sqlite3 from .utils import LANG_CODE_TO_DISPLAY_NAME, RTL_LANG_CODES, LANG_CODE_TO_SCRIPT_CODE @@ -127,7 +128,7 @@ def reverse_xlit_api(lang_code, word): try: ## Limit char count to --> 70 - xlit_result = ENGINE["indic2en"].translit_word(word[:70], lang_code, topk=num_suggestions) + xlit_result = ENGINE["indic2en"].translit_sentence(word, lang_code) except Exception as e: xlit_result = XlitError.internal_err @@ -203,7 +204,7 @@ def romanizeHandler(): "kn": "kn", "mai": "mai", "ml": "ml", - "mni_mtei": "mni", + "mni-Mtei": "mni", "mr": "mr", "ne": "ne", "or": "or", @@ -216,6 +217,26 @@ def romanizeHandler(): rtv = dict() data = request.get_json(force=True) + + # Check if database contains the romanizations already + englishWord = data['en'] + print(englishWord) + con = sqlite3.connect("../translations.db") + cur = con.cursor() + cur.execute("CREATE TABLE IF NOT EXISTS romanizations AS SELECT * FROM translations WHERE 0") # Copy schema from 'translations' table + cur.execute('SELECT * FROM romanizations WHERE english = ?', (englishWord,)) + romanizations = cur.fetchall() + columnNames = [column[0] for column in cur.description] + romanizationsDict = [] + if len(romanizations) > 0: + for row in romanizations: + row_dict = {columnNames[i]: row[i] for i in range(len(columns))} + romanizationsDict.append(row_dict) + json_data = json.dumps(romanizationsdata, indent=4) + print(json_data) + # if len(romanizations) != 0: + + # Assuming the romanizations didn't exist before for key in data: if key in langCodeLookup: langCode = langCodeLookup[key] @@ -223,4 +244,8 @@ def romanizeHandler(): response = reverse_xlit_api(langCode, text) responseJson = response.get_json() rtv[key] = responseJson['result'] - return jsonify(rtv) + + rtvJson = jsonify(rtv) + + con.close() + return rtvJson