diff --git a/cpp/winrtutils/winrtocr.cpp b/cpp/winrtutils/winrtocr.cpp index 956507dd..060f4aaa 100644 --- a/cpp/winrtutils/winrtocr.cpp +++ b/cpp/winrtutils/winrtocr.cpp @@ -39,15 +39,14 @@ DECLARE_API bool check_language_valid(wchar_t *language) return false; } } -DECLARE_API void getlanguagelist(void (*cb)(LPCWSTR)) +DECLARE_API void getlanguagelist(void (*cb)(LPCWSTR, LPCWSTR)) { OcrEngine ocrEngine = OcrEngine::TryCreateFromUserProfileLanguages(); auto languages = ocrEngine.AvailableRecognizerLanguages(); for (auto &&language : languages) { - auto lang = language.LanguageTag(); - cb(lang.c_str()); + cb(language.LanguageTag().c_str(), language.DisplayName().c_str()); } } DECLARE_API void OCR(void *ptr, size_t size, wchar_t *lang, wchar_t *space, void (*cb)(int, int, int, int, LPCWSTR)) diff --git a/py/LunaTranslator/myutils/utils.py b/py/LunaTranslator/myutils/utils.py index d2e2a32d..f27db4fe 100644 --- a/py/LunaTranslator/myutils/utils.py +++ b/py/LunaTranslator/myutils/utils.py @@ -91,7 +91,7 @@ def getlangtgt(): def getlanguagespace(lang=None): if lang is None: lang = getlanguse() - return "" if (lang in ("zh", "ja", "cht")) else " " + return "" if (lang.split("-")[0] in ("zh", "ja", "cht")) else " " def findenclose(text, tag): diff --git a/py/LunaTranslator/ocrengines/baiduocr_X.py b/py/LunaTranslator/ocrengines/baiduocr_X.py index f14a3f57..41020c78 100644 --- a/py/LunaTranslator/ocrengines/baiduocr_X.py +++ b/py/LunaTranslator/ocrengines/baiduocr_X.py @@ -1,7 +1,7 @@ import base64 from myutils.config import globalconfig from ocrengines.baseocrclass import baseocr -import random +import random, zhconv from hashlib import md5 @@ -27,7 +27,14 @@ class OCR(baseocr): try: js = response.json() - text = [_["dst"] for _ in js["data"]["content"]] + text = [ + ( + zhconv.convert(_["dst"], "zh-tw") + if ("cht" == self.tgtlang_1) + else _["dst"] + ) + for _ in js["data"]["content"] + ] box = [ ( l["points"][0]["x"], @@ -87,7 +94,14 @@ class OCR(baseocr): try: js = response.json() - text = [_["src"] for _ in js["data"]["content"]] + text = [ + ( + zhconv.convert(_["dst"], "zh-tw") + if ("cht" == self.tgtlang_1) + else _["dst"] + ) + for _ in js["data"]["content"] + ] box = [ ( l["points"][0]["x"], @@ -108,24 +122,25 @@ class OCR(baseocr): @property def srclangx(self): return { + "cht": "zh", "es": "spa", "ko": "kor", "fr": "fra", "ja": "jp", - "cht": "cht", "vi": "vie", "uk": "ukr", "ar": "ara", + "sv": "swe", }.get(self.srclang_1, self.srclang_1) @property def tgtlangx(self): return { + "cht": "zh", "es": "spa", "ko": "kor", "fr": "fra", "ja": "jp", - "cht": "cht", "vi": "vie", "uk": "ukr", "ar": "ara", @@ -134,6 +149,7 @@ class OCR(baseocr): def langmap(self): return { "auto": "auto_detect", + "cht": "CHN_ENG", "zh": "CHN_ENG", "en": "ENG", "ja": "JAP", @@ -141,6 +157,17 @@ class OCR(baseocr): "ko": "KOR", "fr": "FRE", "es": "SPA", + "pt": "POR", + "de": "GER", + "it": "ITA", + "ru": "RUS", + "nl": "DUT", + "sv": "SWE", + "pl": "POL", + "tr": "TUR", + "th": "THA", + "vi": "VIE", + "ar": "ARA", } def initocr(self): diff --git a/py/LunaTranslator/ocrengines/ocrspace.py b/py/LunaTranslator/ocrengines/ocrspace.py index b9d171a7..69659de7 100644 --- a/py/LunaTranslator/ocrengines/ocrspace.py +++ b/py/LunaTranslator/ocrengines/ocrspace.py @@ -13,7 +13,12 @@ class OCR(baseocr): "es": "spa", "fr": "fre", "ru": "rus", - "cht": "cht", + "ar": "ara", + "de": "ger", + "tr": "tur", + "sv": "swe", + "es": "spa", + "pt": "por", } def ocr(self, imagebinary): diff --git a/py/LunaTranslator/ocrengines/txocr.py b/py/LunaTranslator/ocrengines/txocr.py index 5b0a2200..7a9720b0 100644 --- a/py/LunaTranslator/ocrengines/txocr.py +++ b/py/LunaTranslator/ocrengines/txocr.py @@ -1,6 +1,7 @@ from hashlib import sha1 import time, random, hmac, base64, uuid, hashlib, json from ocrengines.baseocrclass import baseocr +import zhconv class OCR(baseocr): @@ -18,9 +19,8 @@ class OCR(baseocr): except: return "ap-beijing" - @property - def langocr(self): - s = self.srclang_1 + def langmap(self): + # https://cloud.tencent.com/document/product/866/33526 return { "zh": "zh", "cht": "zh", @@ -38,18 +38,19 @@ class OCR(baseocr): "hu": "hun", "th": "tha", "ar": "ara", - }.get(s, "auto") + } - def langmap(self): - # https://cloud.tencent.com/document/product/551/17232 - return {"cht": "zh-TW"} + @property + def langocr(self): + s = self.srclang_1 + return self.langmap().get(s, "auto") def ocr_fy(self, imagebinary): self.checkempty(["SecretId", "SecretKey"]) encodestr = str(base64.b64encode(imagebinary), "utf-8") req_para = { - "Source": self.srclang, + "Source": self.langocr, "Target": self.tgtlang, "ProjectId": int(self.config["ProjectId"]), "Data": encodestr, @@ -140,27 +141,17 @@ class OCR(baseocr): for _ in r.json()["Response"]["ImageRecord"]["Value"] ] texts = [ - _["TargetText"] for _ in r.json()["Response"]["ImageRecord"]["Value"] + ( + zhconv.convert(_["TargetText"], "zh-tw") + if ("cht" == self.tgtlang_1) + else _["TargetText"] + ) + for _ in r.json()["Response"]["ImageRecord"]["Value"] ] return {"box": boxs, "text": texts, "isocrtranslate": True} except: raise Exception(r) - def langmap(self): - # https://cloud.tencent.com/document/product/866/33526 - return { - "ja": "jap", - "ko": "kor", - "en": "auto", - "ru": "rus", - "es": "spa", - "fr": "fre", - "vi": "vie", - "it": "ita", - "ar": "ara", - "th": "tha", - } - def ocr_ocr(self, imagebinary): self.checkempty(["SecretId", "SecretKey"]) diff --git a/py/LunaTranslator/ocrengines/windowsocr.py b/py/LunaTranslator/ocrengines/windowsocr.py index 3661199f..2c1f6ce9 100644 --- a/py/LunaTranslator/ocrengines/windowsocr.py +++ b/py/LunaTranslator/ocrengines/windowsocr.py @@ -1,6 +1,6 @@ import gobject import winrtutils -from myutils.config import _TR, static_data, getlang_inner2show +from myutils.config import _TR, static_data from myutils.utils import dynamiclink from ocrengines.baseocrclass import baseocr from qtsymbols import * @@ -8,36 +8,13 @@ from gui.dynalang import LPushButton, LLabel from myutils.utils import getlanguagespace -def initsupports(): - _allsupport = winrtutils.getlanguagelist() - supportmap = {} - for lang in [_["code"] for _ in static_data["lang_list_all"]] + [ - "zh-Hans", - "zh-Hant", - ]: - if lang == "zh" or lang == "cht": - continue - for s in _allsupport: - if s.startswith(lang) or lang.startswith(s): - supportmap[lang] = s - break - if "zh-Hans" in supportmap: - v = supportmap.pop("zh-Hans") - supportmap["zh"] = v - if "zh-Hant" in supportmap: - v = supportmap.pop("zh-Hant") - supportmap["cht"] = v - return supportmap - - def question(): dialog = QWidget() formLayout = QHBoxLayout() formLayout.setContentsMargins(0, 0, 0, 0) dialog.setLayout(formLayout) - _allsupport = initsupports() - supportlang = LLabel() - supportlang.setText("_,_".join([getlang_inner2show(f) for f in _allsupport])) + supportlang = QLabel() + supportlang.setText(", ".join([_[1] for _ in winrtutils.getlanguagelist()])) btndownload = LPushButton("添加语言包") btndownload.clicked.connect( lambda: gobject.baseobject.openlink( @@ -53,43 +30,29 @@ def question(): class OCR(baseocr): def langmap(self): - return {"cht": "cht"} - - def initocr(self): - self.supportmap = initsupports() + return {"zh": "zh-Hans", "cht": "zh-Hant"} def ocr(self, imagebinary): - if len(self.supportmap) == 0: + supports = [_[0] for _ in winrtutils.getlanguagelist()] + if len(supports) == 0: raise Exception(_TR("无可用语言")) if self.srclang == "auto": - if len(self.supportmap) == 1: - uselang = list(self.supportmap.values())[0] + if len(supports) == 1: + uselang = supports[0] else: self.raise_cant_be_auto_lang() else: - if self.srclang not in self.supportmap: - - _allsupport = initsupports() - idx = [_["code"] for _ in static_data["lang_list_all"]].index( - self.srclang - ) + if not winrtutils.check_language_valid(self.srclang): raise Exception( - _TR("系统未安装") - + ' "' - + _TR([_["zh"] for _ in static_data["lang_list_all"]][idx]) - + '" ' - + _TR("的OCR模型") + _TR("系统未安装当前语言的OCR模型") + "\n" + _TR("当前支持的语言") + ": " - + ", ".join([_TR(getlang_inner2show(f)) for f in _allsupport]) + + ", ".join([_[1] for _ in winrtutils.getlanguagelist()]) ) - else: - uselang = self.srclang - ret = winrtutils.OCR_f( - imagebinary, self.supportmap[uselang], getlanguagespace(uselang) - ) + uselang = self.srclang + ret = winrtutils.OCR_f(imagebinary, uselang, getlanguagespace(uselang)) boxs = [_[1:] for _ in ret] texts = [_[0] for _ in ret] return {"box": boxs, "text": texts} diff --git a/py/LunaTranslator/winrtutils.py b/py/LunaTranslator/winrtutils.py index a81a97bd..d11763b5 100644 --- a/py/LunaTranslator/winrtutils.py +++ b/py/LunaTranslator/winrtutils.py @@ -60,10 +60,18 @@ def getlanguagelist(): if not winrtutilsdll: return [] ret = [] - _getlanguagelist(CFUNCTYPE(None, c_wchar_p)(ret.append)) + _getlanguagelist( + CFUNCTYPE(None, c_wchar_p, c_wchar_p)(lambda t, d: ret.append((t, d))) + ) return ret +def check_language_valid(l): + if not winrtutilsdll: + return False + return _check_language_valid(l) + + def winrt_capture_window(hwnd): if not winrtutilsdll: return diff --git a/py/files/lang/ar.json b/py/files/lang/ar.json index c4cec23e..90ce399d 100644 --- a/py/files/lang/ar.json +++ b/py/files/lang/ar.json @@ -52,7 +52,6 @@ "民安ともえ": "الأمن العام", "光标": "المؤشر", "清空": "إفراغ", - "的OCR模型": "نموذج التعرف الضوئي على الحروف", "泰语": "التايلاندية", "特殊码": "رمز خاص", "语法加亮": "تسليط الضوء على بناء الجملة", @@ -766,5 +765,6 @@ "年度总结": "ملخص سنوي", "取词翻译": "اختيار الترجمة", "取词查词": "كلمة البحث", - "音频编码": "ترميز الصوت" + "音频编码": "ترميز الصوت", + "系统未安装当前语言的OCR模型": "التعرف الضوئي على الحروف نموذج اللغة الحالية غير مثبتة على النظام" } \ No newline at end of file diff --git a/py/files/lang/cht.json b/py/files/lang/cht.json index 812fbe37..c5c27bc0 100644 --- a/py/files/lang/cht.json +++ b/py/files/lang/cht.json @@ -281,7 +281,6 @@ "找不到重要组件:": "找不到重要元件:", "请重新下载并关闭杀毒软件后重试": "請重新下載並關閉防毒軟體後重試", "系统未安装": "系統未安裝", - "的OCR模型": "的 OCR 模型", "有道TTS": "有道 TTS", "不支持的键位": "不支援的鍵位", "快捷键冲突": "快速鍵衝突", @@ -766,5 +765,6 @@ "年度总结": "年度總結", "取词翻译": "取詞翻譯", "取词查词": "取詞查詞", - "音频编码": "音訊編碼" + "音频编码": "音訊編碼", + "系统未安装当前语言的OCR模型": "系統未安裝當前語言的OCR模型" } \ No newline at end of file diff --git a/py/files/lang/cs.json b/py/files/lang/cs.json index df62f35f..c71cccaf 100644 --- a/py/files/lang/cs.json +++ b/py/files/lang/cs.json @@ -59,7 +59,6 @@ "打开目录": "Otevřít adresář", "字体样式": "Styl písma", "搜索文本过短!": "Vyhledávací text je příliš krátký!", - "的OCR模型": "Model OCR", "小学馆": "Sál základní školy", "光标": "kurzor", "项目网站": "Webové stránky projektu", @@ -766,5 +765,6 @@ "年度总结": "Roční shrnutí", "取词翻译": "Překlad výběru slova", "取词查词": "Načíst a vyhledávat slova", - "音频编码": "Kódování zvuku" + "音频编码": "Kódování zvuku", + "系统未安装当前语言的OCR模型": "OCR model pro aktuální jazyk není nainstalován v systému" } \ No newline at end of file diff --git a/py/files/lang/de.json b/py/files/lang/de.json index 018a63ed..0e289fb3 100644 --- a/py/files/lang/de.json +++ b/py/files/lang/de.json @@ -59,7 +59,6 @@ "打开目录": "Verzeichnis öffnen", "字体样式": "Schriftart", "搜索文本过短!": "Der Suchtext ist zu kurz!", - "的OCR模型": "Das OCR-Modell", "小学馆": "Grundschulsaal", "光标": "Cursor", "项目网站": "Website des Projekts", @@ -766,5 +765,6 @@ "年度总结": "Jahreszusammenfassung", "取词翻译": "Übersetzung der Wortauswahl", "取词查词": "Wörter abrufen und suchen", - "音频编码": "Audio-Codierung" + "音频编码": "Audio-Codierung", + "系统未安装当前语言的OCR模型": "Das OCR-Modell für die aktuelle Sprache ist nicht im System installiert" } \ No newline at end of file diff --git a/py/files/lang/en.json b/py/files/lang/en.json index 02d80d71..e1599524 100644 --- a/py/files/lang/en.json +++ b/py/files/lang/en.json @@ -281,7 +281,6 @@ "找不到重要组件:": "Important Component Not Found:", "请重新下载并关闭杀毒软件后重试": "Please re-download and try again with antivirus disabled", "系统未安装": "System Not Installed", - "的OCR模型": "OCR Model", "有道TTS": "Youdao TTS", "不支持的键位": "Unsupported Key Position", "快捷键冲突": "Hotkey Conflict", @@ -766,5 +765,6 @@ "年度总结": "Annual Summary", "取词翻译": "Word selection translation", "取词查词": "Retrieve and search for words", - "音频编码": "audio coding" + "音频编码": "audio coding", + "系统未安装当前语言的OCR模型": "The OCR model for the current language is not installed in the system" } \ No newline at end of file diff --git a/py/files/lang/es.json b/py/files/lang/es.json index e0412ab2..6bc54cd8 100644 --- a/py/files/lang/es.json +++ b/py/files/lang/es.json @@ -281,7 +281,6 @@ "找不到重要组件:": "No se pueden encontrar componentes importantes:", "请重新下载并关闭杀毒软件后重试": "Por favor, vuelva a descargar y cierre el software antivirus y vuelva a intentarlo.", "系统未安装": "El sistema no está instalado", - "的OCR模型": "Modelo OCR", "有道TTS": "Youdao TTS", "不支持的键位": "Teclas no soportadas", "快捷键冲突": "Conflicto de teclas de acceso rápido", @@ -766,5 +765,6 @@ "年度总结": "Resumen Anual", "取词翻译": "Traducción de palabras", "取词查词": "Buscar palabras", - "音频编码": "Codificación de audio" + "音频编码": "Codificación de audio", + "系统未安装当前语言的OCR模型": "El sistema no instala el modelo OCR del idioma actual" } \ No newline at end of file diff --git a/py/files/lang/fr.json b/py/files/lang/fr.json index 41b76e3d..f95dd962 100644 --- a/py/files/lang/fr.json +++ b/py/files/lang/fr.json @@ -281,7 +281,6 @@ "找不到重要组件:": "Aucun composant important trouvé:", "请重新下载并关闭杀毒软件后重试": "Veuillez réessayer après le téléchargement et la fermeture du logiciel antivirus", "系统未安装": "Le système n'est pas installé", - "的OCR模型": "Le modèle ocr", "有道TTS": "Avec tts", "不支持的键位": "Clés non supportées", "快捷键冲突": "Conflit de touches de raccourci", @@ -766,5 +765,6 @@ "年度总结": "Résumé annuel", "取词翻译": "Traduction des mots", "取词查词": "Recherche de mots", - "音频编码": "Codage audio" + "音频编码": "Codage audio", + "系统未安装当前语言的OCR模型": "Le système n'a pas installé le modèle OCR pour la langue actuelle" } \ No newline at end of file diff --git a/py/files/lang/it.json b/py/files/lang/it.json index 55824885..0f22c81a 100644 --- a/py/files/lang/it.json +++ b/py/files/lang/it.json @@ -281,7 +281,6 @@ "找不到重要组件:": "Componente importante non trovato:", "请重新下载并关闭杀毒软件后重试": "Si prega di scaricare e chiudere nuovamente il software antivirus e riprovare", "系统未安装": "Sistema non installato", - "的OCR模型": "Modello OCR per", "有道TTS": "Youdao TTS", "不支持的键位": "Posizione chiave non supportata", "快捷键冲突": "Conflitto di tasti scorciatoie", @@ -766,5 +765,6 @@ "年度总结": "Sintesi annuale", "取词翻译": "Traduzione della selezione delle parole", "取词查词": "Recupera e cerca parole", - "音频编码": "Codificazione audio" + "音频编码": "Codificazione audio", + "系统未安装当前语言的OCR模型": "Il modello OCR per la lingua corrente non è installato nel sistema" } \ No newline at end of file diff --git a/py/files/lang/ja.json b/py/files/lang/ja.json index a2c9718e..feebacd1 100644 --- a/py/files/lang/ja.json +++ b/py/files/lang/ja.json @@ -281,7 +281,6 @@ "找不到重要组件:": "重要なコンポーネントが見つかりませんでした:", "请重新下载并关闭杀毒软件后重试": "ウイルス対策ソフトウェアを再ダウンロードして閉じてから再試行してください", "系统未安装": "システムがインストールされていません", - "的OCR模型": "のOCRモデル", "有道TTS": "有道TTS", "不支持的键位": "サポートされていないキー", "快捷键冲突": "ショートカットキーの競合", @@ -766,5 +765,6 @@ "年度总结": "年度まとめ", "取词翻译": "単語の翻訳", "取词查词": "単語を取って単語を調べる", - "音频编码": "オーディオコーディング" + "音频编码": "オーディオコーディング", + "系统未安装当前语言的OCR模型": "現在の言語のOCRモデルがシステムにインストールされていません" } \ No newline at end of file diff --git a/py/files/lang/ko.json b/py/files/lang/ko.json index 89ed1cbd..51e1efc0 100644 --- a/py/files/lang/ko.json +++ b/py/files/lang/ko.json @@ -281,7 +281,6 @@ "找不到重要组件:": "중요한 구성 요소를 찾을 수 없음:", "请重新下载并关闭杀毒软件后重试": "백신 프로그램을 다시 다운로드하고 닫은 후 다시 시도하십시오.", "系统未安装": "시스템이 설치되지 않았습니다.", - "的OCR模型": "의 OCR 모델", "有道TTS": "TTS가 있어요.", "不支持的键位": "지원되지 않는 키", "快捷键冲突": "단축키 충돌", @@ -766,5 +765,6 @@ "年度总结": "연간 요약", "取词翻译": "취사 번역", "取词查词": "취사 조사", - "音频编码": "오디오 인코딩" + "音频编码": "오디오 인코딩", + "系统未安装当前语言的OCR模型": "현재 언어의 OCR 모델이 시스템에 설치되지 않았습니다." } \ No newline at end of file diff --git a/py/files/lang/nl.json b/py/files/lang/nl.json index 796f16ef..e8c9b564 100644 --- a/py/files/lang/nl.json +++ b/py/files/lang/nl.json @@ -59,7 +59,6 @@ "打开目录": "Map openen", "字体样式": "Lettertypestijl", "搜索文本过短!": "De zoektekst is te kort!", - "的OCR模型": "Het OCR-model", "小学馆": "Hal van de basisschool", "光标": "cursor", "项目网站": "Website van het project", @@ -766,5 +765,6 @@ "年度总结": "Jaarlijkse samenvatting", "取词翻译": "Woordselectie vertaling", "取词查词": "Woorden ophalen en zoeken", - "音频编码": "Audiocodering" + "音频编码": "Audiocodering", + "系统未安装当前语言的OCR模型": "Het OCR-model voor de huidige taal is niet geïnstalleerd in het systeem" } \ No newline at end of file diff --git a/py/files/lang/pl.json b/py/files/lang/pl.json index e5fcb5c4..282e74f7 100644 --- a/py/files/lang/pl.json +++ b/py/files/lang/pl.json @@ -281,7 +281,6 @@ "找不到重要组件:": "Nie znaleziono ważnego komponentu:", "请重新下载并关闭杀毒软件后重试": "Pobierz i zamknij oprogramowanie antywirusowe ponownie i spróbuj ponownie", "系统未安装": "System nie zainstalowany", - "的OCR模型": "Model OCR dla", "有道TTS": "Youdao TTS", "不支持的键位": "Nieobsługiwana pozycja klucza", "快捷键冲突": "Konflikt kluczy skrótów", @@ -766,5 +765,6 @@ "年度总结": "Roczne podsumowanie", "取词翻译": "Tłumaczenie wyboru słowa", "取词查词": "Pobieranie i wyszukiwanie słów", - "音频编码": "Kodowanie dźwięku" + "音频编码": "Kodowanie dźwięku", + "系统未安装当前语言的OCR模型": "Model OCR dla bieżącego języka nie jest zainstalowany w systemie" } \ No newline at end of file diff --git a/py/files/lang/pt.json b/py/files/lang/pt.json index ef855c21..cdd29648 100644 --- a/py/files/lang/pt.json +++ b/py/files/lang/pt.json @@ -59,7 +59,6 @@ "打开目录": "Abrir a pasta", "字体样式": "Estilo do Tipo de Letra", "搜索文本过短!": "O texto de pesquisa é muito curto!", - "的OCR模型": "O modelo OCR", "小学馆": "Sala do Ensino Fundamental", "光标": "cursor", "项目网站": "Sítio Web do projecto", @@ -766,5 +765,6 @@ "年度总结": "Resumo anual", "取词翻译": "Tradução da selecção de palavras", "取词查词": "Obter e procurar palavras", - "音频编码": "Codificação de áudio" + "音频编码": "Codificação de áudio", + "系统未安装当前语言的OCR模型": "O modelo OCR para o idioma atual não está instalado no sistema" } \ No newline at end of file diff --git a/py/files/lang/ru.json b/py/files/lang/ru.json index 5744b4ac..ccd8f17c 100644 --- a/py/files/lang/ru.json +++ b/py/files/lang/ru.json @@ -281,7 +281,6 @@ "找不到重要组件:": "Не удалось найти важные компоненты:", "请重新下载并关闭杀毒软件后重试": "Пожалуйста, перезагрузите и выключите антивирусное программное обеспечение и попробуйте снова.", "系统未安装": "Система не установлена", - "的OCR模型": "Модель OCR", "有道TTS": "Есть TTS", "不支持的键位": "Не поддерживаемые клавиши", "快捷键冲突": "Конфликт комбинаций клавиш", @@ -766,5 +765,6 @@ "年度总结": "Ежегодное резюме", "取词翻译": "Перевод", "取词查词": "Поиск слов", - "音频编码": "Звуковое кодирование" + "音频编码": "Звуковое кодирование", + "系统未安装当前语言的OCR模型": "Система не устанавливает модель OCR для текущего языка" } \ No newline at end of file diff --git a/py/files/lang/sv.json b/py/files/lang/sv.json index c747aef7..7e3c476a 100644 --- a/py/files/lang/sv.json +++ b/py/files/lang/sv.json @@ -59,7 +59,6 @@ "打开目录": "Öppna katalog", "字体样式": "Teckensnittsstil", "搜索文本过短!": "Söktexten är för kort!", - "的OCR模型": "OCR-modellen", "小学馆": "Elementary School Hall", "光标": "markör", "项目网站": "Projektets webbplats", @@ -766,5 +765,6 @@ "年度总结": "Årlig sammanfattning", "取词翻译": "Ordmarkeringsöversättning", "取词查词": "Hämta och sök efter ord", - "音频编码": "Ljudkodning" + "音频编码": "Ljudkodning", + "系统未安装当前语言的OCR模型": "OCR-modellen för det aktuella språket är inte installerad i systemet" } \ No newline at end of file diff --git a/py/files/lang/th.json b/py/files/lang/th.json index 0c27b285..560761f3 100644 --- a/py/files/lang/th.json +++ b/py/files/lang/th.json @@ -58,7 +58,6 @@ "打开目录": "เปิดไดเรกทอรี", "字体样式": "รูปแบบตัวอักษร", "搜索文本过短!": "ค้นหาข้อความสั้นเกินไป!", - "的OCR模型": "รุ่น OCR", "小学馆": "ศาลาประถมศึกษา", "光标": "เคอร์เซอร์", "项目网站": "เว็บไซต์โครงการ", @@ -766,5 +765,6 @@ "年度总结": "สรุปรายปี", "取词翻译": "คำแปล", "取词查词": "ค้นหาคำ", - "音频编码": "การเข้ารหัสเสียง" + "音频编码": "การเข้ารหัสเสียง", + "系统未安装当前语言的OCR模型": "ระบบไม่ได้ติดตั้งรุ่น OCR สำหรับภาษาปัจจุบัน" } \ No newline at end of file diff --git a/py/files/lang/tr.json b/py/files/lang/tr.json index 2eb398be..fc7b96c8 100644 --- a/py/files/lang/tr.json +++ b/py/files/lang/tr.json @@ -281,7 +281,6 @@ "找不到重要组件:": "Önemli komponent bulunamadı:", "请重新下载并关闭杀毒软件后重试": "Lütfen antivirüs yazılımını tekrar indirin ve tekrar deneyin", "系统未安装": "Sistem kurulmadı", - "的OCR模型": "OCR modeli için", "有道TTS": "Youdao TTS", "不支持的键位": "Desteklenmeyen anahtar pozisyonu", "快捷键冲突": "Kısayol tuş çatışması", @@ -766,5 +765,6 @@ "年度总结": "Yıllık Toplantı", "取词翻译": "Kelime seçimi çevirimi", "取词查词": "Kelimeleri alın ve arayın", - "音频编码": "Ses Kodlama" + "音频编码": "Ses Kodlama", + "系统未安装当前语言的OCR模型": "Ağımdaki dilin OCR modeli sistemde kurulmadı." } \ No newline at end of file diff --git a/py/files/lang/uk.json b/py/files/lang/uk.json index 93398b1d..bf70f829 100644 --- a/py/files/lang/uk.json +++ b/py/files/lang/uk.json @@ -281,7 +281,6 @@ "找不到重要组件:": "Важливий компонент не знайдено:", "请重新下载并关闭杀毒软件后重试": "Будь ласка, звантажте і закрийте антивірусне програмне забезпечення знову і спробуйте знову", "系统未安装": "Система не встановлена", - "的OCR模型": "Модель OCR для", "有道TTS": "Youdao TTS", "不支持的键位": "Непідтримувана позиція ключа", "快捷键冲突": "Конфлікт клавіш скорочення", @@ -766,5 +765,6 @@ "年度总结": "Річне резюме", "取词翻译": "Переклад вибору слів", "取词查词": "Отримати і шукати слова", - "音频编码": "Аудіокодування" + "音频编码": "Аудіокодування", + "系统未安装当前语言的OCR模型": "Модель OCR для поточної мови не встановлена у системі" } \ No newline at end of file diff --git a/py/files/lang/vi.json b/py/files/lang/vi.json index 5d053916..55cc2961 100644 --- a/py/files/lang/vi.json +++ b/py/files/lang/vi.json @@ -281,7 +281,6 @@ "找不到重要组件:": "Không tìm thấy thành phần quan trọng:", "请重新下载并关闭杀毒软件后重试": "Vui lòng tải xuống và thử lại sau khi tắt phần mềm diệt virus", "系统未安装": "Hệ thống không được cài đặt", - "的OCR模型": "Mô hình OCR", "有道TTS": "Có TTS", "不支持的键位": "Các phím không được hỗ trợ", "快捷键冲突": "Xung đột phím tắt", @@ -766,5 +765,6 @@ "年度总结": "Tóm tắt hàng năm", "取词翻译": "Dịch thuật lấy từ", "取词查词": "Tìm kiếm từ", - "音频编码": "Mã hóa âm thanh" + "音频编码": "Mã hóa âm thanh", + "系统未安装当前语言的OCR模型": "Hệ thống không cài đặt mô hình OCR cho ngôn ngữ hiện tại" } \ No newline at end of file diff --git a/py/files/lang/zh.json b/py/files/lang/zh.json index 28082b26..26b95a97 100644 --- a/py/files/lang/zh.json +++ b/py/files/lang/zh.json @@ -60,7 +60,7 @@ "手动设置代理": "", "字体样式": "", "搜索文本过短!": "", - "的OCR模型": "", + "系统未安装当前语言的OCR模型": "", "小学馆": "", "光标": "", "项目网站": "",