mirror of
https://github.com/HIllya51/LunaTranslator.git
synced 2025-01-13 07:33:53 +08:00
.
This commit is contained in:
parent
9788f5065f
commit
a2e7cca929
@ -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))
|
||||
|
@ -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):
|
||||
|
@ -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):
|
||||
|
@ -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):
|
||||
|
@ -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"])
|
||||
|
||||
|
@ -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}
|
||||
|
@ -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
|
||||
|
@ -52,7 +52,6 @@
|
||||
"民安ともえ": "الأمن العام",
|
||||
"光标": "المؤشر",
|
||||
"清空": "إفراغ",
|
||||
"的OCR模型": "نموذج التعرف الضوئي على الحروف",
|
||||
"泰语": "التايلاندية",
|
||||
"特殊码": "رمز خاص",
|
||||
"语法加亮": "تسليط الضوء على بناء الجملة",
|
||||
@ -766,5 +765,6 @@
|
||||
"年度总结": "ملخص سنوي",
|
||||
"取词翻译": "اختيار الترجمة",
|
||||
"取词查词": "كلمة البحث",
|
||||
"音频编码": "ترميز الصوت"
|
||||
"音频编码": "ترميز الصوت",
|
||||
"系统未安装当前语言的OCR模型": "التعرف الضوئي على الحروف نموذج اللغة الحالية غير مثبتة على النظام"
|
||||
}
|
@ -281,7 +281,6 @@
|
||||
"找不到重要组件:": "找不到重要元件:",
|
||||
"请重新下载并关闭杀毒软件后重试": "請重新下載並關閉防毒軟體後重試",
|
||||
"系统未安装": "系統未安裝",
|
||||
"的OCR模型": "的 OCR 模型",
|
||||
"有道TTS": "有道 TTS",
|
||||
"不支持的键位": "不支援的鍵位",
|
||||
"快捷键冲突": "快速鍵衝突",
|
||||
@ -766,5 +765,6 @@
|
||||
"年度总结": "年度總結",
|
||||
"取词翻译": "取詞翻譯",
|
||||
"取词查词": "取詞查詞",
|
||||
"音频编码": "音訊編碼"
|
||||
"音频编码": "音訊編碼",
|
||||
"系统未安装当前语言的OCR模型": "系統未安裝當前語言的OCR模型"
|
||||
}
|
@ -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"
|
||||
}
|
@ -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"
|
||||
}
|
@ -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"
|
||||
}
|
@ -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"
|
||||
}
|
@ -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"
|
||||
}
|
@ -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"
|
||||
}
|
@ -281,7 +281,6 @@
|
||||
"找不到重要组件:": "重要なコンポーネントが見つかりませんでした:",
|
||||
"请重新下载并关闭杀毒软件后重试": "ウイルス対策ソフトウェアを再ダウンロードして閉じてから再試行してください",
|
||||
"系统未安装": "システムがインストールされていません",
|
||||
"的OCR模型": "のOCRモデル",
|
||||
"有道TTS": "有道TTS",
|
||||
"不支持的键位": "サポートされていないキー",
|
||||
"快捷键冲突": "ショートカットキーの競合",
|
||||
@ -766,5 +765,6 @@
|
||||
"年度总结": "年度まとめ",
|
||||
"取词翻译": "単語の翻訳",
|
||||
"取词查词": "単語を取って単語を調べる",
|
||||
"音频编码": "オーディオコーディング"
|
||||
"音频编码": "オーディオコーディング",
|
||||
"系统未安装当前语言的OCR模型": "現在の言語のOCRモデルがシステムにインストールされていません"
|
||||
}
|
@ -281,7 +281,6 @@
|
||||
"找不到重要组件:": "중요한 구성 요소를 찾을 수 없음:",
|
||||
"请重新下载并关闭杀毒软件后重试": "백신 프로그램을 다시 다운로드하고 닫은 후 다시 시도하십시오.",
|
||||
"系统未安装": "시스템이 설치되지 않았습니다.",
|
||||
"的OCR模型": "의 OCR 모델",
|
||||
"有道TTS": "TTS가 있어요.",
|
||||
"不支持的键位": "지원되지 않는 키",
|
||||
"快捷键冲突": "단축키 충돌",
|
||||
@ -766,5 +765,6 @@
|
||||
"年度总结": "연간 요약",
|
||||
"取词翻译": "취사 번역",
|
||||
"取词查词": "취사 조사",
|
||||
"音频编码": "오디오 인코딩"
|
||||
"音频编码": "오디오 인코딩",
|
||||
"系统未安装当前语言的OCR模型": "현재 언어의 OCR 모델이 시스템에 설치되지 않았습니다."
|
||||
}
|
@ -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"
|
||||
}
|
@ -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"
|
||||
}
|
@ -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"
|
||||
}
|
@ -281,7 +281,6 @@
|
||||
"找不到重要组件:": "Не удалось найти важные компоненты:",
|
||||
"请重新下载并关闭杀毒软件后重试": "Пожалуйста, перезагрузите и выключите антивирусное программное обеспечение и попробуйте снова.",
|
||||
"系统未安装": "Система не установлена",
|
||||
"的OCR模型": "Модель OCR",
|
||||
"有道TTS": "Есть TTS",
|
||||
"不支持的键位": "Не поддерживаемые клавиши",
|
||||
"快捷键冲突": "Конфликт комбинаций клавиш",
|
||||
@ -766,5 +765,6 @@
|
||||
"年度总结": "Ежегодное резюме",
|
||||
"取词翻译": "Перевод",
|
||||
"取词查词": "Поиск слов",
|
||||
"音频编码": "Звуковое кодирование"
|
||||
"音频编码": "Звуковое кодирование",
|
||||
"系统未安装当前语言的OCR模型": "Система не устанавливает модель OCR для текущего языка"
|
||||
}
|
@ -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"
|
||||
}
|
@ -58,7 +58,6 @@
|
||||
"打开目录": "เปิดไดเรกทอรี",
|
||||
"字体样式": "รูปแบบตัวอักษร",
|
||||
"搜索文本过短!": "ค้นหาข้อความสั้นเกินไป!",
|
||||
"的OCR模型": "รุ่น OCR",
|
||||
"小学馆": "ศาลาประถมศึกษา",
|
||||
"光标": "เคอร์เซอร์",
|
||||
"项目网站": "เว็บไซต์โครงการ",
|
||||
@ -766,5 +765,6 @@
|
||||
"年度总结": "สรุปรายปี",
|
||||
"取词翻译": "คำแปล",
|
||||
"取词查词": "ค้นหาคำ",
|
||||
"音频编码": "การเข้ารหัสเสียง"
|
||||
"音频编码": "การเข้ารหัสเสียง",
|
||||
"系统未安装当前语言的OCR模型": "ระบบไม่ได้ติดตั้งรุ่น OCR สำหรับภาษาปัจจุบัน"
|
||||
}
|
@ -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ı."
|
||||
}
|
@ -281,7 +281,6 @@
|
||||
"找不到重要组件:": "Важливий компонент не знайдено:",
|
||||
"请重新下载并关闭杀毒软件后重试": "Будь ласка, звантажте і закрийте антивірусне програмне забезпечення знову і спробуйте знову",
|
||||
"系统未安装": "Система не встановлена",
|
||||
"的OCR模型": "Модель OCR для",
|
||||
"有道TTS": "Youdao TTS",
|
||||
"不支持的键位": "Непідтримувана позиція ключа",
|
||||
"快捷键冲突": "Конфлікт клавіш скорочення",
|
||||
@ -766,5 +765,6 @@
|
||||
"年度总结": "Річне резюме",
|
||||
"取词翻译": "Переклад вибору слів",
|
||||
"取词查词": "Отримати і шукати слова",
|
||||
"音频编码": "Аудіокодування"
|
||||
"音频编码": "Аудіокодування",
|
||||
"系统未安装当前语言的OCR模型": "Модель OCR для поточної мови не встановлена у системі"
|
||||
}
|
@ -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"
|
||||
}
|
@ -60,7 +60,7 @@
|
||||
"手动设置代理": "",
|
||||
"字体样式": "",
|
||||
"搜索文本过短!": "",
|
||||
"的OCR模型": "",
|
||||
"系统未安装当前语言的OCR模型": "",
|
||||
"小学馆": "",
|
||||
"光标": "",
|
||||
"项目网站": "",
|
||||
|
Loading…
x
Reference in New Issue
Block a user