when translating: limit allowed languages to the ones available

This commit is contained in:
Joshix 2023-01-17 20:22:21 +01:00
parent 596b8a9f68
commit ab62fac1df
2 changed files with 5 additions and 5 deletions

View file

@ -512,12 +512,12 @@ def create_app(args):
auto_detect_texts = q
else:
auto_detect_texts = [q]
overall_candidates = detect_languages(q)
allowed_languages = [_l.code for _l in languages]
overall_candidates = detect_languages(q, allowed_languages=allowed_languages)
for text_to_check in auto_detect_texts:
if len(text_to_check) > 40:
candidate_langs = detect_languages(text_to_check)
candidate_langs = detect_languages(text_to_check, allowed_languages=allowed_languages)
else:
# Unable to accurately detect languages for short texts
candidate_langs = overall_candidates

View file

@ -13,7 +13,7 @@ def load_languages():
return __languages
def detect_languages(text):
def detect_languages(text: str, allowed_languages: "list[str] | None" = None):
# detect batch processing
if isinstance(text, list):
is_batch = True
@ -25,7 +25,7 @@ def detect_languages(text):
candidates = []
for t in text:
try:
d = Detector(t).languages
d = Detector(t, allowed_languages=allowed_languages).languages
for i in range(len(d)):
d[i].text_length = len(t)
candidates.extend(d)