From c9f36eb350dfb66296c92b604feeed4b1acc6b5f Mon Sep 17 00:00:00 2001 From: KUNJ SHAH Date: Mon, 5 May 2025 18:29:44 +0530 Subject: [PATCH 01/14] Update __init__.py --- modules/__init__.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/modules/__init__.py b/modules/__init__.py index e69de29..8b50aa7 100644 --- a/modules/__init__.py +++ b/modules/__init__.py @@ -0,0 +1,23 @@ +import cv2 +import numpy as np + +# Define a new function that supports unicode characters in file paths +def imread_unicode(path, flags=cv2.IMREAD_COLOR): + return cv2.imdecode(np.fromfile(path, dtype=np.uint8), flags) + +# Override the original `cv2.imread` +cv2.imread = imread_unicode + +# Define a function to support unicode characters in file paths when saving +def imwrite_unicode(path, img, params=None): + # Encode the image + ext = path.split(".")[-1] # Get file extension + result, encoded_img = cv2.imencode(f".{ext}", img, params if params else []) + + if result: + encoded_img.tofile(path) # Save image using numpy's `tofile()` + return True + return False + +# Override `cv2.imwrite` +cv2.imwrite = imwrite_unicode From 9ecd2dab8311286e47e205a25ccd526f75d7564b Mon Sep 17 00:00:00 2001 From: KUNJ SHAH Date: Mon, 5 May 2025 13:10:00 +0000 Subject: [PATCH 02/14] changes --- modules/__init__.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/modules/__init__.py b/modules/__init__.py index 8b50aa7..c740bae 100644 --- a/modules/__init__.py +++ b/modules/__init__.py @@ -1,3 +1,4 @@ +import os import cv2 import numpy as np @@ -11,8 +12,11 @@ cv2.imread = imread_unicode # Define a function to support unicode characters in file paths when saving def imwrite_unicode(path, img, params=None): # Encode the image - ext = path.split(".")[-1] # Get file extension - result, encoded_img = cv2.imencode(f".{ext}", img, params if params else []) + root, ext = os.path.splitext(path) + # If no extension is found, you can choose a default extension (e.g., ".png") + if not ext: + ext = ".png" + result, encoded_img = cv2.imencode(ext, img, params if params else []) if result: encoded_img.tofile(path) # Save image using numpy's `tofile()` @@ -20,4 +24,4 @@ def imwrite_unicode(path, img, params=None): return False # Override `cv2.imwrite` -cv2.imwrite = imwrite_unicode +cv2.imwrite = imwrite_unicode \ No newline at end of file From fe4a87e8f23a9bbd9dd92517f5dac64668ef31f5 Mon Sep 17 00:00:00 2001 From: KUNJ SHAH Date: Mon, 5 May 2025 13:19:29 +0000 Subject: [PATCH 03/14] update --- modules/__init__.py | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/modules/__init__.py b/modules/__init__.py index c740bae..7968738 100644 --- a/modules/__init__.py +++ b/modules/__init__.py @@ -2,26 +2,17 @@ import os import cv2 import numpy as np -# Define a new function that supports unicode characters in file paths +# Utility function to support unicode characters in file paths for reading def imread_unicode(path, flags=cv2.IMREAD_COLOR): return cv2.imdecode(np.fromfile(path, dtype=np.uint8), flags) -# Override the original `cv2.imread` -cv2.imread = imread_unicode - -# Define a function to support unicode characters in file paths when saving +# Utility function to support unicode characters in file paths for writing def imwrite_unicode(path, img, params=None): - # Encode the image root, ext = os.path.splitext(path) - # If no extension is found, you can choose a default extension (e.g., ".png") if not ext: ext = ".png" result, encoded_img = cv2.imencode(ext, img, params if params else []) - if result: - encoded_img.tofile(path) # Save image using numpy's `tofile()` + encoded_img.tofile(path) return True - return False - -# Override `cv2.imwrite` -cv2.imwrite = imwrite_unicode \ No newline at end of file + return False \ No newline at end of file From a64940def77f1201fd23efea6bc4d9dadae33a2b Mon Sep 17 00:00:00 2001 From: KUNJ SHAH Date: Mon, 5 May 2025 13:19:46 +0000 Subject: [PATCH 04/14] update --- modules/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/__init__.py b/modules/__init__.py index 7968738..45a9cac 100644 --- a/modules/__init__.py +++ b/modules/__init__.py @@ -12,7 +12,7 @@ def imwrite_unicode(path, img, params=None): if not ext: ext = ".png" result, encoded_img = cv2.imencode(ext, img, params if params else []) - if result: + result, encoded_img = cv2.imencode(f".{ext}", img, params if params is not None else []) encoded_img.tofile(path) return True return False \ No newline at end of file From bdbd7dcfbcf0e450be4cefc96ca62b22bc39ddf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gordon=20B=C3=B6er?= <1067159+gboeer@users.noreply.github.com> Date: Wed, 7 May 2025 13:23:31 +0200 Subject: [PATCH 05/14] fix typos in ui.py --- modules/ui.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/ui.py b/modules/ui.py index 94fa5cf..ce599d6 100644 --- a/modules/ui.py +++ b/modules/ui.py @@ -429,7 +429,7 @@ def create_source_target_popup( POPUP.destroy() select_output_path(start) else: - update_pop_status("Atleast 1 source with target is required!") + update_pop_status("At least 1 source with target is required!") scrollable_frame = ctk.CTkScrollableFrame( POPUP, width=POPUP_SCROLL_WIDTH, height=POPUP_SCROLL_HEIGHT @@ -489,7 +489,7 @@ def update_popup_source( global source_label_dict source_path = ctk.filedialog.askopenfilename( - title=_("select an source image"), + title=_("select a source image"), initialdir=RECENT_DIRECTORY_SOURCE, filetypes=[img_ft], ) @@ -584,7 +584,7 @@ def select_source_path() -> None: PREVIEW.withdraw() source_path = ctk.filedialog.askopenfilename( - title=_("select an source image"), + title=_("select a source image"), initialdir=RECENT_DIRECTORY_SOURCE, filetypes=[img_ft], ) @@ -627,7 +627,7 @@ def select_target_path() -> None: PREVIEW.withdraw() target_path = ctk.filedialog.askopenfilename( - title=_("select an target image or video"), + title=_("select a target image or video"), initialdir=RECENT_DIRECTORY_TARGET, filetypes=[img_ft, vid_ft], ) @@ -1108,7 +1108,7 @@ def update_webcam_source( global source_label_dict_live source_path = ctk.filedialog.askopenfilename( - title=_("select an source image"), + title=_("select a source image"), initialdir=RECENT_DIRECTORY_SOURCE, filetypes=[img_ft], ) @@ -1160,7 +1160,7 @@ def update_webcam_target( global target_label_dict_live target_path = ctk.filedialog.askopenfilename( - title=_("select an target image"), + title=_("select a target image"), initialdir=RECENT_DIRECTORY_SOURCE, filetypes=[img_ft], ) From 7063bba4b3dc5fe177384a2eeee7379a2f3d3d9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gordon=20B=C3=B6er?= <1067159+gboeer@users.noreply.github.com> Date: Wed, 7 May 2025 13:24:54 +0200 Subject: [PATCH 06/14] fix typos in zh.json --- locales/zh.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/locales/zh.json b/locales/zh.json index c029898..445edc7 100644 --- a/locales/zh.json +++ b/locales/zh.json @@ -1,11 +1,11 @@ { "Source x Target Mapper": "Source x Target Mapper", - "select an source image": "选择一个源图像", + "select a source image": "选择一个源图像", "Preview": "预览", - "select an target image or video": "选择一个目标图像或视频", + "select a target image or video": "选择一个目标图像或视频", "save image output file": "保存图像输出文件", "save video output file": "保存视频输出文件", - "select an target image": "选择一个目标图像", + "select a target image": "选择一个目标图像", "source": "源", "Select a target": "选择一个目标", "Select a face": "选择一张脸", @@ -36,11 +36,11 @@ "Select source image": "请选取源图像", "Select target image": "请选取目标图像", "Please provide mapping!": "请提供映射", - "Atleast 1 source with target is required!": "至少需要一个来源图像与目标图像相关!", + "At least 1 source with target is required!": "至少需要一个来源图像与目标图像相关!", "At least 1 source with target is required!": "至少需要一个来源图像与目标图像相关!", "Face could not be detected in last upload!": "最近上传的图像中没有检测到人脸!", "Select Camera:": "选择摄像头", "All mappings cleared!": "所有映射均已清除!", "Mappings successfully submitted!": "成功提交映射!", "Source x Target Mapper is already open.": "源 x 目标映射器已打开。" -} \ No newline at end of file +} From 75122da3890a61fabcd67240a68318f1fbfdfe70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gordon=20B=C3=B6er?= <1067159+gboeer@users.noreply.github.com> Date: Wed, 7 May 2025 13:30:22 +0200 Subject: [PATCH 07/14] Create german localization --- locales/de.json | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 locales/de.json diff --git a/locales/de.json b/locales/de.json new file mode 100644 index 0000000..9e23ecd --- /dev/null +++ b/locales/de.json @@ -0,0 +1,46 @@ +{ + "Source x Target Mapper": "Quelle x Ziel Zuordnung", + "select a source image": "Wähle ein Quellbild", + "Preview": "Vorschau", + "select a target image or video": "Wähle ein Zielbild oder Video", + "save image output file": "Bildausgabedatei speichern", + "save video output file": "Videoausgabedatei speichern", + "select a target image": "Wähle ein Zielbild", + "source": "Quelle", + "Select a target": "Wähle ein Ziel", + "Select a face": "Wähle ein Gesicht", + "Keep audio": "Audio beibehalten", + "Face Enhancer": "Gesichtsverbesserung", + "Many faces": "Mehrere Gesichter", + "Show FPS": "FPS anzeigen", + "Keep fps": "FPS beibehalten", + "Keep frames": "Frames beibehalten", + "Fix Blueish Cam": "Bläuliche Kamera korrigieren", + "Mouth Mask": "Mundmaske", + "Show Mouth Mask Box": "Mundmaskenrahmen anzeigen", + "Start": "Starten", + "Live": "Live", + "Destroy": "Beenden", + "Map faces": "Gesichter zuordnen", + "Processing...": "Verarbeitung läuft...", + "Processing succeed!": "Verarbeitung erfolgreich!", + "Processing ignored!": "Verarbeitung ignoriert!", + "Failed to start camera": "Kamera konnte nicht gestartet werden", + "Please complete pop-up or close it.": "Bitte das Pop-up komplettieren oder schließen.", + "Getting unique faces": "Einzigartige Gesichter erfassen", + "Please select a source image first": "Bitte zuerst ein Quellbild auswählen", + "No faces found in target": "Keine Gesichter im Zielbild gefunden", + "Add": "Hinzufügen", + "Clear": "Löschen", + "Submit": "Absenden", + "Select source image": "Quellbild auswählen", + "Select target image": "Zielbild auswählen", + "Please provide mapping!": "Bitte eine Zuordnung angeben!", + "At least 1 source with target is required!": "Mindestens eine Quelle mit einem Ziel ist erforderlich!", + "At least 1 source with target is required!": "Mindestens eine Quelle mit einem Ziel ist erforderlich!", + "Face could not be detected in last upload!": "Im letzten Upload konnte kein Gesicht erkannt werden!", + "Select Camera:": "Kamera auswählen:", + "All mappings cleared!": "Alle Zuordnungen gelöscht!", + "Mappings successfully submitted!": "Zuordnungen erfolgreich übermittelt!", + "Source x Target Mapper is already open.": "Quell-zu-Ziel-Zuordnung ist bereits geöffnet." +} From 4a7874a96814f08cc9b1568787875da2f2540640 Mon Sep 17 00:00:00 2001 From: VilkkuKoo <116868441+VilkkuKoo@users.noreply.github.com> Date: Sun, 11 May 2025 01:28:53 +0300 Subject: [PATCH 08/14] Added a Finnish translation (#1255) * Added finnish translations * Fixed a typo --- locales/fi.json | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 locales/fi.json diff --git a/locales/fi.json b/locales/fi.json new file mode 100644 index 0000000..240775d --- /dev/null +++ b/locales/fi.json @@ -0,0 +1,46 @@ +{ + "Source x Target Mapper": "Source x Target Kartoitin", + "select an source image": "Valitse lähde kuva", + "Preview": "Esikatsele", + "select an target image or video": "Valitse kohde kuva tai video", + "save image output file": "tallenna kuva", + "save video output file": "tallenna video", + "select an target image": "Valitse kohde kuva", + "source": "lähde", + "Select a target": "Valitse kohde", + "Select a face": "Valitse kasvot", + "Keep audio": "Säilytä ääni", + "Face Enhancer": "Kasvojen Parantaja", + "Many faces": "Useampia kasvoja", + "Show FPS": "Näytä FPS", + "Keep fps": "Säilytä FPS", + "Keep frames": "Säilytä ruudut", + "Fix Blueish Cam": "Korjaa Sinertävä Kamera", + "Mouth Mask": "Suu Maski", + "Show Mouth Mask Box": "Näytä Suu Maski Laatiko", + "Start": "Aloita", + "Live": "Live", + "Destroy": "Tuhoa", + "Map faces": "Kartoita kasvot", + "Processing...": "Prosessoi...", + "Processing succeed!": "Prosessointi onnistui!", + "Processing ignored!": "Prosessointi lopetettu!", + "Failed to start camera": "Kameran käynnistäminen epäonnistui", + "Please complete pop-up or close it.": "Viimeistele tai sulje ponnahdusikkuna", + "Getting unique faces": "Hankitaan uniikkeja kasvoja", + "Please select a source image first": "Valitse ensin lähde kuva", + "No faces found in target": "Kasvoja ei löydetty kohteessa", + "Add": "Lisää", + "Clear": "Tyhjennä", + "Submit": "Lähetä", + "Select source image": "Valitse lähde kuva", + "Select target image": "Valitse kohde kuva", + "Please provide mapping!": "Tarjoa kartoitus!", + "Atleast 1 source with target is required!": "Vähintään 1 lähde kohteen kanssa on vaadittu!", + "At least 1 source with target is required!": "Vähintään 1 lähde kohteen kanssa on vaadittu!", + "Face could not be detected in last upload!": "Kasvoja ei voitu tunnistaa edellisessä latauksessa!", + "Select Camera:": "Valitse Kamera:", + "All mappings cleared!": "Kaikki kartoitukset tyhjennetty!", + "Mappings successfully submitted!": "Kartoitukset lähetety onnistuneesti!", + "Source x Target Mapper is already open.": "Lähde x Kohde Kartoittaja on jo auki." +} From 969007039993c3f161bbc7226ceb6de73f93b6d9 Mon Sep 17 00:00:00 2001 From: Teo Jia Cheng Date: Tue, 13 May 2025 00:14:49 +0800 Subject: [PATCH 09/14] Update __init__.py --- modules/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/__init__.py b/modules/__init__.py index 45a9cac..6eca4a3 100644 --- a/modules/__init__.py +++ b/modules/__init__.py @@ -11,8 +11,8 @@ def imwrite_unicode(path, img, params=None): root, ext = os.path.splitext(path) if not ext: ext = ".png" - result, encoded_img = cv2.imencode(ext, img, params if params else []) - result, encoded_img = cv2.imencode(f".{ext}", img, params if params is not None else []) + result, encoded_img = cv2.imencode(ext, img, params if params else []) + result, encoded_img = cv2.imencode(f".{ext}", img, params if params is not None else []) encoded_img.tofile(path) return True return False \ No newline at end of file From 994a63c54658f11dadcc7f480fb9d5b78fb16bc6 Mon Sep 17 00:00:00 2001 From: Giovanna Date: Wed, 14 May 2025 19:24:13 -0300 Subject: [PATCH 10/14] [Added] pt br translate --- locales/pt-br.json | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 locales/pt-br.json diff --git a/locales/pt-br.json b/locales/pt-br.json new file mode 100644 index 0000000..0ed7931 --- /dev/null +++ b/locales/pt-br.json @@ -0,0 +1,46 @@ +{ + "Source x Target Mapper": "Mapeador de Origem x Destino", + "select an source image": "Escolha uma imagem de origem", + "Preview": "Prévia", + "select an target image or video": "Escolha uma imagem ou vídeo de destino", + "save image output file": "Salvar imagem final", + "save video output file": "Salvar vídeo final", + "select an target image": "Escolha uma imagem de destino", + "source": "Origem", + "Select a target": "Escolha o destino", + "Select a face": "Escolha um rosto", + "Keep audio": "Manter o áudio original", + "Face Enhancer": "Melhorar rosto", + "Many faces": "Vários rostos", + "Show FPS": "Mostrar FPS", + "Keep fps": "Manter FPS", + "Keep frames": "Manter frames", + "Fix Blueish Cam": "Corrigir tom azulado da câmera", + "Mouth Mask": "Máscara da boca", + "Show Mouth Mask Box": "Mostrar área da máscara da boca", + "Start": "Começar", + "Live": "Ao vivo", + "Destroy": "Destruir", + "Map faces": "Mapear rostos", + "Processing...": "Processando...", + "Processing succeed!": "Tudo certo!", + "Processing ignored!": "Processamento ignorado!", + "Failed to start camera": "Não foi possível iniciar a câmera", + "Please complete pop-up or close it.": "Finalize ou feche o pop-up", + "Getting unique faces": "Buscando rostos diferentes", + "Please select a source image first": "Selecione primeiro uma imagem de origem", + "No faces found in target": "Nenhum rosto encontrado na imagem de destino", + "Add": "Adicionar", + "Clear": "Limpar", + "Submit": "Enviar", + "Select source image": "Escolha a imagem de origem", + "Select target image": "Escolha a imagem de destino", + "Please provide mapping!": "Você precisa realizar o mapeamento!", + "Atleast 1 source with target is required!": "É necessária pelo menos uma origem com um destino!", + "At least 1 source with target is required!": "É necessária pelo menos uma origem com um destino!", + "Face could not be detected in last upload!": "Não conseguimos detectar o rosto na última imagem!", + "Select Camera:": "Escolher câmera:", + "All mappings cleared!": "Todos os mapeamentos foram removidos!", + "Mappings successfully submitted!": "Mapeamentos enviados com sucesso!", + "Source x Target Mapper is already open.": "O Mapeador de Origem x Destino já está aberto." +} From 6cb5de01f87d7ae7dd5a5146806cc039c02e96dd Mon Sep 17 00:00:00 2001 From: inwchamp1337 <115950933+inwchamp1337@users.noreply.github.com> Date: Mon, 19 May 2025 00:33:19 +0700 Subject: [PATCH 11/14] Added a Thai translation (#1284) * Added a Thai translation * Update th.json --- locales/th.json | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 locales/th.json diff --git a/locales/th.json b/locales/th.json new file mode 100644 index 0000000..d37a9e6 --- /dev/null +++ b/locales/th.json @@ -0,0 +1,45 @@ +{ + "Source x Target Mapper": "ตัวจับคู่ต้นทาง x ปลายทาง", + "select a source image": "เลือกรูปภาพต้นฉบับ", + "Preview": "ตัวอย่าง", + "select a target image or video": "เลือกรูปภาพหรือวิดีโอเป้าหมาย", + "save image output file": "บันทึกไฟล์รูปภาพ", + "save video output file": "บันทึกไฟล์วิดีโอ", + "select a target image": "เลือกรูปภาพเป้าหมาย", + "source": "ต้นฉบับ", + "Select a target": "เลือกเป้าหมาย", + "Select a face": "เลือกใบหน้า", + "Keep audio": "เก็บเสียง", + "Face Enhancer": "ปรับปรุงใบหน้า", + "Many faces": "หลายใบหน้า", + "Show FPS": "แสดง FPS", + "Keep fps": "คงค่า FPS", + "Keep frames": "คงค่าเฟรม", + "Fix Blueish Cam": "แก้ไขภาพอมฟ้าจากกล้อง", + "Mouth Mask": "มาสก์ปาก", + "Show Mouth Mask Box": "แสดงกรอบมาสก์ปาก", + "Start": "เริ่ม", + "Live": "สด", + "Destroy": "หยุด", + "Map faces": "จับคู่ใบหน้า", + "Processing...": "กำลังประมวลผล...", + "Processing succeed!": "ประมวลผลสำเร็จแล้ว!", + "Processing ignored!": "การประมวลผลถูกละเว้น", + "Failed to start camera": "ไม่สามารถเริ่มกล้องได้", + "Please complete pop-up or close it.": "โปรดดำเนินการในป๊อปอัปให้เสร็จสิ้น หรือปิด", + "Getting unique faces": "กำลังค้นหาใบหน้าที่ไม่ซ้ำกัน", + "Please select a source image first": "โปรดเลือกภาพต้นฉบับก่อน", + "No faces found in target": "ไม่พบใบหน้าในภาพเป้าหมาย", + "Add": "เพิ่ม", + "Clear": "ล้าง", + "Submit": "ส่ง", + "Select source image": "เลือกภาพต้นฉบับ", + "Select target image": "เลือกภาพเป้าหมาย", + "Please provide mapping!": "โปรดระบุการจับคู่!", + "At least 1 source with target is required!": "ต้องมีการจับคู่ต้นฉบับกับเป้าหมายอย่างน้อย 1 คู่!", + "Face could not be detected in last upload!": "ไม่สามารถตรวจพบใบหน้าในไฟล์อัปโหลดล่าสุด!", + "Select Camera:": "เลือกกล้อง:", + "All mappings cleared!": "ล้างการจับคู่ทั้งหมดแล้ว!", + "Mappings successfully submitted!": "ส่งการจับคู่สำเร็จแล้ว!", + "Source x Target Mapper is already open.": "ตัวจับคู่ต้นทาง x ปลายทาง เปิดอยู่แล้ว" +} \ No newline at end of file From 72049f3e91ddd4e6cff0f383307334998594f896 Mon Sep 17 00:00:00 2001 From: Chou Chamnan Date: Mon, 19 May 2025 00:33:53 +0700 Subject: [PATCH 12/14] Add khmer translation (#1291) * Add khmer language * Fix khmer language --------- Co-authored-by: Chamnan dev --- locales/km.json | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 locales/km.json diff --git a/locales/km.json b/locales/km.json new file mode 100644 index 0000000..17f01b7 --- /dev/null +++ b/locales/km.json @@ -0,0 +1,45 @@ +{ + "Source x Target Mapper": "ប្រភប x បន្ថែម Mapper", + "select a source image": "ជ្រើសរើសប្រភពរូបភាព", + "Preview": "បង្ហាញ", + "select a target image or video": "ជ្រើសរើសគោលដៅរូបភាពឬវីដេអូ", + "save image output file": "រក្សាទុកលទ្ធផលឯកសាររូបភាព", + "save video output file": "រក្សាទុកលទ្ធផលឯកសារវីដេអូ", + "select a target image": "ជ្រើសរើសគោលដៅរូបភាព", + "source": "ប្រភព", + "Select a target": "ជ្រើសរើសគោលដៅ", + "Select a face": "ជ្រើសរើសមុខ", + "Keep audio": "រម្លងសម្លេង", + "Face Enhancer": "ឧបករណ៍ពង្រឹងមុខ", + "Many faces": "ទម្រង់មុខច្រើន", + "Show FPS": "បង្ហាញ FPS", + "Keep fps": "រម្លង fps", + "Keep frames": "រម្លងទម្រង់", + "Fix Blueish Cam": "ជួសជុល Cam Blueish", + "Mouth Mask": "របាំងមាត់", + "Show Mouth Mask Box": "បង្ហាញប្រអប់របាំងមាត់", + "Start": "ចាប់ផ្ដើម", + "Live": "ផ្សាយផ្ទាល់", + "Destroy": "លុប", + "Map faces": "ផែនទីមុខ", + "Processing...": "កំពុងដំណើរការ...", + "Processing succeed!": "ការដំណើរការទទួលបានជោគជ័យ!", + "Processing ignored!": "ការដំណើរការមិនទទួលបានជោគជ័យ!", + "Failed to start camera": "បរាជ័យដើម្បីចាប់ផ្ដើមបើកកាមេរ៉ា", + "Please complete pop-up or close it.": "សូមបញ្ចប់ផ្ទាំងផុស ឬបិទវា.", + "Getting unique faces": "ការចាប់ផ្ដើមទម្រង់មុខប្លែក", + "Please select a source image first": "សូមជ្រើសរើសប្រភពរូបភាពដំបូង", + "No faces found in target": "រកអត់ឃើញមុខនៅក្នុងគោលដៅ", + "Add": "បន្ថែម", + "Clear": "សម្អាត", + "Submit": "បញ្ចូន", + "Select source image": "ជ្រើសរើសប្រភពរូបភាព", + "Select target image": "ជ្រើសរើសគោលដៅរូបភាព", + "Please provide mapping!": "សូមផ្ដល់នៅផែនទី", + "At least 1 source with target is required!": "ត្រូវការប្រភពយ៉ាងហោចណាស់ ១ ដែលមានគោលដៅ!", + "Face could not be detected in last upload!": "មុខមិនអាចភ្ជាប់នៅក្នុងការបង្ហេាះចុងក្រោយ!", + "Select Camera:": "ជ្រើសរើសកាមេរ៉ា", + "All mappings cleared!": "ផែនទីទាំងអស់ត្រូវបានសម្អាត!", + "Mappings successfully submitted!": "ផែនទីត្រូវបានបញ្ជូនជោគជ័យ!", + "Source x Target Mapper is already open.": "ប្រភព x Target Mapper បានបើករួចហើយ។" +} From fc312516e376c3e4b9489fa742da07b04c1c7d37 Mon Sep 17 00:00:00 2001 From: Jonah Hewett <73886297+j-hewett@users.noreply.github.com> Date: Wed, 21 May 2025 16:35:37 +0100 Subject: [PATCH 13/14] Add Spanish translation --- locales/es.json | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 locales/es.json diff --git a/locales/es.json b/locales/es.json new file mode 100644 index 0000000..19e175b --- /dev/null +++ b/locales/es.json @@ -0,0 +1,46 @@ +{ + "Source x Target Mapper": "Mapeador de fuente x destino", + "select a source image": "Seleccionar imagen fuente", + "Preview": "Vista previa", + "select a target image or video": "elegir un video o una imagen fuente", + "save image output file": "guardar imagen final", + "save video output file": "guardar video final", + "select a target image": "elegir una imagen objetiva", + "source": "fuente", + "Select a target": "Elegir un destino", + "Select a face": "Elegir una cara", + "Keep audio": "Mantener audio original", + "Face Enhancer": "Potenciador de caras", + "Many faces": "Varias caras", + "Show FPS": "Mostrar fps", + "Keep fps": "Mantener fps", + "Keep frames": "Mantener frames", + "Fix Blueish Cam": "Corregir tono azul de video", + "Mouth Mask": "Máscara de boca", + "Show Mouth Mask Box": "Mostrar área de la máscara de boca", + "Start": "Iniciar", + "Live": "En vivo", + "Destroy": "Borrar", + "Map faces": "Mapear caras", + "Processing...": "Procesando...", + "Processing succeed!": "¡Proceso terminado con éxito!", + "Processing ignored!": "¡Procesamiento omitido!", + "Failed to start camera": "No se pudo iniciar la cámara", + "Please complete pop-up or close it.": "Complete o cierre el pop-up", + "Getting unique faces": "Buscando caras únicas", + "Please select a source image first": "Primero, seleccione una imagen fuente", + "No faces found in target": "No se encontró una cara en el destino", + "Add": "Agregar", + "Clear": "Limpiar", + "Submit": "Enviar", + "Select source image": "Seleccionar imagen fuente", + "Select target image": "Seleccionar imagen destino", + "Please provide mapping!": "Por favor, proporcione un mapeo", + "At least 1 source with target is required!": "Se requiere al menos una fuente con un destino.", + "At least 1 source with target is required!": "Se requiere al menos una fuente con un destino.", + "Face could not be detected in last upload!": "¡No se pudo encontrar una cara en el último video o imagen!", + "Select Camera:": "Elegir cámara:", + "All mappings cleared!": "¡Todos los mapeos fueron borrados!", + "Mappings successfully submitted!": "Mapeos enviados con éxito!", + "Source x Target Mapper is already open.": "El mapeador de fuente x destino ya está abierto." +} \ No newline at end of file From 989106e9141a2c29f5180aaf74ea43fbf03fe358 Mon Sep 17 00:00:00 2001 From: Jasurbek Odilov <55162993+Jocund96@users.noreply.github.com> Date: Sun, 25 May 2025 21:28:07 +0200 Subject: [PATCH 14/14] Add files via upload --- locales/ru.json | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 locales/ru.json diff --git a/locales/ru.json b/locales/ru.json new file mode 100644 index 0000000..ebaa168 --- /dev/null +++ b/locales/ru.json @@ -0,0 +1,45 @@ +{ + "Source x Target Mapper": "Сопоставитель Источник x Цель", + "select a source image": "выберите исходное изображение", + "Preview": "Предпросмотр", + "select a target image or video": "выберите целевое изображение или видео", + "save image output file": "сохранить выходной файл изображения", + "save video output file": "сохранить выходной файл видео", + "select a target image": "выберите целевое изображение", + "source": "источник", + "Select a target": "Выберите целевое изображение", + "Select a face": "Выберите лицо", + "Keep audio": "Сохранить аудио", + "Face Enhancer": "Улучшение лица", + "Many faces": "Несколько лиц", + "Show FPS": "Показать FPS", + "Keep fps": "Сохранить FPS", + "Keep frames": "Сохранить кадры", + "Fix Blueish Cam": "Исправить синеву камеры", + "Mouth Mask": "Маска рта", + "Show Mouth Mask Box": "Показать рамку маски рта", + "Start": "Старт", + "Live": "В реальном времени", + "Destroy": "Остановить", + "Map faces": "Сопоставить лица", + "Processing...": "Обработка...", + "Processing succeed!": "Обработка успешна!", + "Processing ignored!": "Обработка проигнорирована!", + "Failed to start camera": "Не удалось запустить камеру", + "Please complete pop-up or close it.": "Пожалуйста, заполните всплывающее окно или закройте его.", + "Getting unique faces": "Получение уникальных лиц", + "Please select a source image first": "Сначала выберите исходное изображение, пожалуйста", + "No faces found in target": "В целевом изображении не найдено лиц", + "Add": "Добавить", + "Clear": "Очистить", + "Submit": "Отправить", + "Select source image": "Выбрать исходное изображение", + "Select target image": "Выбрать целевое изображение", + "Please provide mapping!": "Пожалуйста, укажите сопоставление!", + "At least 1 source with target is required!": "Требуется хотя бы 1 источник с целью!", + "Face could not be detected in last upload!": "Лицо не обнаружено в последнем загруженном изображении!", + "Select Camera:": "Выберите камеру:", + "All mappings cleared!": "Все сопоставления очищены!", + "Mappings successfully submitted!": "Сопоставления успешно отправлены!", + "Source x Target Mapper is already open.": "Сопоставитель Источник-Цель уже открыт." +} \ No newline at end of file