From 234f4740229f59f553594cec69ea4eb7bcdc9577 Mon Sep 17 00:00:00 2001 From: "Sravika Padakanti (MSS2020079)" Date: Sat, 18 Jan 2025 11:40:31 +0000 Subject: [PATCH 001/114] Translated using Weblate (Hindi) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/hi/ --- libretranslate/locales/hi/LC_MESSAGES/messages.po | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/libretranslate/locales/hi/LC_MESSAGES/messages.po b/libretranslate/locales/hi/LC_MESSAGES/messages.po index 7238216..5707724 100644 --- a/libretranslate/locales/hi/LC_MESSAGES/messages.po +++ b/libretranslate/locales/hi/LC_MESSAGES/messages.po @@ -9,14 +9,17 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.3.9\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-10-16 23:47+0200\n" -"PO-Revision-Date: 2024-02-24 17:01+0000\n" -"Last-Translator: Scrambled777 \n" -"Language-Team: Hindi \n" +"PO-Revision-Date: 2025-01-19 00:28+0000\n" +"Last-Translator: \"Sravika Padakanti (MSS2020079)\" " +"\n" +"Language-Team: Hindi \n" "Language: hi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.10-dev\n" "Generated-By: Babel 2.16.0\n" #: libretranslate/app.py:80 @@ -104,7 +107,7 @@ msgstr "पाठ का अनुवाद नहीं कर सकते: %( #: libretranslate/app.py:811 libretranslate/app.py:872 msgid "Files translation are disabled on this server." -msgstr "इस सर्वर पर फ़ाइलें अनुवाद अक्षम हैं।." +msgstr "इस सर्वर पर फ़ाइलें अनुवाद अक्षम हैं।।" #: libretranslate/app.py:826 msgid "Invalid request: empty file" From 39a8ce8070fadcd43893d50f310006ebd420c937 Mon Sep 17 00:00:00 2001 From: Blueberry Date: Sat, 18 Jan 2025 09:10:29 +0000 Subject: [PATCH 002/114] Translated using Weblate (Russian) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/ru/ --- libretranslate/locales/ru/LC_MESSAGES/messages.po | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/libretranslate/locales/ru/LC_MESSAGES/messages.po b/libretranslate/locales/ru/LC_MESSAGES/messages.po index b3b42f3..a0c6a2b 100644 --- a/libretranslate/locales/ru/LC_MESSAGES/messages.po +++ b/libretranslate/locales/ru/LC_MESSAGES/messages.po @@ -9,9 +9,8 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.3.9\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-10-16 23:47+0200\n" -"PO-Revision-Date: 2024-10-31 15:00+0000\n" -"Last-Translator: 439JBYL80IGQTF25UXNR0X1BG <439JBYL80IGQTF25UXNR0X1BG@users." -"noreply.hosted.weblate.org>\n" +"PO-Revision-Date: 2025-01-19 00:28+0000\n" +"Last-Translator: Blueberry \n" "Language-Team: Russian \n" "Language: ru\n" @@ -20,7 +19,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Weblate 5.8.2-dev\n" +"X-Generator: Weblate 5.10-dev\n" "Generated-By: Babel 2.16.0\n" #: libretranslate/app.py:80 @@ -29,7 +28,7 @@ msgstr "Неверный формат JSON" #: libretranslate/app.py:180 libretranslate/templates/app.js.template:467 msgid "Auto Detect" -msgstr "автоопределение языка" +msgstr "[автоопределение языка]" #: libretranslate/app.py:273 msgid "Unauthorized" From 24d88d162cf3a62219cda43aff46169de2224440 Mon Sep 17 00:00:00 2001 From: Ente Date: Sun, 19 Jan 2025 09:41:49 +0100 Subject: [PATCH 003/114] Change the default for ARGOS_DEVICE_TYPE to auto --- docker/cuda.Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/cuda.Dockerfile b/docker/cuda.Dockerfile index 57b52c6..9ce0751 100644 --- a/docker/cuda.Dockerfile +++ b/docker/cuda.Dockerfile @@ -1,6 +1,6 @@ FROM nvidia/cuda:12.4.1-devel-ubuntu20.04 -ENV ARGOS_DEVICE_TYPE cuda +ENV ARGOS_DEVICE_TYPE auto ARG with_models=false ARG models="" From 0fb8494516f69ad04345172d715484705adba030 Mon Sep 17 00:00:00 2001 From: Poesty Li Date: Wed, 22 Jan 2025 04:37:18 +0000 Subject: [PATCH 004/114] Translated using Weblate (Chinese (Simplified Han script)) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/zh_Hans/ --- libretranslate/locales/zh/LC_MESSAGES/messages.po | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/libretranslate/locales/zh/LC_MESSAGES/messages.po b/libretranslate/locales/zh/LC_MESSAGES/messages.po index 2765b41..4f6686c 100644 --- a/libretranslate/locales/zh/LC_MESSAGES/messages.po +++ b/libretranslate/locales/zh/LC_MESSAGES/messages.po @@ -9,8 +9,8 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.3.9\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-10-16 23:47+0200\n" -"PO-Revision-Date: 2024-11-21 11:36+0000\n" -"Last-Translator: la-lh <535432627@qq.com>\n" +"PO-Revision-Date: 2025-01-22 05:16+0000\n" +"Last-Translator: Poesty Li \n" "Language-Team: Chinese (Simplified Han script) \n" "Language: zh\n" @@ -18,11 +18,10 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 5.9-dev\n" +"X-Generator: Weblate 5.10-dev\n" "Generated-By: Babel 2.16.0\n" #: libretranslate/app.py:80 -#, fuzzy msgid "Invalid JSON format" msgstr "无效的 JSON 格式" From 6d8e1bd5e4fc599a75f0627d0949903239477dd9 Mon Sep 17 00:00:00 2001 From: Franco Lombardo Date: Fri, 24 Jan 2025 22:44:06 +0100 Subject: [PATCH 005/114] Changes for docker --- docker-compose.yml | 6 ++---- docker/Dockerfile | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 707d042..1156028 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,18 +1,16 @@ -version: "3" - services: libretranslate: container_name: libretranslate build: context: . - dockerfile: docker/Dockerfile + dockerfile: ./docker/Dockerfile restart: unless-stopped ports: - "5000:5000" ## Uncomment this for logging in docker compose logs # tty: true healthcheck: - test: ['CMD-SHELL', './venv/bin/python scripts/healthcheck.py'] + test: ['CMD-SHELL', './venv/bin/python scripts/healthcheck.py'] ## Uncomment above command and define your args if necessary # command: --ssl --ga-id MY-GA-ID --req-limit 100 --char-limit 500 ## Uncomment this section and the libretranslate_api_keys volume if you want to backup your API keys diff --git a/docker/Dockerfile b/docker/Dockerfile index 856390e..7e62b79 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.11.9-slim-bullseye as builder +FROM python:3.11.9-slim-bullseye AS builder WORKDIR /app From 4cbed58c7641cdec470eb92fc02697ad8d87f59b Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Mon, 27 Jan 2025 18:05:27 +0800 Subject: [PATCH 006/114] Update Dockerfile Python base image to mitigate some security issues --- docker/Dockerfile | 4 ++-- docker/arm.Dockerfile | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 7e62b79..304d305 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.11.9-slim-bullseye AS builder +FROM python:3.11.11-slim-bullseye AS builder WORKDIR /app @@ -20,7 +20,7 @@ RUN ./venv/bin/pip install Babel==2.12.1 && ./venv/bin/python scripts/compile_lo && ./venv/bin/pip install . \ && ./venv/bin/pip cache purge -FROM python:3.11.9-slim-bullseye +FROM python:3.11.11-slim-bullseye ARG with_models=false ARG models="" diff --git a/docker/arm.Dockerfile b/docker/arm.Dockerfile index a4d3c50..8788f65 100644 --- a/docker/arm.Dockerfile +++ b/docker/arm.Dockerfile @@ -1,4 +1,4 @@ -FROM arm64v8/python:3.11.9-slim-bullseye as builder +FROM arm64v8/python:3.11.11-slim-bullseye as builder WORKDIR /app @@ -20,7 +20,7 @@ RUN ./venv/bin/pip install Babel==2.12.1 && ./venv/bin/python scripts/compile_lo && ./venv/bin/pip install . \ && ./venv/bin/pip cache purge -FROM arm64v8/python:3.11.9-slim-bullseye +FROM arm64v8/python:3.11.11-slim-bullseye ARG with_models=false ARG models="" From af1a459da2736a051dfd4010f97377a1ff97fdd7 Mon Sep 17 00:00:00 2001 From: ButterflyOfFire Date: Thu, 30 Jan 2025 08:02:58 +0000 Subject: [PATCH 007/114] Translated using Weblate (French) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/fr/ --- libretranslate/locales/fr/LC_MESSAGES/messages.po | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/libretranslate/locales/fr/LC_MESSAGES/messages.po b/libretranslate/locales/fr/LC_MESSAGES/messages.po index c115bd7..ddba99d 100644 --- a/libretranslate/locales/fr/LC_MESSAGES/messages.po +++ b/libretranslate/locales/fr/LC_MESSAGES/messages.po @@ -9,15 +9,16 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.3.9\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-10-16 23:47+0200\n" -"PO-Revision-Date: 2024-10-09 03:16+0000\n" -"Last-Translator: Olivier Dragon \n" +"PO-Revision-Date: 2025-01-31 09:02+0000\n" +"Last-Translator: ButterflyOfFire \n" +"Language-Team: French \n" "Language: fr\n" -"Language-Team: French " -"\n" -"Plural-Forms: nplurals=2; plural=n > 1;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 5.10-dev\n" "Generated-By: Babel 2.16.0\n" #: libretranslate/app.py:80 @@ -143,7 +144,7 @@ msgstr "azéri" #: libretranslate/locales/.langs.py:5 msgid "Basque" -msgstr "" +msgstr "Basque" #: libretranslate/locales/.langs.py:6 msgid "Bengali" @@ -763,4 +764,3 @@ msgstr "Contributeurs %(libretranslate)s" #~ msgid "get an API key" #~ msgstr "obtenir une clé d'API" - From dc243d3767382ca252102d69f59c7813374fed79 Mon Sep 17 00:00:00 2001 From: Ricky Tigg Date: Fri, 31 Jan 2025 14:28:19 +0000 Subject: [PATCH 008/114] Translated using Weblate (Finnish) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/fi/ --- libretranslate/locales/fi/LC_MESSAGES/messages.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libretranslate/locales/fi/LC_MESSAGES/messages.po b/libretranslate/locales/fi/LC_MESSAGES/messages.po index 27226ac..c91f45d 100644 --- a/libretranslate/locales/fi/LC_MESSAGES/messages.po +++ b/libretranslate/locales/fi/LC_MESSAGES/messages.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.3.9\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-10-16 23:47+0200\n" -"PO-Revision-Date: 2024-12-03 12:00+0000\n" +"PO-Revision-Date: 2025-02-01 14:01+0000\n" "Last-Translator: Ricky Tigg \n" "Language-Team: Finnish \n" @@ -18,7 +18,7 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.9-dev\n" +"X-Generator: Weblate 5.10-dev\n" "Generated-By: Babel 2.16.0\n" #: libretranslate/app.py:80 @@ -119,7 +119,7 @@ msgstr "Virheellinen pyyntö: tiedostomuotoa ei tueta" #: libretranslate/app.py:880 msgid "Invalid filename" -msgstr "Virheellinen tiedostonimi" +msgstr "Virheellinen tiedoston nimi" #: libretranslate/app.py:1122 msgid "Suggestions are disabled on this server." From 871674c7ac06e3c6a1da2f295a17c28845e26516 Mon Sep 17 00:00:00 2001 From: Bruno Fragoso Date: Fri, 31 Jan 2025 13:04:31 +0000 Subject: [PATCH 009/114] Translated using Weblate (Portuguese) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/pt/ --- .../locales/pt/LC_MESSAGES/messages.po | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/libretranslate/locales/pt/LC_MESSAGES/messages.po b/libretranslate/locales/pt/LC_MESSAGES/messages.po index 72e10f7..0cc4d50 100644 --- a/libretranslate/locales/pt/LC_MESSAGES/messages.po +++ b/libretranslate/locales/pt/LC_MESSAGES/messages.po @@ -9,15 +9,16 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.3.9\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-10-16 23:47+0200\n" -"PO-Revision-Date: 2024-10-13 13:54+0000\n" -"Last-Translator: João Palmeiro \n" +"PO-Revision-Date: 2025-02-01 14:01+0000\n" +"Last-Translator: Bruno Fragoso \n" +"Language-Team: Portuguese \n" "Language: pt\n" -"Language-Team: Portuguese " -"\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.10-dev\n" "Generated-By: Babel 2.16.0\n" #: libretranslate/app.py:80 @@ -141,7 +142,7 @@ msgstr "Azerbaijão" #: libretranslate/locales/.langs.py:5 msgid "Basque" -msgstr "" +msgstr "Basco" #: libretranslate/locales/.langs.py:6 msgid "Bengali" @@ -193,7 +194,7 @@ msgstr "Francês" #: libretranslate/locales/.langs.py:18 msgid "Galician" -msgstr "" +msgstr "Galego" #: libretranslate/locales/.langs.py:19 msgid "German" @@ -760,4 +761,3 @@ msgstr "Contribuintes %(libretranslate)s" #~ msgid "get an API key" #~ msgstr "obter uma chave API" - From e8080c493afb1c849354124e60c63e46bc8cd661 Mon Sep 17 00:00:00 2001 From: ChayapholSmile Date: Sun, 2 Feb 2025 07:27:18 +0000 Subject: [PATCH 010/114] Translated using Weblate (Thai) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/th/ --- .../locales/th/LC_MESSAGES/messages.po | 43 ++++++++++--------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/libretranslate/locales/th/LC_MESSAGES/messages.po b/libretranslate/locales/th/LC_MESSAGES/messages.po index 6b244e1..d5ee964 100644 --- a/libretranslate/locales/th/LC_MESSAGES/messages.po +++ b/libretranslate/locales/th/LC_MESSAGES/messages.po @@ -9,19 +9,21 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.6.1\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-10-16 23:47+0200\n" -"PO-Revision-Date: 2024-08-08 13:03-0400\n" -"Last-Translator: FULL NAME \n" -"Language-Team: th \n" +"PO-Revision-Date: 2025-02-02 21:36+0000\n" +"Last-Translator: ChayapholSmile \n" +"Language-Team: Thai \n" "Language: th\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 5.10-dev\n" "Generated-By: Babel 2.16.0\n" #: libretranslate/app.py:80 msgid "Invalid JSON format" -msgstr "รูปแบบ Json ไม่ถูกต้อง" +msgstr "รูปแบบ JSON ไม่ถูกต้อง" #: libretranslate/app.py:180 libretranslate/templates/app.js.template:467 msgid "Auto Detect" @@ -50,7 +52,7 @@ msgstr "ไปยัง %(url)s เพื่อเอากุญแจ API" #: libretranslate/app.py:373 msgid "Slowdown:" -msgstr "ชะลอ:" +msgstr "ชะลอ :" #: libretranslate/app.py:606 libretranslate/app.py:608 #: libretranslate/app.py:610 libretranslate/app.py:819 @@ -60,24 +62,23 @@ msgstr "ชะลอ:" #: libretranslate/app.py:1143 #, python-format msgid "Invalid request: missing %(name)s parameter" -msgstr "การร้องขอไม่ถูกต้อง: ไม่พบ %(name)s พารามิเตอร์" +msgstr "การร้องขอไม่ถูกต้อง : ไม่พบ %(name)s พารามิเตอร์" #: libretranslate/app.py:615 #, python-format msgid "Invalid request: %(name)s parameter is not a number" -msgstr "การร้องขอไม่ถูกต้อง: %(name)s พารามิเตอร์ไม่ใช่ตัวเลข" +msgstr "การร้องขอไม่ถูกต้อง : %(name)s พารามิเตอร์ไม่ใช่ตัวเลข" #: libretranslate/app.py:618 #, python-format msgid "Invalid request: %(name)s parameter must be <= %(value)s" -msgstr "การร้องขอไม่ถูกต้อง: %(name)s พารามิเตอร์ต้องเป็น <= %(value)s" +msgstr "การร้องขอไม่ถูกต้อง : %(name)s พารามิเตอร์ต้องเป็น <= %(value)s" #: libretranslate/app.py:635 libretranslate/app.py:645 #, python-format msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)" msgstr "" -"การร้องขอไม่ถูกต้อง: การร้องขอ " -"(help)%(size)sเกินขีดจํากัดของข้อความ%(limit)s)" +"การร้องขอไม่ถูกต้อง : การร้องขอ %(size)s เกินขีดจํากัดของข้อความ %(limit)s)" #: libretranslate/app.py:660 libretranslate/app.py:665 #: libretranslate/app.py:834 libretranslate/app.py:839 @@ -100,7 +101,7 @@ msgstr "%(tname)s (%(tcode)sไม่มีภาษาเป้าหมาย #: libretranslate/app.py:724 #, python-format msgid "Cannot translate text: %(text)s" -msgstr "ไม่สามารถแปลข้อความ: %(text)s" +msgstr "ไม่สามารถแปลข้อความ : %(text)s" #: libretranslate/app.py:811 libretranslate/app.py:872 msgid "Files translation are disabled on this server." @@ -108,11 +109,11 @@ msgstr "การแปลของแฟ้มถูกปิดการใช #: libretranslate/app.py:826 msgid "Invalid request: empty file" -msgstr "การร้องขอไม่ถูกต้อง:" +msgstr "การร้องขอไม่ถูกต้อง : ไฟล์ว่างเปล่า" #: libretranslate/app.py:829 msgid "Invalid request: file format not supported" -msgstr "การร้องขอไม่ถูกต้อง: ยังไม่รองรับรูปแบบของแฟ้ม" +msgstr "การร้องขอไม่ถูกต้อง : ยังไม่รองรับรูปแบบของแฟ้ม" #: libretranslate/app.py:880 msgid "Invalid filename" @@ -140,7 +141,7 @@ msgstr "อาร์เซอร์ไบจัน" #: libretranslate/locales/.langs.py:5 msgid "Basque" -msgstr "บาสก์Name" +msgstr "บาสก์" #: libretranslate/locales/.langs.py:6 msgid "Bengali" @@ -152,7 +153,7 @@ msgstr "บัลแกเรีย" #: libretranslate/locales/.langs.py:8 msgid "Catalan" -msgstr "ภาษาคาตาลันName" +msgstr "คาตาลัน" #: libretranslate/locales/.langs.py:9 msgid "Chinese" @@ -160,11 +161,11 @@ msgstr "จีน" #: libretranslate/locales/.langs.py:10 msgid "Chinese (traditional)" -msgstr "จีน (ประเพณี)" +msgstr "จีน (ดั้งเดิม)" #: libretranslate/locales/.langs.py:11 msgid "Czech" -msgstr "ภาษาเชคName" +msgstr "เชค" #: libretranslate/locales/.langs.py:12 msgid "Danish" @@ -172,7 +173,7 @@ msgstr "เดนมาร์ก" #: libretranslate/locales/.langs.py:13 msgid "Dutch" -msgstr "ภาษาดัตช์Name" +msgstr "ดัตช์" #: libretranslate/locales/.langs.py:14 msgid "Esperanto" @@ -180,7 +181,7 @@ msgstr "เอสเปรันโต" #: libretranslate/locales/.langs.py:15 msgid "Estonian" -msgstr "ภาษาเอสโตเนียName" +msgstr "เอสโตเนีย" #: libretranslate/locales/.langs.py:16 msgid "Finnish" @@ -192,7 +193,7 @@ msgstr "ฝรั่งเศส" #: libretranslate/locales/.langs.py:18 msgid "Galician" -msgstr "ภาษากาลิเซียName" +msgstr "กาลิเซีย" #: libretranslate/locales/.langs.py:19 msgid "German" @@ -208,7 +209,7 @@ msgstr "ฮีบรู" #: libretranslate/locales/.langs.py:22 msgid "Hindi" -msgstr "ภาษาฮินดูName" +msgstr "ฮินดู" #: libretranslate/locales/.langs.py:23 msgid "Hungarian" From 1a92713339280b1eb123b049add0077d1854f34d Mon Sep 17 00:00:00 2001 From: Blueberry Date: Mon, 3 Feb 2025 18:47:09 +0000 Subject: [PATCH 011/114] Translated using Weblate (Russian) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/ru/ --- .../locales/ru/LC_MESSAGES/messages.po | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/libretranslate/locales/ru/LC_MESSAGES/messages.po b/libretranslate/locales/ru/LC_MESSAGES/messages.po index a0c6a2b..22db5cf 100644 --- a/libretranslate/locales/ru/LC_MESSAGES/messages.po +++ b/libretranslate/locales/ru/LC_MESSAGES/messages.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.3.9\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-10-16 23:47+0200\n" -"PO-Revision-Date: 2025-01-19 00:28+0000\n" +"PO-Revision-Date: 2025-02-04 19:02+0000\n" "Last-Translator: Blueberry \n" "Language-Team: Russian \n" @@ -40,16 +40,16 @@ msgstr "Слишком много нарушений предела запрос #: libretranslate/app.py:298 msgid "Invalid API key" -msgstr "Недействительный ключ API" +msgstr "Недействительный API-ключ" #: libretranslate/app.py:324 msgid "Please contact the server operator to get an API key" -msgstr "Пожалуйста, свяжитесь с оператором сервера, чтобы получить ключ API" +msgstr "Пожалуйста, свяжитесь с оператором сервера, чтобы получить API-ключ" #: libretranslate/app.py:326 #, python-format msgid "Visit %(url)s to get an API key" -msgstr "Посетите %(url)s для получения ключа API" +msgstr "Зайдите на %(url)s для получения API-ключа" #: libretranslate/app.py:373 msgid "Slowdown:" @@ -399,7 +399,7 @@ msgstr "Желаемое число других переводов" #: libretranslate/locales/.swag.py:18 msgid "API key" -msgstr "Ключ API" +msgstr "API-ключ" #: libretranslate/locales/.swag.py:19 msgid "Translate file from a language to another" @@ -515,11 +515,11 @@ msgstr "Превышаемое время ожидания перевода ин #: libretranslate/locales/.swag.py:47 msgid "Whether the API key database is enabled." -msgstr "При включённой базе данных ключей API." +msgstr "При включённой базе данных API-ключей." #: libretranslate/locales/.swag.py:48 msgid "Whether an API key is required." -msgstr "При требовании ключа API." +msgstr "При требовании API-ключа." #: libretranslate/locales/.swag.py:49 msgid "Whether submitting suggestions is enabled." @@ -576,11 +576,11 @@ msgstr "Нет языков. Вы правильно установили мод #: libretranslate/templates/app.js.template:530 #, python-format msgid "Type in your API Key. If you need an API key, %(instructions)s" -msgstr "Введите ваш ключ API. Если вам нужен ключ API — %(instructions)s" +msgstr "Введите ваш API-ключ. Если вам нужен ключ — %(instructions)s" #: libretranslate/templates/app.js.template:530 msgid "press the \"Get API Key\" link." -msgstr "нажмите на ссылку «Получить ключ API»." +msgstr "нажмите на ссылку «Получить API-ключ»." #: libretranslate/templates/app.js.template:530 msgid "contact the server operator." @@ -616,7 +616,7 @@ msgstr "Документация API" #: libretranslate/templates/index.html:69 msgid "Get API Key" -msgstr "Получить ключ API" +msgstr "Получить API-ключ" #: libretranslate/templates/index.html:71 msgid "GitHub" @@ -624,7 +624,7 @@ msgstr "GitHub" #: libretranslate/templates/index.html:73 msgid "Set API Key" -msgstr "Установить ключ API" +msgstr "Установить API-ключ" #: libretranslate/templates/index.html:75 msgid "Change language" From bd900655b6350a6d2a304c03188cc77dfcffdbbd Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Thu, 13 Feb 2025 00:55:02 +0800 Subject: [PATCH 012/114] =?UTF-8?q?=F0=9F=8C=8F=20i18n:=20Improve=20Tradit?= =?UTF-8?q?ional=20Chinese=20translation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../locales/zh_Hant/LC_MESSAGES/messages.po | 42 +++++++++---------- 1 file changed, 19 insertions(+), 23 deletions(-) diff --git a/libretranslate/locales/zh_Hant/LC_MESSAGES/messages.po b/libretranslate/locales/zh_Hant/LC_MESSAGES/messages.po index 2b50261..d462ec0 100644 --- a/libretranslate/locales/zh_Hant/LC_MESSAGES/messages.po +++ b/libretranslate/locales/zh_Hant/LC_MESSAGES/messages.po @@ -15,7 +15,7 @@ msgstr "" "projects/libretranslate/app/zh_Hant/>\n" "Language: zh_Hant\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 5.9-dev\n" @@ -93,8 +93,8 @@ msgstr "不支援 %(format)s 格式" #: libretranslate/app.py:680 libretranslate/app.py:704 #, python-format msgid "" -"%(tname)s (%(tcode)s) is not available as a target language from " -"%(sname)s (%(scode)s)" +"%(tname)s (%(tcode)s) is not available as a target language from %(sname)s " +"(%(scode)s)" msgstr "%(tname)s(%(tcode)s)不能作為 %(sname)s(%(scode)s)的目標語言" #: libretranslate/app.py:724 @@ -136,7 +136,7 @@ msgstr "阿拉伯文" #: libretranslate/locales/.langs.py:4 msgid "Azerbaijani" -msgstr "阿塞拜疆語" +msgstr "亞塞拜然語" #: libretranslate/locales/.langs.py:5 msgid "Basque" @@ -224,7 +224,7 @@ msgstr "愛爾蘭文" #: libretranslate/locales/.langs.py:26 msgid "Italian" -msgstr "意大利文" +msgstr "義大利文" #: libretranslate/locales/.langs.py:27 msgid "Japanese" @@ -298,10 +298,6 @@ msgstr "泰文" msgid "Turkish" msgstr "土耳其文" -#: libretranslate/locales/.langs.py:45 -msgid "Ukranian" -msgstr "烏克蘭文" - #: libretranslate/locales/.langs.py:46 msgid "Urdu" msgstr "烏爾都文" @@ -410,7 +406,7 @@ msgstr "需要翻譯的檔案" #: libretranslate/locales/.swag.py:22 msgid "Detect the language of a single text" -msgstr "檢測單一文字的語言" +msgstr "偵測單一文字的語言" #: libretranslate/locales/.swag.py:23 msgid "Detections" @@ -422,7 +418,7 @@ msgstr "錯誤偵測" #: libretranslate/locales/.swag.py:25 msgid "Text to detect" -msgstr "需要檢測的文字" +msgstr "需要偵測的文字" #: libretranslate/locales/.swag.py:26 msgid "Retrieve frontend specific settings" @@ -558,8 +554,8 @@ msgstr "已複製" #: libretranslate/templates/app.js.template:339 msgid "" -"Thanks for your correction. Note the suggestion will not take effect " -"right away." +"Thanks for your correction. Note the suggestion will not take effect right " +"away." msgstr "感謝您的更正。注意此建議將不會立即生效。" #: libretranslate/templates/app.js.template:463 @@ -582,14 +578,16 @@ msgstr "聯絡伺服器管理員。" #: libretranslate/templates/index.html:9 libretranslate/templates/index.html:27 #: libretranslate/templates/index.html:338 msgid "Free and Open Source Machine Translation API" -msgstr "免費開源的機器翻譯 API" +msgstr "自由且開源的機器翻譯 API" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline " -"capable and easy to setup. Run your own API server in just a few minutes." -msgstr "免費開源的機器翻譯 API。自建,支援離線且易於設定。只需幾分鐘即可運行您自己的 API 伺服器。" +"Free and Open Source Machine Translation API. Self-hosted, offline capable " +"and easy to setup. Run your own API server in just a few minutes." +msgstr "" +"自由且開源的機器翻譯 API。可自行架設,支援離線使用,且安裝簡便。只需幾分鐘即" +"可部署並啟動您的專屬 API 伺服器。" #: libretranslate/templates/index.html:11 msgid "translation" @@ -730,14 +728,12 @@ msgstr "由 %(contributors)s 用 %(heart)s 製作並且由 %(engine)s 驅動" msgid "%(libretranslate)s Contributors" msgstr "%(libretranslate)s 貢獻者" -#~ msgid "Vietnamese" -#~ msgstr "越南文" +#~ msgid "Ukranian" +#~ msgstr "烏克蘭文" #~ msgid "" -#~ "This public API should be used for" -#~ " testing, personal or infrequent use. " -#~ "If you're going to run an " -#~ "application in production, please " +#~ "This public API should be used for testing, personal or infrequent use. " +#~ "If you're going to run an application in production, please " #~ "%(host_server)s or %(get_api_key)s." #~ msgstr "" #~ "此公共 API 僅適用於測試、個人或不經常使用。如果您將在正式環境中使用,請 " From 7c03729d1f20e09810f9164caafe5de49bd1c95a Mon Sep 17 00:00:00 2001 From: Can YM Date: Wed, 12 Feb 2025 13:14:28 +0000 Subject: [PATCH 013/114] Translated using Weblate (Turkish) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/tr/ --- .../locales/tr/LC_MESSAGES/messages.po | 40 ++++++++++++++++--- 1 file changed, 35 insertions(+), 5 deletions(-) diff --git a/libretranslate/locales/tr/LC_MESSAGES/messages.po b/libretranslate/locales/tr/LC_MESSAGES/messages.po index b995fd4..6f608a8 100644 --- a/libretranslate/locales/tr/LC_MESSAGES/messages.po +++ b/libretranslate/locales/tr/LC_MESSAGES/messages.po @@ -9,14 +9,16 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.3.9\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-10-16 23:47+0200\n" -"PO-Revision-Date: 2024-09-22 23:14+0000\n" -"Last-Translator: Oğuz Ersen \n" -"Language-Team: Turkish \n" +"PO-Revision-Date: 2025-02-13 14:01+0000\n" +"Last-Translator: Can YM \n" +"Language-Team: Turkish \n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 5.10-dev\n" "Generated-By: Babel 2.16.0\n" #: libretranslate/app.py:80 @@ -24,12 +26,40 @@ msgid "Invalid JSON format" msgstr "Geçersiz JSON biçimi" #: libretranslate/app.py:180 libretranslate/templates/app.js.template:467 +#, fuzzy msgid "Auto Detect" -msgstr "Otomatik Algıla" +msgstr "" +"Bir zamanlar, insanlığın yıldızlara hükmettiği uzak bir gelecekte, Eternia " +"adında bir gemi vardı. Bu gemi sıradan bir uzay aracı değildi; sonsuz bir " +"yolculuğa çıkmak, evrenin en uzak köşelerini keşfetmek, yeni dünyalar bulmak " +"ve kainatın sırlarını çözmek için tasarlanmıştı.\n" +"\n" +"Kaptan Elias Vance, bilim insanları, mühendisler ve maceraperestlerden " +"oluşan mürettebatına liderlik ediyordu. Onların görevi, kendi galaksilerinin " +"ötesinde yaşanabilir bir gezegen bulmaktı. Nesiller Eternia'da doğmuş, " +"büyümüş ve bu gemiyi yuva olarak benimsemişti.\n" +"\n" +"Bir gün, gemi garip bir sinyal aldı. Daha önce karşılaşmadıkları bir şeydi. " +"Nabız gibi atan ritmik bir dizi… Sanki birisi—ya da bir şey—onlarla " +"iletişime geçmeye çalışıyordu. Baş bilim insanı Dr. Liana Mercer, bu sinyali " +"inceledi ve içindeki matematiksel yapının doğaüstü bir karmaşıklığa sahip " +"olduğunu keşfetti. Bu, bir mesajdı." #: libretranslate/app.py:273 msgid "Unauthorized" -msgstr "Yetkisiz" +msgstr "" +"Bir zamanlar, insanlığın yıldızlara hükmettiği uzak bir gelecekte, Eternia " +"adında bir gemi vardı. Bu gemi sıradan bir uzay aracı değildi; sonsuz bir " +"yolculuğa çıkmak, evrenin en uzak köşelerini keşfetmek, yeni dünyalar bulmak " +"ve kainatın sırlarını çözmek için tasarlanmıştı.Kaptan Elias Vance, bilim " +"insanları, mühendisler ve maceraperestlerden oluşan mürettebatına liderlik " +"ediyordu. Onların görevi, kendi galaksilerinin ötesinde yaşanabilir bir " +"gezegen bulmaktı. Nesiller Eternia'da doğmuş, büyümüş ve bu gemiyi yuva " +"olarak benimsemişti. Bir gün, gemi garip bir sinyal aldı. Daha önce " +"karşılaşmadıkları bir şeydi. Nabız gibi atan ritmik bir dizi… Sanki birisi—" +"ya da bir şey—onlarla iletişime geçmeye çalışıyordu. Baş bilim insanı Dr. " +"Liana Mercer, bu sinyali inceledi ve içindeki matematiksel yapının doğaüstü " +"bir karmaşıklığa sahip olduğunu keşfetti. Bu, bir mesajdı." #: libretranslate/app.py:291 msgid "Too many request limits violations" From 251bd63743e46d6f36ff841a22d9de0990746e98 Mon Sep 17 00:00:00 2001 From: Can YM Date: Mon, 17 Feb 2025 11:26:10 +0000 Subject: [PATCH 014/114] Translated using Weblate (Turkish) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/tr/ --- libretranslate/locales/tr/LC_MESSAGES/messages.po | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/libretranslate/locales/tr/LC_MESSAGES/messages.po b/libretranslate/locales/tr/LC_MESSAGES/messages.po index 6f608a8..e3f768a 100644 --- a/libretranslate/locales/tr/LC_MESSAGES/messages.po +++ b/libretranslate/locales/tr/LC_MESSAGES/messages.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.3.9\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-10-16 23:47+0200\n" -"PO-Revision-Date: 2025-02-13 14:01+0000\n" +"PO-Revision-Date: 2025-02-18 12:02+0000\n" "Last-Translator: Can YM \n" "Language-Team: Turkish \n" @@ -18,22 +18,20 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 5.10-dev\n" +"X-Generator: Weblate 5.10.1-dev\n" "Generated-By: Babel 2.16.0\n" #: libretranslate/app.py:80 msgid "Invalid JSON format" -msgstr "Geçersiz JSON biçimi" +msgstr "selamlar benim Adım Can. 23 Yaşındayım" #: libretranslate/app.py:180 libretranslate/templates/app.js.template:467 -#, fuzzy msgid "Auto Detect" msgstr "" "Bir zamanlar, insanlığın yıldızlara hükmettiği uzak bir gelecekte, Eternia " "adında bir gemi vardı. Bu gemi sıradan bir uzay aracı değildi; sonsuz bir " "yolculuğa çıkmak, evrenin en uzak köşelerini keşfetmek, yeni dünyalar bulmak " "ve kainatın sırlarını çözmek için tasarlanmıştı.\n" -"\n" "Kaptan Elias Vance, bilim insanları, mühendisler ve maceraperestlerden " "oluşan mürettebatına liderlik ediyordu. Onların görevi, kendi galaksilerinin " "ötesinde yaşanabilir bir gezegen bulmaktı. Nesiller Eternia'da doğmuş, " From 0ca29ae06100c604e714e48665d86fcaa362610b Mon Sep 17 00:00:00 2001 From: Piero Toffanin Date: Wed, 19 Feb 2025 15:53:26 +0000 Subject: [PATCH 015/114] Translated using Weblate (Turkish) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/tr/ --- .../locales/tr/LC_MESSAGES/messages.po | 36 +++---------------- 1 file changed, 5 insertions(+), 31 deletions(-) diff --git a/libretranslate/locales/tr/LC_MESSAGES/messages.po b/libretranslate/locales/tr/LC_MESSAGES/messages.po index e3f768a..24c5ac2 100644 --- a/libretranslate/locales/tr/LC_MESSAGES/messages.po +++ b/libretranslate/locales/tr/LC_MESSAGES/messages.po @@ -9,8 +9,8 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.3.9\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-10-16 23:47+0200\n" -"PO-Revision-Date: 2025-02-18 12:02+0000\n" -"Last-Translator: Can YM \n" +"PO-Revision-Date: 2025-02-19 15:56+0000\n" +"Last-Translator: Piero Toffanin \n" "Language-Team: Turkish \n" "Language: tr\n" @@ -23,41 +23,15 @@ msgstr "" #: libretranslate/app.py:80 msgid "Invalid JSON format" -msgstr "selamlar benim Adım Can. 23 Yaşındayım" +msgstr "Geçersiz JSON biçimi" #: libretranslate/app.py:180 libretranslate/templates/app.js.template:467 msgid "Auto Detect" -msgstr "" -"Bir zamanlar, insanlığın yıldızlara hükmettiği uzak bir gelecekte, Eternia " -"adında bir gemi vardı. Bu gemi sıradan bir uzay aracı değildi; sonsuz bir " -"yolculuğa çıkmak, evrenin en uzak köşelerini keşfetmek, yeni dünyalar bulmak " -"ve kainatın sırlarını çözmek için tasarlanmıştı.\n" -"Kaptan Elias Vance, bilim insanları, mühendisler ve maceraperestlerden " -"oluşan mürettebatına liderlik ediyordu. Onların görevi, kendi galaksilerinin " -"ötesinde yaşanabilir bir gezegen bulmaktı. Nesiller Eternia'da doğmuş, " -"büyümüş ve bu gemiyi yuva olarak benimsemişti.\n" -"\n" -"Bir gün, gemi garip bir sinyal aldı. Daha önce karşılaşmadıkları bir şeydi. " -"Nabız gibi atan ritmik bir dizi… Sanki birisi—ya da bir şey—onlarla " -"iletişime geçmeye çalışıyordu. Baş bilim insanı Dr. Liana Mercer, bu sinyali " -"inceledi ve içindeki matematiksel yapının doğaüstü bir karmaşıklığa sahip " -"olduğunu keşfetti. Bu, bir mesajdı." +msgstr "Otomatik Algılama" #: libretranslate/app.py:273 msgid "Unauthorized" -msgstr "" -"Bir zamanlar, insanlığın yıldızlara hükmettiği uzak bir gelecekte, Eternia " -"adında bir gemi vardı. Bu gemi sıradan bir uzay aracı değildi; sonsuz bir " -"yolculuğa çıkmak, evrenin en uzak köşelerini keşfetmek, yeni dünyalar bulmak " -"ve kainatın sırlarını çözmek için tasarlanmıştı.Kaptan Elias Vance, bilim " -"insanları, mühendisler ve maceraperestlerden oluşan mürettebatına liderlik " -"ediyordu. Onların görevi, kendi galaksilerinin ötesinde yaşanabilir bir " -"gezegen bulmaktı. Nesiller Eternia'da doğmuş, büyümüş ve bu gemiyi yuva " -"olarak benimsemişti. Bir gün, gemi garip bir sinyal aldı. Daha önce " -"karşılaşmadıkları bir şeydi. Nabız gibi atan ritmik bir dizi… Sanki birisi—" -"ya da bir şey—onlarla iletişime geçmeye çalışıyordu. Baş bilim insanı Dr. " -"Liana Mercer, bu sinyali inceledi ve içindeki matematiksel yapının doğaüstü " -"bir karmaşıklığa sahip olduğunu keşfetti. Bu, bir mesajdı." +msgstr "Yetkisiz" #: libretranslate/app.py:291 msgid "Too many request limits violations" From 79cbfabfaccba5b70ef706e97e1a018844d958fc Mon Sep 17 00:00:00 2001 From: doppiagsilvi Date: Wed, 19 Feb 2025 18:10:32 +0000 Subject: [PATCH 016/114] Translated using Weblate (Turkish) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/tr/ --- libretranslate/locales/tr/LC_MESSAGES/messages.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libretranslate/locales/tr/LC_MESSAGES/messages.po b/libretranslate/locales/tr/LC_MESSAGES/messages.po index 24c5ac2..370325a 100644 --- a/libretranslate/locales/tr/LC_MESSAGES/messages.po +++ b/libretranslate/locales/tr/LC_MESSAGES/messages.po @@ -9,8 +9,8 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.3.9\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-10-16 23:47+0200\n" -"PO-Revision-Date: 2025-02-19 15:56+0000\n" -"Last-Translator: Piero Toffanin \n" +"PO-Revision-Date: 2025-02-20 09:09+0000\n" +"Last-Translator: doppiagsilvi \n" "Language-Team: Turkish \n" "Language: tr\n" @@ -23,7 +23,7 @@ msgstr "" #: libretranslate/app.py:80 msgid "Invalid JSON format" -msgstr "Geçersiz JSON biçimi" +msgstr "%(name)sGeçersiz JSON biçimi" #: libretranslate/app.py:180 libretranslate/templates/app.js.template:467 msgid "Auto Detect" From c119dd94277ad4919c2002ab86bbdc6602e4d74b Mon Sep 17 00:00:00 2001 From: Piero Toffanin Date: Fri, 21 Feb 2025 02:45:38 +0000 Subject: [PATCH 017/114] Translated using Weblate (Turkish) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/tr/ --- libretranslate/locales/tr/LC_MESSAGES/messages.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libretranslate/locales/tr/LC_MESSAGES/messages.po b/libretranslate/locales/tr/LC_MESSAGES/messages.po index 370325a..74d1664 100644 --- a/libretranslate/locales/tr/LC_MESSAGES/messages.po +++ b/libretranslate/locales/tr/LC_MESSAGES/messages.po @@ -9,8 +9,8 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.3.9\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-10-16 23:47+0200\n" -"PO-Revision-Date: 2025-02-20 09:09+0000\n" -"Last-Translator: doppiagsilvi \n" +"PO-Revision-Date: 2025-02-21 14:18+0000\n" +"Last-Translator: Piero Toffanin \n" "Language-Team: Turkish \n" "Language: tr\n" @@ -23,7 +23,7 @@ msgstr "" #: libretranslate/app.py:80 msgid "Invalid JSON format" -msgstr "%(name)sGeçersiz JSON biçimi" +msgstr "Geçersiz JSON biçimi" #: libretranslate/app.py:180 libretranslate/templates/app.js.template:467 msgid "Auto Detect" From 696fec530bb97b868d1e3e59ddf010a0a2c682f8 Mon Sep 17 00:00:00 2001 From: urzparat <121947192+urzparat@users.noreply.github.com> Date: Thu, 27 Feb 2025 12:46:53 +0100 Subject: [PATCH 018/114] Removes duplicated aria-label --- libretranslate/templates/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libretranslate/templates/index.html b/libretranslate/templates/index.html index c0a69d8..7c5365d 100644 --- a/libretranslate/templates/index.html +++ b/libretranslate/templates/index.html @@ -212,7 +212,7 @@ {{ _h("Text to translate") }} -
From 42520d45f0d85c7dcdcf8aaab34ed7b82ab65bc0 Mon Sep 17 00:00:00 2001 From: Piero Toffanin Date: Fri, 28 Feb 2025 00:18:56 -0500 Subject: [PATCH 019/114] Make sure first lang letter is uppercase --- libretranslate/templates/app.js.template | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libretranslate/templates/app.js.template b/libretranslate/templates/app.js.template index 009352a..e5e6739 100644 --- a/libretranslate/templates/app.js.template +++ b/libretranslate/templates/app.js.template @@ -464,6 +464,12 @@ function handleLangsResponse(self, response) { return; } + // Make sure first letter is uppercase + self.langs.forEach(l => { + if (!l.name) return; + l.name = l.name[0].toUpperCase() + l.name.slice(1); + }); + self.langs.push({ name: {{ _e("Auto Detect") }}, code: "auto", targets: self.langs.map(l => l.code)}) const sourceLanguage = self.langs.find(l => l.code === self.getQueryParam("source")) From b8dca4e34113bd53b37f6895f89fbcee130641a6 Mon Sep 17 00:00:00 2001 From: Piero Toffanin Date: Fri, 28 Feb 2025 12:06:15 -0500 Subject: [PATCH 020/114] Update app description --- libretranslate/locales/ar/LC_MESSAGES/messages.po | 8 ++++---- libretranslate/locales/az/LC_MESSAGES/messages.po | 8 ++++---- libretranslate/locales/be/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/bg/LC_MESSAGES/messages.po | 8 ++++---- libretranslate/locales/bn/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/ca/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/cs/LC_MESSAGES/messages.po | 8 ++++---- libretranslate/locales/da/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/de/LC_MESSAGES/messages.po | 8 ++++---- libretranslate/locales/el/LC_MESSAGES/messages.po | 6 +++--- libretranslate/locales/eo/LC_MESSAGES/messages.po | 8 ++++---- libretranslate/locales/es/LC_MESSAGES/messages.po | 8 ++++---- libretranslate/locales/et/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/eu/LC_MESSAGES/messages.po | 8 ++++---- libretranslate/locales/ext/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/fa/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/fi/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/fil/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/fr/LC_MESSAGES/messages.po | 8 ++++---- libretranslate/locales/ga/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/gd/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/gl/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/he/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/hi/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/hu/LC_MESSAGES/messages.po | 8 ++++---- libretranslate/locales/id/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/it/LC_MESSAGES/messages.po | 8 ++++---- libretranslate/locales/ja/LC_MESSAGES/messages.po | 8 ++++---- libretranslate/locales/kab/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/ko/LC_MESSAGES/messages.po | 8 ++++---- libretranslate/locales/lt/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/lv/LC_MESSAGES/messages.po | 6 +++--- libretranslate/locales/messages.pot | 4 ++-- libretranslate/locales/mia/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/ms/LC_MESSAGES/messages.po | 6 +++--- libretranslate/locales/nb/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/nl/LC_MESSAGES/messages.po | 6 +++--- libretranslate/locales/nn/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/oc/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/pa/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/pl/LC_MESSAGES/messages.po | 6 +++--- libretranslate/locales/pt/LC_MESSAGES/messages.po | 8 ++++---- libretranslate/locales/pt_BR/LC_MESSAGES/messages.po | 8 ++++---- libretranslate/locales/ro/LC_MESSAGES/messages.po | 8 ++++---- libretranslate/locales/ru/LC_MESSAGES/messages.po | 8 ++++---- libretranslate/locales/si/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/sk/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/sl/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/sq/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/sr/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/sv/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/ta/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/th/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/tl/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/tr/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/ug/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/uk/LC_MESSAGES/messages.po | 8 ++++---- libretranslate/locales/ur/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/vi/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/zgh/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/zh/LC_MESSAGES/messages.po | 4 ++-- libretranslate/locales/zh_Hant/LC_MESSAGES/messages.po | 4 ++-- libretranslate/templates/index.html | 6 +++--- 63 files changed, 168 insertions(+), 168 deletions(-) diff --git a/libretranslate/locales/ar/LC_MESSAGES/messages.po b/libretranslate/locales/ar/LC_MESSAGES/messages.po index 57c7c4a..53a43c4 100644 --- a/libretranslate/locales/ar/LC_MESSAGES/messages.po +++ b/libretranslate/locales/ar/LC_MESSAGES/messages.po @@ -586,10 +586,10 @@ msgstr "واجهة برمجة تطبيقات حرة ومفتوحة المصدر #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline capable " +"Free and Open Source Machine Translation API. Free to download, offline capable " "and easy to setup. Run your own API server in just a few minutes." msgstr "" -"Free and Open Source Machine Translation API. ذاتي الاستيعاب، غير مباشر قادر" +"واجهة برمجة تطبيقات الترجمة الآلية المجانية والمفتوحة المصدر .مجاني للتحميل غير مباشر قادر" " وسهل التجهيز أدير خادمك الخاص في غضون دقائق." #: libretranslate/templates/index.html:11 @@ -710,8 +710,8 @@ msgid "Open Source Machine Translation API" msgstr "api ترجمة آلي مفتوح المصدر" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." -msgstr "استضافة شخصية. غيرمتصل سهل الاعداد." +msgid "Free to download. Offline Capable. Easy to Setup." +msgstr "مجاني للتنزيل. يمكن استخدامه دون اتصال بالإنترنت. سهل الإعداد." #: libretranslate/templates/index.html:337 msgid "LibreTranslate" diff --git a/libretranslate/locales/az/LC_MESSAGES/messages.po b/libretranslate/locales/az/LC_MESSAGES/messages.po index b6b7a58..6b16379 100644 --- a/libretranslate/locales/az/LC_MESSAGES/messages.po +++ b/libretranslate/locales/az/LC_MESSAGES/messages.po @@ -593,10 +593,10 @@ msgstr "Pulsuz və Açıq Source Machine Translation API" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline capable " +"Free and Open Source Machine Translation API. Free to download, offline capable " "and easy to setup. Run your own API server in just a few minutes." msgstr "" -"Pulsuz və Open Source Machine Translation API. Self-səfərli, offline və asan" +"Pulsuz və Open Source Machine Translation API. Yükləmək üçün pulsuz, offline və asan" " quraşdırmaq. Yalnız bir neçə dərhal öz API server çalışır." #: libretranslate/templates/index.html:11 @@ -717,8 +717,8 @@ msgid "Open Source Machine Translation API" msgstr "Open Source Machine Translation API" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." -msgstr "Self-Hosted. Offline Capable. Avadanlıq." +msgid "Free to download. Offline Capable. Easy to Setup." +msgstr "Yükləmək üçün pulsuz. Offline Capable. Avadanlıq." #: libretranslate/templates/index.html:337 msgid "LibreTranslate" diff --git a/libretranslate/locales/be/LC_MESSAGES/messages.po b/libretranslate/locales/be/LC_MESSAGES/messages.po index 7d3c94d..41c09a0 100644 --- a/libretranslate/locales/be/LC_MESSAGES/messages.po +++ b/libretranslate/locales/be/LC_MESSAGES/messages.po @@ -596,7 +596,7 @@ msgstr "Бясплатнае API для машыннага перакладу з #: libretranslate/templates/index.html:31 #, fuzzy msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline " +"Free and Open Source Machine Translation API. Free to download, offline " "capable and easy to setup. Run your own API server in just a few minutes." msgstr "Бясплатнае API для машыннага перакладу з адкрытым выточным кодам." @@ -718,7 +718,7 @@ msgid "Open Source Machine Translation API" msgstr "" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "" #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/bg/LC_MESSAGES/messages.po b/libretranslate/locales/bg/LC_MESSAGES/messages.po index 45fc481..f968170 100644 --- a/libretranslate/locales/bg/LC_MESSAGES/messages.po +++ b/libretranslate/locales/bg/LC_MESSAGES/messages.po @@ -595,10 +595,10 @@ msgstr "Свободен API с отворен код за машинен пре #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline " +"Free and Open Source Machine Translation API. Free to download, offline " "capable and easy to setup. Run your own API server in just a few minutes." msgstr "" -"Свободен API с отворен код за машинен превод. Самостоятелен хостинг, " +"Свободен API с отворен код за машинен превод. безплатно за изтегляне, " "офлайн способност и лесен за настройка. Стартирайте свой собствен API " "сървър само за няколко минути." @@ -720,8 +720,8 @@ msgid "Open Source Machine Translation API" msgstr "API с отворен код за машинен превод" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." -msgstr "Самостоятелен хостинг. Офлайн способност. Лесен за настройка." +msgid "Free to download. Offline Capable. Easy to Setup." +msgstr "безплатно за изтегляне. Офлайн способност. Лесен за настройка." #: libretranslate/templates/index.html:337 msgid "LibreTranslate" diff --git a/libretranslate/locales/bn/LC_MESSAGES/messages.po b/libretranslate/locales/bn/LC_MESSAGES/messages.po index 7175d1e..1a534de 100644 --- a/libretranslate/locales/bn/LC_MESSAGES/messages.po +++ b/libretranslate/locales/bn/LC_MESSAGES/messages.po @@ -593,7 +593,7 @@ msgstr "মুক্ত এবং ওপেন সোর্স মেশিন #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline capable " +"Free and Open Source Machine Translation API. Free to download, offline capable " "and easy to setup. Run your own API server in just a few minutes." msgstr "" "মুক্ত এবং ওপেন সোর্স মেশিন অনুবাদ API। স্ব-বিশ্লেষণ, অফ-লাইন অবস্থায় থাকা। " @@ -717,7 +717,7 @@ msgid "Open Source Machine Translation API" msgstr "ওপেন সোর্স মেশিন অনুবাদ APIQuery" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "হায় খোদা! অফ-লাইন। শান্ত হও।." #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/ca/LC_MESSAGES/messages.po b/libretranslate/locales/ca/LC_MESSAGES/messages.po index 6bfc202..6c30d48 100644 --- a/libretranslate/locales/ca/LC_MESSAGES/messages.po +++ b/libretranslate/locales/ca/LC_MESSAGES/messages.po @@ -599,7 +599,7 @@ msgstr "API de traducció de la màquina lliure i oberta" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline capable " +"Free and Open Source Machine Translation API. Free to download, offline capable " "and easy to setup. Run your own API server in just a few minutes." msgstr "" "API de traducció de la màquina lliure i oberta. Auto- màquina, fora de línia" @@ -723,7 +723,7 @@ msgid "Open Source Machine Translation API" msgstr "Obre l' API de traducció de la màquina d' origen" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "Ha acabat. Capable fora de línia. Fàcil de configurar." #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/cs/LC_MESSAGES/messages.po b/libretranslate/locales/cs/LC_MESSAGES/messages.po index bc90baf..7d05a56 100644 --- a/libretranslate/locales/cs/LC_MESSAGES/messages.po +++ b/libretranslate/locales/cs/LC_MESSAGES/messages.po @@ -590,10 +590,10 @@ msgstr "Zdarma a Open Source API strojového překladu" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline " +"Free and Open Source Machine Translation API. Free to download, offline " "capable and easy to setup. Run your own API server in just a few minutes." msgstr "" -"Zdarma a Open Source API strojového překladu. Vlastní hostovaní, " +"Zdarma a Open Source API strojového překladu. Zdarma ke stažení, " "použitelné bez připojení a snadno nastavitelné. Spusťte si vlastní API " "server během několika minut." @@ -715,8 +715,8 @@ msgid "Open Source Machine Translation API" msgstr "Open Source API strojového překladu" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." -msgstr "Vlastní hostovnání. Použitelné bez připojení. Snadné nastavení." +msgid "Free to download. Offline Capable. Easy to Setup." +msgstr "Zdarma ke stažení. Použitelné bez připojení. Snadné nastavení." #: libretranslate/templates/index.html:337 msgid "LibreTranslate" diff --git a/libretranslate/locales/da/LC_MESSAGES/messages.po b/libretranslate/locales/da/LC_MESSAGES/messages.po index 8a2344e..820e833 100644 --- a/libretranslate/locales/da/LC_MESSAGES/messages.po +++ b/libretranslate/locales/da/LC_MESSAGES/messages.po @@ -595,7 +595,7 @@ msgstr "Gratis og Open Source Maskinoversættelses-API" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline capable " +"Free and Open Source Machine Translation API. Free to download, offline capable " "and easy to setup. Run your own API server in just a few minutes." msgstr "" "Gratis og Open Source Maskinoversættelses-API. Selv-hosted, kan bruges " @@ -720,7 +720,7 @@ msgid "Open Source Machine Translation API" msgstr "Open Source Maskinoversættelses-API" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "Selv-Hosted. Kan bruges offline. Nem at opsætte." #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/de/LC_MESSAGES/messages.po b/libretranslate/locales/de/LC_MESSAGES/messages.po index 3fc6800..28b08d8 100644 --- a/libretranslate/locales/de/LC_MESSAGES/messages.po +++ b/libretranslate/locales/de/LC_MESSAGES/messages.po @@ -595,10 +595,10 @@ msgstr "Freie und quelloffene API für maschinelle Übersetzung" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline " +"Free and Open Source Machine Translation API. Free to download, offline " "capable and easy to setup. Run your own API server in just a few minutes." msgstr "" -"Freie und quelloffene API für maschinelle Übersetzung. Selbstgehostet, " +"Freie und quelloffene API für maschinelle Übersetzung. Kostenlos zum download, " "offline-fähig und einfach einzurichten. Betreiben Sie Ihren eigenen API-" "Server in nur wenigen Minuten." @@ -720,8 +720,8 @@ msgid "Open Source Machine Translation API" msgstr "Open-Source-API für maschinelle Übersetzung" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." -msgstr "Selbstgehostet. Offline-fähig. Einfach einzurichten." +msgid "Free to download. Offline Capable. Easy to Setup." +msgstr "Kostenlos zum download. Offline-fähig. Einfach einzurichten." #: libretranslate/templates/index.html:337 msgid "LibreTranslate" diff --git a/libretranslate/locales/el/LC_MESSAGES/messages.po b/libretranslate/locales/el/LC_MESSAGES/messages.po index aace82a..07c86bc 100644 --- a/libretranslate/locales/el/LC_MESSAGES/messages.po +++ b/libretranslate/locales/el/LC_MESSAGES/messages.po @@ -593,10 +593,10 @@ msgstr "Δωρεάν και Open Source Machine μετάφραση API" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline capable " +"Free and Open Source Machine Translation API. Free to download, offline capable " "and easy to setup. Run your own API server in just a few minutes." msgstr "" -"Δωρεάν και Open Source Machine Translation API. Self-hosted, offline ικανή " +"Δωρεάν και Open Source Machine Translation API. Free to download, offline ικανή " "και εύκολη στη ρύθμιση. Πατήστε το δικό σας διακομιστή API σε λίγα λεπτά." #: libretranslate/templates/index.html:11 @@ -717,7 +717,7 @@ msgid "Open Source Machine Translation API" msgstr "Άνοιγμα API Πηγιαίου Μηχανίματος Μετάφρασης" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "Αυτο-Hosted. Offline Capable. Εύκολο στη ρύθμιση." #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/eo/LC_MESSAGES/messages.po b/libretranslate/locales/eo/LC_MESSAGES/messages.po index eb3ae6d..f65b266 100644 --- a/libretranslate/locales/eo/LC_MESSAGES/messages.po +++ b/libretranslate/locales/eo/LC_MESSAGES/messages.po @@ -590,10 +590,10 @@ msgstr "Libera kaj malfermitkoda API de maŝina tradukado" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline " +"Free and Open Source Machine Translation API. Free to download, offline " "capable and easy to setup. Run your own API server in just a few minutes." msgstr "" -"Libera kaj malfermitkoda API de maŝina tradukado. Mem-gastigita, " +"Libera kaj malfermitkoda API de maŝina tradukado. Senpage elŝutebla, " "senkonekte funkciebla kaj facile instalebla. Rulu vian propran API-" "servilon en nur kelkaj minutoj." @@ -715,8 +715,8 @@ msgid "Open Source Machine Translation API" msgstr "API de malfermitkoda maŝina tradukado" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." -msgstr "Mem-gastigita. Senkonekte funkciebla. Facile instalebla." +msgid "Free to download. Offline Capable. Easy to Setup." +msgstr "Senpage elŝutebla. Senkonekte funkciebla. Facile instalebla." #: libretranslate/templates/index.html:337 msgid "LibreTranslate" diff --git a/libretranslate/locales/es/LC_MESSAGES/messages.po b/libretranslate/locales/es/LC_MESSAGES/messages.po index c54f06d..e8a7c65 100644 --- a/libretranslate/locales/es/LC_MESSAGES/messages.po +++ b/libretranslate/locales/es/LC_MESSAGES/messages.po @@ -595,10 +595,10 @@ msgstr "API de traducción automática gratuita y de código abierto" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline " +"Free and Open Source Machine Translation API. Free to download, offline " "capable and easy to setup. Run your own API server in just a few minutes." msgstr "" -"API de traducción automática gratuita y de código abierto. Autónoma, con " +"API de traducción automática gratuita y de código abierto. Descarga gratuita, con " "capacidad para trabajar sin conexión y fácil de configurar. Aloja tu " "propio servidor API en sólo unos minutos." @@ -720,8 +720,8 @@ msgid "Open Source Machine Translation API" msgstr "API de Traducción de Código Abierto" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." -msgstr "Autónoma. Funciona Sin Conexión. Fácil de Configurar." +msgid "Free to download. Offline Capable. Easy to Setup." +msgstr "Descarga gratuita. Funciona Sin Conexión. Fácil de Configurar." #: libretranslate/templates/index.html:337 msgid "LibreTranslate" diff --git a/libretranslate/locales/et/LC_MESSAGES/messages.po b/libretranslate/locales/et/LC_MESSAGES/messages.po index 215624b..48f2882 100644 --- a/libretranslate/locales/et/LC_MESSAGES/messages.po +++ b/libretranslate/locales/et/LC_MESSAGES/messages.po @@ -596,7 +596,7 @@ msgstr "Vaba ja avatud lähtekoodiga masintõlke API" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline capable " +"Free and Open Source Machine Translation API. Free to download, offline capable " "and easy to setup. Run your own API server in just a few minutes." msgstr "" "Vaba ja avatud lähtekoodiga masintõlke API. Majutatav oma serveris, toimib " @@ -721,7 +721,7 @@ msgid "Open Source Machine Translation API" msgstr "Avatud lähtekoodiga masintõlke API" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "" "Majutatav oma serveris. Toimib ka võrguühenduseta. Hõlpsasti seadistatav." diff --git a/libretranslate/locales/eu/LC_MESSAGES/messages.po b/libretranslate/locales/eu/LC_MESSAGES/messages.po index c6266de..a4ea2c8 100644 --- a/libretranslate/locales/eu/LC_MESSAGES/messages.po +++ b/libretranslate/locales/eu/LC_MESSAGES/messages.po @@ -594,10 +594,10 @@ msgstr "Doako eta kode irekiko Itzulpen automatikoko APIa" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline " +"Free and Open Source Machine Translation API. Free to download, offline " "capable and easy to setup. Run your own API server in just a few minutes." msgstr "" -"Doako eta kode irekiko Itzulpen automatikoko APIa. Norberak ostatatua, " +"Doako eta kode irekiko Itzulpen automatikoko APIa. Doan deskargatzeko, " "konexio beharrik gabea eta konfiguratzeko erraza. Exekutatu zure API " "zerbitzaria minutu gutxitan." @@ -719,8 +719,8 @@ msgid "Open Source Machine Translation API" msgstr "Kode Irekiko Itzulpen Automatikoko APIa" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." -msgstr "Norberak ostatatua. Konexio beharrik gabe. Konfiguratzeko erraza." +msgid "Free to download. Offline Capable. Easy to Setup." +msgstr "Doan deskargatzeko. Konexio beharrik gabe. Konfiguratzeko erraza." #: libretranslate/templates/index.html:337 msgid "LibreTranslate" diff --git a/libretranslate/locales/ext/LC_MESSAGES/messages.po b/libretranslate/locales/ext/LC_MESSAGES/messages.po index 5d123f8..6cd4256 100644 --- a/libretranslate/locales/ext/LC_MESSAGES/messages.po +++ b/libretranslate/locales/ext/LC_MESSAGES/messages.po @@ -581,7 +581,7 @@ msgstr "" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline " +"Free and Open Source Machine Translation API. Free to download, offline " "capable and easy to setup. Run your own API server in just a few minutes." msgstr "" @@ -703,7 +703,7 @@ msgid "Open Source Machine Translation API" msgstr "" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "" #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/fa/LC_MESSAGES/messages.po b/libretranslate/locales/fa/LC_MESSAGES/messages.po index db4492d..fff12b1 100644 --- a/libretranslate/locales/fa/LC_MESSAGES/messages.po +++ b/libretranslate/locales/fa/LC_MESSAGES/messages.po @@ -592,7 +592,7 @@ msgstr "API ترجمه ماشینی رایگان و متن باز" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline capable " +"Free and Open Source Machine Translation API. Free to download, offline capable " "and easy to setup. Run your own API server in just a few minutes." msgstr "" "API ترجمه ماشینی رایگان و متن باز. خود میزبان، با قابلیت راه‌اندازی آسان و " @@ -716,7 +716,7 @@ msgid "Open Source Machine Translation API" msgstr "API ترجمه ماشینی متن باز" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "خود میزبان. قابلیت کار آفلاین. با قابلیت راه‌اندازی آسان." #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/fi/LC_MESSAGES/messages.po b/libretranslate/locales/fi/LC_MESSAGES/messages.po index c91f45d..0a6ecca 100644 --- a/libretranslate/locales/fi/LC_MESSAGES/messages.po +++ b/libretranslate/locales/fi/LC_MESSAGES/messages.po @@ -591,7 +591,7 @@ msgstr "Ilmainen ja avoimen lähdekoodin konekäännösrajapinta" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline capable " +"Free and Open Source Machine Translation API. Free to download, offline capable " "and easy to setup. Run your own API server in just a few minutes." msgstr "" "Ilmainen ja avoimen lähdekoodin konekäännösrajapinta. Itseisännöity, " @@ -716,7 +716,7 @@ msgid "Open Source Machine Translation API" msgstr "Avoimen lähdekoodin käännös konekäännösrajapinta" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "Itseisännöity. Offline-yhteensopiva. Helppo asentaa." #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/fil/LC_MESSAGES/messages.po b/libretranslate/locales/fil/LC_MESSAGES/messages.po index b53df05..f7f84f0 100644 --- a/libretranslate/locales/fil/LC_MESSAGES/messages.po +++ b/libretranslate/locales/fil/LC_MESSAGES/messages.po @@ -589,7 +589,7 @@ msgstr "" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline " +"Free and Open Source Machine Translation API. Free to download, offline " "capable and easy to setup. Run your own API server in just a few minutes." msgstr "" @@ -711,7 +711,7 @@ msgid "Open Source Machine Translation API" msgstr "" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "" #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/fr/LC_MESSAGES/messages.po b/libretranslate/locales/fr/LC_MESSAGES/messages.po index ddba99d..477c97c 100644 --- a/libretranslate/locales/fr/LC_MESSAGES/messages.po +++ b/libretranslate/locales/fr/LC_MESSAGES/messages.po @@ -593,10 +593,10 @@ msgstr "API de Traduction Automatique libre et ouverte" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline " +"Free and Open Source Machine Translation API. Free to download, offline " "capable and easy to setup. Run your own API server in just a few minutes." msgstr "" -"API de Traduction Automatique libre et ouverte. Auto-hébergée, hors ligne" +"API de Traduction Automatique libre et ouverte. Téléchargement gratuit, hors ligne" " et facile à installer. Lancez votre propre serveur API en quelques " "minutes." @@ -718,8 +718,8 @@ msgid "Open Source Machine Translation API" msgstr "API ouverte de traduction automatique" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." -msgstr "Auto-hébergé. Mode hors ligne. Facile à configurer." +msgid "Free to download. Offline Capable. Easy to Setup." +msgstr "Téléchargement gratuit. Mode hors ligne. Facile à configurer." #: libretranslate/templates/index.html:337 msgid "LibreTranslate" diff --git a/libretranslate/locales/ga/LC_MESSAGES/messages.po b/libretranslate/locales/ga/LC_MESSAGES/messages.po index ceee2c7..1498406 100644 --- a/libretranslate/locales/ga/LC_MESSAGES/messages.po +++ b/libretranslate/locales/ga/LC_MESSAGES/messages.po @@ -596,7 +596,7 @@ msgstr "API Aistriú Meaisín Foinse Oscailte saor in aisce" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline capable " +"Free and Open Source Machine Translation API. Free to download, offline capable " "and easy to setup. Run your own API server in just a few minutes." msgstr "" "API Aistriú Meaisín Foinse Oscailte saor in aisce. Féin-óstach, as líne in " @@ -721,7 +721,7 @@ msgid "Open Source Machine Translation API" msgstr "API Aistriú Meaisín Foinse Oscailte" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "Féin-Óstach. As Líne In ann. Éasca le Socrú." #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/gd/LC_MESSAGES/messages.po b/libretranslate/locales/gd/LC_MESSAGES/messages.po index 8719451..a18611c 100644 --- a/libretranslate/locales/gd/LC_MESSAGES/messages.po +++ b/libretranslate/locales/gd/LC_MESSAGES/messages.po @@ -599,7 +599,7 @@ msgstr "API saor airson eadar-theangachadh inneil le bun-tùs fosgailte" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline " +"Free and Open Source Machine Translation API. Free to download, offline " "capable and easy to setup. Run your own API server in just a few minutes." msgstr "" "API saor airson eadar-theangachadh inneil le bun-tùs fosgailte. Òstaichidh " @@ -723,7 +723,7 @@ msgid "Open Source Machine Translation API" msgstr "API airson eadar-theangachadh inneil le bun-tùs fosgailte" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "Òstaich thu fhèin e. Comas far loidhne. Furasta a shuidheachadh." #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/gl/LC_MESSAGES/messages.po b/libretranslate/locales/gl/LC_MESSAGES/messages.po index 88a4edc..7125946 100644 --- a/libretranslate/locales/gl/LC_MESSAGES/messages.po +++ b/libretranslate/locales/gl/LC_MESSAGES/messages.po @@ -595,7 +595,7 @@ msgstr "API da Tradución por Máquina de código Libre e Aberto" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline capable " +"Free and Open Source Machine Translation API. Free to download, offline capable " "and easy to setup. Run your own API server in just a few minutes." msgstr "" "API da Tradución por Máquina de código Libre e Aberto. Auto-Hospedado, doado" @@ -720,7 +720,7 @@ msgid "Open Source Machine Translation API" msgstr "API de Tradución por Máquina de Código Aberto" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "Auto-Hospedado. Sen Conexión. Doado de Configurar." #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/he/LC_MESSAGES/messages.po b/libretranslate/locales/he/LC_MESSAGES/messages.po index 2808145..536551f 100644 --- a/libretranslate/locales/he/LC_MESSAGES/messages.po +++ b/libretranslate/locales/he/LC_MESSAGES/messages.po @@ -588,7 +588,7 @@ msgstr "Free and Open Source Machine" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline capable " +"Free and Open Source Machine Translation API. Free to download, offline capable " "and easy to setup. Run your own API server in just a few minutes." msgstr "" "Free and Open Source Machine Translation API עוין עצמי, לא מקוון מסוגל וקל " @@ -712,7 +712,7 @@ msgid "Open Source Machine Translation API" msgstr "קוד פתוח תרגום API" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "מוגן. Offline Capable קל להגדרה." #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/hi/LC_MESSAGES/messages.po b/libretranslate/locales/hi/LC_MESSAGES/messages.po index 5707724..da3548d 100644 --- a/libretranslate/locales/hi/LC_MESSAGES/messages.po +++ b/libretranslate/locales/hi/LC_MESSAGES/messages.po @@ -595,7 +595,7 @@ msgstr "मुफ़्त और मुक्त स्रोत मशीन #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline capable " +"Free and Open Source Machine Translation API. Free to download, offline capable " "and easy to setup. Run your own API server in just a few minutes." msgstr "" "मुफ़्त और मुक्त स्रोत मशीन अनुवाद एपीआई। स्व-होस्टेड, ऑफ़लाइन सक्षम और सेटअप" @@ -719,7 +719,7 @@ msgid "Open Source Machine Translation API" msgstr "ओपन सोर्स मशीन अनुवाद API" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "स्व-होस्टेड। ऑफलाइन सक्षम। सेटअप करने में आसान।." #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/hu/LC_MESSAGES/messages.po b/libretranslate/locales/hu/LC_MESSAGES/messages.po index 89a83bd..11ef068 100644 --- a/libretranslate/locales/hu/LC_MESSAGES/messages.po +++ b/libretranslate/locales/hu/LC_MESSAGES/messages.po @@ -595,10 +595,10 @@ msgstr "Ingyenes és nyílt forráskódú gépi fordító API" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline " +"Free and Open Source Machine Translation API. Free to download, offline " "capable and easy to setup. Run your own API server in just a few minutes." msgstr "" -"Ingyenes és nyílt forráskódú gépi fordító API. Helyileg telepített, " +"Ingyenes és nyílt forráskódú gépi fordító API. Ingyenesen letölthető, " "offline működő és könnyen telepíthető. Futtassa saját API kiszolgálóját " "néhány perc alatt." @@ -720,8 +720,8 @@ msgid "Open Source Machine Translation API" msgstr "Nyílt Forráskódú Gépi Fordító API" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." -msgstr "Helyben futtatható, offline működő. Könnyen beállítható." +msgid "Free to download. Offline Capable. Easy to Setup." +msgstr "Ingyenesen letölthető, offline működő. Könnyen beállítható." #: libretranslate/templates/index.html:337 msgid "LibreTranslate" diff --git a/libretranslate/locales/id/LC_MESSAGES/messages.po b/libretranslate/locales/id/LC_MESSAGES/messages.po index e285f20..f551e9b 100644 --- a/libretranslate/locales/id/LC_MESSAGES/messages.po +++ b/libretranslate/locales/id/LC_MESSAGES/messages.po @@ -597,7 +597,7 @@ msgstr "API Translation API" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline capable " +"Free and Open Source Machine Translation API. Free to download, offline capable " "and easy to setup. Run your own API server in just a few minutes." msgstr "" "Gratis dan Open Source Machine Translation API. Secara mandiri, offline " @@ -722,7 +722,7 @@ msgid "Open Source Machine Translation API" msgstr "API documentation" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "Hosting mandiri. Bisa Offline. Mudah Disiapkan." #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/it/LC_MESSAGES/messages.po b/libretranslate/locales/it/LC_MESSAGES/messages.po index 266ef5d..0aa4bfd 100644 --- a/libretranslate/locales/it/LC_MESSAGES/messages.po +++ b/libretranslate/locales/it/LC_MESSAGES/messages.po @@ -594,10 +594,10 @@ msgstr "API di traduzione automatica libera e open source" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline " +"Free and Open Source Machine Translation API. Free to download, offline " "capable and easy to setup. Run your own API server in just a few minutes." msgstr "" -"API di traduzione automatica libera e open source. Self-hosted, funziona " +"API di traduzione automatica libera e open source. Gratis da scaricare, funziona " "anche offline e facile da configurare. Fai girare il tuo server API in " "pochi minuti." @@ -719,8 +719,8 @@ msgid "Open Source Machine Translation API" msgstr "API di Traduzione Automatica Open Source" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." -msgstr "Self-Hosted. Funziona anche offline. Facile da Configurare." +msgid "Free to download. Offline Capable. Easy to Setup." +msgstr "Gratis da scaricare. Funziona offline. Facile da Configurare." #: libretranslate/templates/index.html:337 msgid "LibreTranslate" diff --git a/libretranslate/locales/ja/LC_MESSAGES/messages.po b/libretranslate/locales/ja/LC_MESSAGES/messages.po index 51be492..401aade 100644 --- a/libretranslate/locales/ja/LC_MESSAGES/messages.po +++ b/libretranslate/locales/ja/LC_MESSAGES/messages.po @@ -589,9 +589,9 @@ msgstr "無料かつオープンソースな機械翻訳API" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline " +"Free and Open Source Machine Translation API. Free to download, offline " "capable and easy to setup. Run your own API server in just a few minutes." -msgstr "フリーでオープンソースな機械翻訳API。セルフホスト、オフラインで利用可能、セットアップも簡単。数分であなたのAPIサーバーを実行。" +msgstr "フリーでオープンソースな機械翻訳API。無料でダウンロード、オフラインで利用可能、セットアップも簡単。数分であなたのAPIサーバーを実行。" #: libretranslate/templates/index.html:11 msgid "translation" @@ -711,8 +711,8 @@ msgid "Open Source Machine Translation API" msgstr "オープンソース機械翻訳API" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." -msgstr "セルフホスティング。 オフライン対応。簡単にセットアップ。" +msgid "Free to download. Offline Capable. Easy to Setup." +msgstr "無料でダウンロード。 オフライン対応。簡単にセットアップ。" #: libretranslate/templates/index.html:337 msgid "LibreTranslate" diff --git a/libretranslate/locales/kab/LC_MESSAGES/messages.po b/libretranslate/locales/kab/LC_MESSAGES/messages.po index 69d5f21..6c5be58 100644 --- a/libretranslate/locales/kab/LC_MESSAGES/messages.po +++ b/libretranslate/locales/kab/LC_MESSAGES/messages.po @@ -589,7 +589,7 @@ msgstr "API n tsuqqilt tawurmant tilellit, n uɣbalu yeldin" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline " +"Free and Open Source Machine Translation API. Free to download, offline " "capable and easy to setup. Run your own API server in just a few minutes." msgstr "" "API n tsuqqilt tawurmant tilellit, n uɣbalu yeldin. Yezdeɣ i yiman-is, s " @@ -714,7 +714,7 @@ msgid "Open Source Machine Translation API" msgstr "API n usuqqel awurman n uɣbalu yeldin" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "Yettwasezdeɣ i yiman-is. Iteddu s war tuqqna. Fessus i usesteb." #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/ko/LC_MESSAGES/messages.po b/libretranslate/locales/ko/LC_MESSAGES/messages.po index 5e1c572..9b67430 100644 --- a/libretranslate/locales/ko/LC_MESSAGES/messages.po +++ b/libretranslate/locales/ko/LC_MESSAGES/messages.po @@ -586,10 +586,10 @@ msgstr "자유 오픈 소스 기계 번역 API" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline " +"Free and Open Source Machine Translation API. Free to download, offline " "capable and easy to setup. Run your own API server in just a few minutes." msgstr "" -"자유 오픈 소스 기계 번역 API. 셀프 호스팅, 오프라인에서 사용이 가능하며, 설치가 쉽습니다. 단 몇 분 만 투자하여 자신의 " +"자유 오픈 소스 기계 번역 API. 무료로 다운로드 가능, 오프라인에서 사용이 가능하며, 설치가 쉽습니다. 단 몇 분 만 투자하여 자신의 " "API 서버를 돌려보세요." #: libretranslate/templates/index.html:11 @@ -710,8 +710,8 @@ msgid "Open Source Machine Translation API" msgstr "오픈 소스 기계 번역 API" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." -msgstr "셀프 호스팅. 오프라인 이용 가능. 설정하기 쉬움." +msgid "Free to download. Offline Capable. Easy to Setup." +msgstr "무료로 다운로드 가능. 오프라인 이용 가능. 설정하기 쉬움." #: libretranslate/templates/index.html:337 msgid "LibreTranslate" diff --git a/libretranslate/locales/lt/LC_MESSAGES/messages.po b/libretranslate/locales/lt/LC_MESSAGES/messages.po index 31589d6..19da681 100644 --- a/libretranslate/locales/lt/LC_MESSAGES/messages.po +++ b/libretranslate/locales/lt/LC_MESSAGES/messages.po @@ -589,7 +589,7 @@ msgstr "Nemokamas ir atvirojo kodo mašinos vertimas API" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline capable " +"Free and Open Source Machine Translation API. Free to download, offline capable " "and easy to setup. Run your own API server in just a few minutes." msgstr "" "Nemokamai ir Open Source Machine Translation API. Savarankiškai patalpintas," @@ -714,7 +714,7 @@ msgid "Open Source Machine Translation API" msgstr "Open Source Machine Translation API" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "Selfas Hostedas. Galimi atsijungimai. Lengva susitvarkyti." #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/lv/LC_MESSAGES/messages.po b/libretranslate/locales/lv/LC_MESSAGES/messages.po index e5ddfed..8a2344f 100644 --- a/libretranslate/locales/lv/LC_MESSAGES/messages.po +++ b/libretranslate/locales/lv/LC_MESSAGES/messages.po @@ -591,10 +591,10 @@ msgstr "Bezmaksas un atvērtā pirmkoda mašīntulkošanas API" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline capable " +"Free and Open Source Machine Translation API. Free to download, offline capable " "and easy to setup. Run your own API server in just a few minutes." msgstr "" -"Bezmaksas un atvērtā pirmkoda mašīntulkošanas API. Self-hosted, bezsaistē " +"Bezmaksas un atvērtā pirmkoda mašīntulkošanas API. Free to download, bezsaistē " "spēj un viegli uzstādīt. Palaist savu API serveri tikai dažas minūtes." #: libretranslate/templates/index.html:11 @@ -715,7 +715,7 @@ msgid "Open Source Machine Translation API" msgstr "Atvērt pirmkoda mašīnas tulkošanas API" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "Pašaizliedzies. Bezsaistes Spēj. Viegli iestatīt." #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/messages.pot b/libretranslate/locales/messages.pot index bb27b3b..89615d3 100644 --- a/libretranslate/locales/messages.pot +++ b/libretranslate/locales/messages.pot @@ -577,7 +577,7 @@ msgstr "" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline " +"Free and Open Source Machine Translation API. Free to download, offline " "capable and easy to setup. Run your own API server in just a few minutes." msgstr "" @@ -699,7 +699,7 @@ msgid "Open Source Machine Translation API" msgstr "" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "" #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/mia/LC_MESSAGES/messages.po b/libretranslate/locales/mia/LC_MESSAGES/messages.po index 1334090..b73667d 100644 --- a/libretranslate/locales/mia/LC_MESSAGES/messages.po +++ b/libretranslate/locales/mia/LC_MESSAGES/messages.po @@ -584,7 +584,7 @@ msgstr "" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline " +"Free and Open Source Machine Translation API. Free to download, offline " "capable and easy to setup. Run your own API server in just a few minutes." msgstr "" @@ -706,7 +706,7 @@ msgid "Open Source Machine Translation API" msgstr "" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "" #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/ms/LC_MESSAGES/messages.po b/libretranslate/locales/ms/LC_MESSAGES/messages.po index d808675..240d62f 100644 --- a/libretranslate/locales/ms/LC_MESSAGES/messages.po +++ b/libretranslate/locales/ms/LC_MESSAGES/messages.po @@ -605,7 +605,7 @@ msgstr "API Terjemahan Mesin Jerman" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline capable " +"Free and Open Source Machine Translation API. Free to download, offline capable " "and easy to setup. Run your own API server in just a few minutes." msgstr "" "API Terjemahan Mesin Sumber Terbuka dan Bebas Wadah Free dan Open Source. " @@ -730,8 +730,8 @@ msgid "Open Source Machine Translation API" msgstr "API Terjemahan Mesin Sumber Terbuka" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." -msgstr "Self-Hosted. Kemampuan Luar Talian. Mudah diatur." +msgid "Free to download. Offline Capable. Easy to Setup." +msgstr "Free to download. Kemampuan Luar Talian. Mudah diatur." #: libretranslate/templates/index.html:337 msgid "LibreTranslate" diff --git a/libretranslate/locales/nb/LC_MESSAGES/messages.po b/libretranslate/locales/nb/LC_MESSAGES/messages.po index 3e2a7c7..ceb3801 100644 --- a/libretranslate/locales/nb/LC_MESSAGES/messages.po +++ b/libretranslate/locales/nb/LC_MESSAGES/messages.po @@ -605,7 +605,7 @@ msgstr "Fritt maskinoversettelses-API" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline capable " +"Free and Open Source Machine Translation API. Free to download, offline capable " "and easy to setup. Run your own API server in just a few minutes." msgstr "" "Fritt maskinoversettelses-API. Selvtjent, mulighet for frakoblet modus, og " @@ -731,7 +731,7 @@ msgid "Open Source Machine Translation API" msgstr "Fritt maskinoversettelses-API" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "Selvtjent. Muligheter for frakoblet modus. Enkelt oppsett." #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/nl/LC_MESSAGES/messages.po b/libretranslate/locales/nl/LC_MESSAGES/messages.po index 041bd16..69528d6 100644 --- a/libretranslate/locales/nl/LC_MESSAGES/messages.po +++ b/libretranslate/locales/nl/LC_MESSAGES/messages.po @@ -593,10 +593,10 @@ msgstr "Vrij en open source Machine Vertaling" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline capable " +"Free and Open Source Machine Translation API. Free to download, offline capable " "and easy to setup. Run your own API server in just a few minutes." msgstr "" -"Vrij en open source Machine Vertaling API. Self-hosted, offline capabel en " +"Vrij en open source Machine Vertaling API. Free to download, offline capabel en " "makkelijk te koppelen. Laat je eigen API-server binnen een paar minuten." #: libretranslate/templates/index.html:11 @@ -717,7 +717,7 @@ msgid "Open Source Machine Translation API" msgstr "Open source Machine Vertaling API" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "Zelf gehost. Offline Capable. Makkelijk te configureren." #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/nn/LC_MESSAGES/messages.po b/libretranslate/locales/nn/LC_MESSAGES/messages.po index be717c8..5eb2b9c 100644 --- a/libretranslate/locales/nn/LC_MESSAGES/messages.po +++ b/libretranslate/locales/nn/LC_MESSAGES/messages.po @@ -583,7 +583,7 @@ msgstr "" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline " +"Free and Open Source Machine Translation API. Free to download, offline " "capable and easy to setup. Run your own API server in just a few minutes." msgstr "" @@ -705,7 +705,7 @@ msgid "Open Source Machine Translation API" msgstr "" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "" #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/oc/LC_MESSAGES/messages.po b/libretranslate/locales/oc/LC_MESSAGES/messages.po index b53f55c..896fbc7 100644 --- a/libretranslate/locales/oc/LC_MESSAGES/messages.po +++ b/libretranslate/locales/oc/LC_MESSAGES/messages.po @@ -593,7 +593,7 @@ msgstr "API de traduccion automatica gratuita e liura" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline " +"Free and Open Source Machine Translation API. Free to download, offline " "capable and easy to setup. Run your own API server in just a few minutes." msgstr "" "API de traduccion automatica liura e dobèrta. Auto-albergada, fòra linha," @@ -718,7 +718,7 @@ msgid "Open Source Machine Translation API" msgstr "API de traduccion automatica liura" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "Auto albergat. Pòt foncionar fòra connexion. De bon configurar." #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/pa/LC_MESSAGES/messages.po b/libretranslate/locales/pa/LC_MESSAGES/messages.po index c5c3139..c33ebe6 100644 --- a/libretranslate/locales/pa/LC_MESSAGES/messages.po +++ b/libretranslate/locales/pa/LC_MESSAGES/messages.po @@ -582,7 +582,7 @@ msgstr "" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline " +"Free and Open Source Machine Translation API. Free to download, offline " "capable and easy to setup. Run your own API server in just a few minutes." msgstr "" @@ -704,7 +704,7 @@ msgid "Open Source Machine Translation API" msgstr "" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "" #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/pl/LC_MESSAGES/messages.po b/libretranslate/locales/pl/LC_MESSAGES/messages.po index c129a65..6e76919 100644 --- a/libretranslate/locales/pl/LC_MESSAGES/messages.po +++ b/libretranslate/locales/pl/LC_MESSAGES/messages.po @@ -591,7 +591,7 @@ msgstr "Free and Open Source Machine Translation API (ang.)" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline capable " +"Free and Open Source Machine Translation API. Free to download, offline capable " "and easy to setup. Run your own API server in just a few minutes." msgstr "" "Free and Open Source Machine Translation API (ang.). Samodzielny, niezdolny " @@ -715,8 +715,8 @@ msgid "Open Source Machine Translation API" msgstr "Open Source Machine Translation API" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." -msgstr "Self-Hosted (ang.). Offline Capable (ang.). Łatwe do realizacji." +msgid "Free to download. Offline Capable. Easy to Setup." +msgstr "Free to download (ang.). Offline Capable (ang.). Łatwe do realizacji." #: libretranslate/templates/index.html:337 msgid "LibreTranslate" diff --git a/libretranslate/locales/pt/LC_MESSAGES/messages.po b/libretranslate/locales/pt/LC_MESSAGES/messages.po index 0cc4d50..7641f1a 100644 --- a/libretranslate/locales/pt/LC_MESSAGES/messages.po +++ b/libretranslate/locales/pt/LC_MESSAGES/messages.po @@ -591,10 +591,10 @@ msgstr "API de tradução em máquina gratuita e de código aberto" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline " +"Free and Open Source Machine Translation API. Free to download, offline " "capable and easy to setup. Run your own API server in just a few minutes." msgstr "" -"API de tradução em máquina gratuita e de código aberto. Auto-hospedável, " +"API de tradução em máquina gratuita e de código aberto. Grátis para descarregar, " "off-line e fácil de configurar. Execute seu próprio servidor API em " "apenas alguns minutos." @@ -716,8 +716,8 @@ msgid "Open Source Machine Translation API" msgstr "API de tradução em máquina de código aberto" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." -msgstr "Auto-Hospedável. Funciona Offline. Fácil de configurar." +msgid "Free to download. Offline Capable. Easy to Setup." +msgstr "Grátis para descarregar. Funciona Offline. Fácil de configurar." #: libretranslate/templates/index.html:337 msgid "LibreTranslate" diff --git a/libretranslate/locales/pt_BR/LC_MESSAGES/messages.po b/libretranslate/locales/pt_BR/LC_MESSAGES/messages.po index ae673ee..b1e6778 100644 --- a/libretranslate/locales/pt_BR/LC_MESSAGES/messages.po +++ b/libretranslate/locales/pt_BR/LC_MESSAGES/messages.po @@ -597,10 +597,10 @@ msgstr "API de Tradução Automática Livre e de Código Aberto" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline " +"Free and Open Source Machine Translation API. Free to download, offline " "capable and easy to setup. Run your own API server in just a few minutes." msgstr "" -"API de Tradução Automática Livre e de Código Aberto. Auto-hospedado, " +"API de Tradução Automática Livre e de Código Aberto. Grátis para descarregar, " "também funciona offline e fácil de configurar. Execute seu próprio " "servidor de API em apenas alguns minutos." @@ -722,8 +722,8 @@ msgid "Open Source Machine Translation API" msgstr "API de Tradução Automática de Código Aberto" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." -msgstr "Auto-hospedável. Funciona offline. Fácil de configurar." +msgid "Free to download. Offline Capable. Easy to Setup." +msgstr "Grátis para descarregar. Funciona offline. Fácil de configurar." #: libretranslate/templates/index.html:337 msgid "LibreTranslate" diff --git a/libretranslate/locales/ro/LC_MESSAGES/messages.po b/libretranslate/locales/ro/LC_MESSAGES/messages.po index 13d7803..edf4809 100644 --- a/libretranslate/locales/ro/LC_MESSAGES/messages.po +++ b/libretranslate/locales/ro/LC_MESSAGES/messages.po @@ -594,10 +594,10 @@ msgstr "Gratuit și Open Source Machine Translation API" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline capable " +"Free and Open Source Machine Translation API. Free to download, offline capable " "and easy to setup. Run your own API server in just a few minutes." msgstr "" -"API de traducere automată gratuită și cu sursă deschisă. Self-hosted, " +"API de traducere automată gratuită și cu sursă deschisă. Free to download, " "capabil de offline și ușor de configurat. Rulați propriul server API în doar" " câteva minute." @@ -719,8 +719,8 @@ msgid "Open Source Machine Translation API" msgstr "Open Source Machine Translation API" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." -msgstr "Self-Hosted. Capabil offline. Ușor de instalat." +msgid "Free to download. Offline Capable. Easy to Setup." +msgstr "Free to download. Capabil offline. Ușor de instalat." #: libretranslate/templates/index.html:337 msgid "LibreTranslate" diff --git a/libretranslate/locales/ru/LC_MESSAGES/messages.po b/libretranslate/locales/ru/LC_MESSAGES/messages.po index 22db5cf..85547e7 100644 --- a/libretranslate/locales/ru/LC_MESSAGES/messages.po +++ b/libretranslate/locales/ru/LC_MESSAGES/messages.po @@ -594,11 +594,11 @@ msgstr "Бесплатный и открытый источник машинно #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline " +"Free and Open Source Machine Translation API. Free to download, offline " "capable and easy to setup. Run your own API server in just a few minutes." msgstr "" "Бесплатный и открытый источник машинного перевода с помощью API. " -"Самостоятельный хостинг, возможность работы в автономном режиме и " +"Бесплатно скачать, возможность работы в автономном режиме и " "простота настройки. Запустите свой собственный сервер API всего за " "несколько минут." @@ -720,9 +720,9 @@ msgid "Open Source Machine Translation API" msgstr "API машинного перевода с открытым исходным кодом" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "" -"Самостоятельный хостинг. Возможность работы в автономном режиме. Легко " +"Бесплатно скачать. Возможность работы в автономном режиме. Легко " "настраивается." #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/si/LC_MESSAGES/messages.po b/libretranslate/locales/si/LC_MESSAGES/messages.po index f918406..e525958 100644 --- a/libretranslate/locales/si/LC_MESSAGES/messages.po +++ b/libretranslate/locales/si/LC_MESSAGES/messages.po @@ -584,7 +584,7 @@ msgstr "" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline " +"Free and Open Source Machine Translation API. Free to download, offline " "capable and easy to setup. Run your own API server in just a few minutes." msgstr "" @@ -706,7 +706,7 @@ msgid "Open Source Machine Translation API" msgstr "" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "" #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/sk/LC_MESSAGES/messages.po b/libretranslate/locales/sk/LC_MESSAGES/messages.po index 303ffae..049dc51 100644 --- a/libretranslate/locales/sk/LC_MESSAGES/messages.po +++ b/libretranslate/locales/sk/LC_MESSAGES/messages.po @@ -591,7 +591,7 @@ msgstr "Zadarmo a Open Source strojový preklad API" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline capable " +"Free and Open Source Machine Translation API. Free to download, offline capable " "and easy to setup. Run your own API server in just a few minutes." msgstr "" "Zadarmo a Open Source strojového prekladu API. Seba-hosted, offline schopný " @@ -715,7 +715,7 @@ msgid "Open Source Machine Translation API" msgstr "Open Source strojového prekladu API" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "Samostatne. Offline Capable. Jednoduché nastavenie." #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/sl/LC_MESSAGES/messages.po b/libretranslate/locales/sl/LC_MESSAGES/messages.po index 1015377..5f5f167 100644 --- a/libretranslate/locales/sl/LC_MESSAGES/messages.po +++ b/libretranslate/locales/sl/LC_MESSAGES/messages.po @@ -589,7 +589,7 @@ msgstr "Brezplačno in odprtokodno strojno prevajanje API" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline capable " +"Free and Open Source Machine Translation API. Free to download, offline capable " "and easy to setup. Run your own API server in just a few minutes." msgstr "" "Brezplačno in odprtokodno strojno prevajanje API. Samo-gostitelj, brez " @@ -714,7 +714,7 @@ msgid "Open Source Machine Translation API" msgstr "API za prevajanje odprtokodnega stroja" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "Samosvoj. Nesposobna. Enostavna nastavitev." #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/sq/LC_MESSAGES/messages.po b/libretranslate/locales/sq/LC_MESSAGES/messages.po index a980ed0..ccf7a25 100644 --- a/libretranslate/locales/sq/LC_MESSAGES/messages.po +++ b/libretranslate/locales/sq/LC_MESSAGES/messages.po @@ -591,7 +591,7 @@ msgstr "Translation falas dhe i hapur i makinave" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline capable " +"Free and Open Source Machine Translation API. Free to download, offline capable " "and easy to setup. Run your own API server in just a few minutes." msgstr "" "Translation i Makinave Free dhe Open. Vetë-pritur, jashtë linje i aftë dhe i" @@ -715,7 +715,7 @@ msgid "Open Source Machine Translation API" msgstr "Përkthimi i Makinës Burimit" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "E vetmuar. Jashtë Kapit. E lehtë për t'u rregulluar." #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/sr/LC_MESSAGES/messages.po b/libretranslate/locales/sr/LC_MESSAGES/messages.po index 47375c6..c06391d 100644 --- a/libretranslate/locales/sr/LC_MESSAGES/messages.po +++ b/libretranslate/locales/sr/LC_MESSAGES/messages.po @@ -592,7 +592,7 @@ msgstr "Besplatni API za mašinsko prevođenje otvorenog koda" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline " +"Free and Open Source Machine Translation API. Free to download, offline " "capable and easy to setup. Run your own API server in just a few minutes." msgstr "" "Besplatni API za mašinsko prevođenje otvorenog koda. Hostovan na vašem " @@ -717,7 +717,7 @@ msgid "Open Source Machine Translation API" msgstr "API za prevođenje otvorenog koda" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "Hostujte sami. Radi i bez internet konekcije. Laka instalacija." #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/sv/LC_MESSAGES/messages.po b/libretranslate/locales/sv/LC_MESSAGES/messages.po index bd6cba5..2b4918c 100644 --- a/libretranslate/locales/sv/LC_MESSAGES/messages.po +++ b/libretranslate/locales/sv/LC_MESSAGES/messages.po @@ -607,7 +607,7 @@ msgstr "Gratis och öppen källkod Maskinöversättning API" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline capable " +"Free and Open Source Machine Translation API. Free to download, offline capable " "and easy to setup. Run your own API server in just a few minutes." msgstr "" "Gratis och öppen källkod Maskinöversättning API. Självvärd, offline kapabel " @@ -731,7 +731,7 @@ msgid "Open Source Machine Translation API" msgstr "API för maskinöversättning med öppen källkod" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "Självhäftad. Offline kapabel. Lätt att ställa in." #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/ta/LC_MESSAGES/messages.po b/libretranslate/locales/ta/LC_MESSAGES/messages.po index f2f63ce..29a3886 100644 --- a/libretranslate/locales/ta/LC_MESSAGES/messages.po +++ b/libretranslate/locales/ta/LC_MESSAGES/messages.po @@ -589,7 +589,7 @@ msgstr "இலவச மற்றும் திறந்த மூல இய #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline " +"Free and Open Source Machine Translation API. Free to download, offline " "capable and easy to setup. Run your own API server in just a few minutes." msgstr "" "இலவச மற்றும் திறந்த மூல இயந்திர மொழிபெயர்ப்பு பநிஇ. சுய-ஓச்ட், இணைப்பில்லாத திறன் மற்றும் " @@ -713,7 +713,7 @@ msgid "Open Source Machine Translation API" msgstr "திறந்த மூல இயந்திர மொழிபெயர்ப்பு பநிஇ" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "சுய-ஓச்ட். இணைப்பில்லாத திறன். அமைக்க எளிதானது." #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/th/LC_MESSAGES/messages.po b/libretranslate/locales/th/LC_MESSAGES/messages.po index d5ee964..d477501 100644 --- a/libretranslate/locales/th/LC_MESSAGES/messages.po +++ b/libretranslate/locales/th/LC_MESSAGES/messages.po @@ -589,7 +589,7 @@ msgstr "API ฟรีและโอเพนซอร์ส" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline capable " +"Free and Open Source Machine Translation API. Free to download, offline capable " "and easy to setup. Run your own API server in just a few minutes." msgstr "" "API ฟรีและโอเพนซอร์ส ระบบควบคุมตัวเอง เชื่อมต่อได้ง่าย เรียกใช้เซิร์ฟเวอร์ " @@ -713,7 +713,7 @@ msgid "Open Source Machine Translation API" msgstr "API สําหรับแปลภาษาแบบโอเพนซอร์ส" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "หลงตัวเอง ไม่มีสัญญาณ ง่ายต่อการจัดฉาก." #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/tl/LC_MESSAGES/messages.po b/libretranslate/locales/tl/LC_MESSAGES/messages.po index 4e0fea8..0af81f5 100644 --- a/libretranslate/locales/tl/LC_MESSAGES/messages.po +++ b/libretranslate/locales/tl/LC_MESSAGES/messages.po @@ -597,7 +597,7 @@ msgstr "API at Open Source Machine Translation" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline capable " +"Free and Open Source Machine Translation API. Free to download, offline capable " "and easy to setup. Run your own API server in just a few minutes." msgstr "" "Malaya at Open Source Machine Translation API. Sarili-hosted, offline may " @@ -722,7 +722,7 @@ msgid "Open Source Machine Translation API" msgstr "Open Source Machine Translation API" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "Sarili-Hosted. May Kapansanan. Madaling Itakda." #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/tr/LC_MESSAGES/messages.po b/libretranslate/locales/tr/LC_MESSAGES/messages.po index 74d1664..fd7078d 100644 --- a/libretranslate/locales/tr/LC_MESSAGES/messages.po +++ b/libretranslate/locales/tr/LC_MESSAGES/messages.po @@ -596,7 +596,7 @@ msgstr "Özgür ve Açık Kaynaklı Makine Çevirisi API'si" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline capable " +"Free and Open Source Machine Translation API. Free to download, offline capable " "and easy to setup. Run your own API server in just a few minutes." msgstr "" "Özgür ve Açık Kaynaklı Makine Çevirisi API'si. Kendiniz " @@ -721,7 +721,7 @@ msgid "Open Source Machine Translation API" msgstr "Açık Kaynaklı Makine Çevirisi API'si" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "" "Kendiniz Barındırabileceğiniz. Çevrim Dışı Çalışabilen. Kurulumu Kolay." diff --git a/libretranslate/locales/ug/LC_MESSAGES/messages.po b/libretranslate/locales/ug/LC_MESSAGES/messages.po index a9521cd..1cb6d64 100644 --- a/libretranslate/locales/ug/LC_MESSAGES/messages.po +++ b/libretranslate/locales/ug/LC_MESSAGES/messages.po @@ -583,7 +583,7 @@ msgstr "" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline " +"Free and Open Source Machine Translation API. Free to download, offline " "capable and easy to setup. Run your own API server in just a few minutes." msgstr "" @@ -705,7 +705,7 @@ msgid "Open Source Machine Translation API" msgstr "" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "" #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/uk/LC_MESSAGES/messages.po b/libretranslate/locales/uk/LC_MESSAGES/messages.po index a0ac6d2..753fe73 100644 --- a/libretranslate/locales/uk/LC_MESSAGES/messages.po +++ b/libretranslate/locales/uk/LC_MESSAGES/messages.po @@ -594,11 +594,11 @@ msgstr "Безкоштовний API машинного перекладу з в #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline " +"Free and Open Source Machine Translation API. Free to download, offline " "capable and easy to setup. Run your own API server in just a few minutes." msgstr "" "Безкоштовний API машинного перекладу з відкритим вихідним кодом. " -"Самостійне розміщення, можливість роботи в офлайн режимі та простота " +"Безкоштовне завантаження, можливість роботи в офлайн режимі та простота " "налаштування. Запустіть власний API сервер всього за кілька хвилин." #: libretranslate/templates/index.html:11 @@ -719,9 +719,9 @@ msgid "Open Source Machine Translation API" msgstr "API машинного перекладу з відкритим вихідним кодом" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "" -"Самостійне розміщення. Можливість роботи в офлайн режимі. Простота " +"Безкоштовне завантаження. Можливість роботи в офлайн режимі. Простота " "налаштування." #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/ur/LC_MESSAGES/messages.po b/libretranslate/locales/ur/LC_MESSAGES/messages.po index ef575fa..0ad5419 100644 --- a/libretranslate/locales/ur/LC_MESSAGES/messages.po +++ b/libretranslate/locales/ur/LC_MESSAGES/messages.po @@ -589,7 +589,7 @@ msgstr "آزاد اور کھلے ماخذ مشین اے پی آئی" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline capable " +"Free and Open Source Machine Translation API. Free to download, offline capable " "and easy to setup. Run your own API server in just a few minutes." msgstr "" "آزاد اور اوپن ماخذ مشین اے پی آئی۔ خود غرضی، بے قاعدہ صلاحیت اور آسانی سے " @@ -713,7 +713,7 @@ msgid "Open Source Machine Translation API" msgstr "دستیاب مشینوں کا ترجمہ اے پی آئی" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "خود مختار ہو گیا۔ ممکن ہے. تیار کرنے کے لئے آسان." #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/vi/LC_MESSAGES/messages.po b/libretranslate/locales/vi/LC_MESSAGES/messages.po index c464968..5413e91 100644 --- a/libretranslate/locales/vi/LC_MESSAGES/messages.po +++ b/libretranslate/locales/vi/LC_MESSAGES/messages.po @@ -590,7 +590,7 @@ msgstr "API dịch thuật máy miễn phí và mã nguồn mở" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline " +"Free and Open Source Machine Translation API. Free to download, offline " "capable and easy to setup. Run your own API server in just a few minutes." msgstr "" "API dịch thuật máy miễn phí và nguồn mở. Tự lưu trữ, có thể sử dụng ngoại" @@ -714,7 +714,7 @@ msgid "Open Source Machine Translation API" msgstr "API Dịch Máy Mã Nguồn Mở" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "Tự lưu trữ. Có thể dùng ngoại tuyến. Dễ cài đặt." #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/zgh/LC_MESSAGES/messages.po b/libretranslate/locales/zgh/LC_MESSAGES/messages.po index 5bef3fb..412ec82 100644 --- a/libretranslate/locales/zgh/LC_MESSAGES/messages.po +++ b/libretranslate/locales/zgh/LC_MESSAGES/messages.po @@ -583,7 +583,7 @@ msgstr "" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline " +"Free and Open Source Machine Translation API. Free to download, offline " "capable and easy to setup. Run your own API server in just a few minutes." msgstr "" @@ -705,7 +705,7 @@ msgid "Open Source Machine Translation API" msgstr "" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "" #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/zh/LC_MESSAGES/messages.po b/libretranslate/locales/zh/LC_MESSAGES/messages.po index 4f6686c..222d428 100644 --- a/libretranslate/locales/zh/LC_MESSAGES/messages.po +++ b/libretranslate/locales/zh/LC_MESSAGES/messages.po @@ -587,7 +587,7 @@ msgstr "免费开源的机器翻译API" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline " +"Free and Open Source Machine Translation API. Free to download, offline " "capable and easy to setup. Run your own API server in just a few minutes." msgstr "免费开源的机器翻译API。自我托管,支持离线且易于设置。只需几分钟就可以运行你自己的API服务器。" @@ -709,7 +709,7 @@ msgid "Open Source Machine Translation API" msgstr "开源的机器翻译API" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "自我托管。支持离线。易于设置。" #: libretranslate/templates/index.html:337 diff --git a/libretranslate/locales/zh_Hant/LC_MESSAGES/messages.po b/libretranslate/locales/zh_Hant/LC_MESSAGES/messages.po index d462ec0..2816869 100644 --- a/libretranslate/locales/zh_Hant/LC_MESSAGES/messages.po +++ b/libretranslate/locales/zh_Hant/LC_MESSAGES/messages.po @@ -583,7 +583,7 @@ msgstr "自由且開源的機器翻譯 API" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 msgid "" -"Free and Open Source Machine Translation API. Self-hosted, offline capable " +"Free and Open Source Machine Translation API. Free to download, offline capable " "and easy to setup. Run your own API server in just a few minutes." msgstr "" "自由且開源的機器翻譯 API。可自行架設,支援離線使用,且安裝簡便。只需幾分鐘即" @@ -707,7 +707,7 @@ msgid "Open Source Machine Translation API" msgstr "開源的機器翻譯 API" #: libretranslate/templates/index.html:318 -msgid "Self-Hosted. Offline Capable. Easy to Setup." +msgid "Free to download. Offline Capable. Easy to Setup." msgstr "自建。可離線。容易設定。" #: libretranslate/templates/index.html:337 diff --git a/libretranslate/templates/index.html b/libretranslate/templates/index.html index 7c5365d..6e057ce 100644 --- a/libretranslate/templates/index.html +++ b/libretranslate/templates/index.html @@ -7,7 +7,7 @@ {% endfor %} {% if web_version %} LibreTranslate - {{ _h("Free and Open Source Machine Translation API") }} 🌐 - + {% endif %} @@ -28,7 +28,7 @@ - + @@ -315,7 +315,7 @@

{{ _h("Open Source Machine Translation API") }}

-

{{ _h("Self-Hosted. Offline Capable. Easy to Setup.") }}

+

{{ _h("Free to download. Offline Capable. Easy to Setup.") }}

From e9e58e6b3f53b7cfcbebc56187815f2987d06e38 Mon Sep 17 00:00:00 2001 From: Piero Toffanin Date: Fri, 28 Feb 2025 12:20:38 -0500 Subject: [PATCH 021/114] Fix lang selector sort --- libretranslate/app.py | 2 +- libretranslate/templates/index.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libretranslate/app.py b/libretranslate/app.py index c1fd4ac..397951c 100644 --- a/libretranslate/app.py +++ b/libretranslate/app.py @@ -395,7 +395,7 @@ def create_app(args): web_version=os.environ.get("LT_WEB") is not None, version=get_version(), swagger_url=swagger_url, - available_locales=[{'code': l['code'], 'name': _lazy(l['name'])} for l in get_available_locales(not args.debug)], + available_locales=sorted([{'code': l['code'], 'name': _lazy(l['name'])} for l in get_available_locales(not args.debug)], key=lambda s: s['name']), current_locale=get_locale(), alternate_locales=get_alternate_locale_links() )) diff --git a/libretranslate/templates/index.html b/libretranslate/templates/index.html index 6e057ce..66bf936 100644 --- a/libretranslate/templates/index.html +++ b/libretranslate/templates/index.html @@ -76,7 +76,7 @@
  • {{ _h("Edit") }}create
  • From ba126883f621ceca12a805a7581a80727f266d52 Mon Sep 17 00:00:00 2001 From: Piero Toffanin Date: Fri, 28 Feb 2025 18:27:06 +0100 Subject: [PATCH 022/114] Translated using Weblate (Italian) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/it/ --- .../locales/it/LC_MESSAGES/messages.po | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/libretranslate/locales/it/LC_MESSAGES/messages.po b/libretranslate/locales/it/LC_MESSAGES/messages.po index 0aa4bfd..6ef29de 100644 --- a/libretranslate/locales/it/LC_MESSAGES/messages.po +++ b/libretranslate/locales/it/LC_MESSAGES/messages.po @@ -9,15 +9,16 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.3.9\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-10-16 23:47+0200\n" -"PO-Revision-Date: 2024-08-08 22:34+0000\n" +"PO-Revision-Date: 2025-03-01 18:02+0000\n" "Last-Translator: Piero Toffanin \n" +"Language-Team: Italian \n" "Language: it\n" -"Language-Team: Italian " -"\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.10.3-dev\n" "Generated-By: Babel 2.16.0\n" #: libretranslate/app.py:80 @@ -143,7 +144,7 @@ msgstr "Azero" #: libretranslate/locales/.langs.py:5 msgid "Basque" -msgstr "" +msgstr "Basco" #: libretranslate/locales/.langs.py:6 msgid "Bengali" @@ -195,7 +196,7 @@ msgstr "Francese" #: libretranslate/locales/.langs.py:18 msgid "Galician" -msgstr "" +msgstr "Galiziano" #: libretranslate/locales/.langs.py:19 msgid "German" @@ -733,7 +734,7 @@ msgstr "Licenza:" #: libretranslate/templates/index.html:345 #, python-format msgid "Made with %(heart)s by %(contributors)s and powered by %(engine)s" -msgstr "Realizzato con %(heart)s da %(contributors)s e powered by %(engine)s" +msgstr "Realizzato con %(heart)s da %(contributors)s e grazie a %(engine)s" #: libretranslate/templates/index.html:345 #, python-format @@ -764,4 +765,3 @@ msgstr "Contributori di %(libretranslate)s" #~ msgid "get an API key" #~ msgstr "ottieni una chiave API" - From 3c1312dd17e665adf7c65331471d3d6da6f3f554 Mon Sep 17 00:00:00 2001 From: ButterflyOfFire Date: Sun, 2 Mar 2025 05:39:30 +0100 Subject: [PATCH 023/114] Translated using Weblate (Arabic) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/ar/ --- .../locales/ar/LC_MESSAGES/messages.po | 54 ++++++++++--------- 1 file changed, 29 insertions(+), 25 deletions(-) diff --git a/libretranslate/locales/ar/LC_MESSAGES/messages.po b/libretranslate/locales/ar/LC_MESSAGES/messages.po index 53a43c4..9f07ad2 100644 --- a/libretranslate/locales/ar/LC_MESSAGES/messages.po +++ b/libretranslate/locales/ar/LC_MESSAGES/messages.po @@ -9,14 +9,17 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.3.9\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-10-16 23:47+0200\n" -"PO-Revision-Date: 2023-11-02 04:00+0000\n" -"Last-Translator: Rex_sa \n" -"Language-Team: Arabic \n" +"PO-Revision-Date: 2025-03-02 05:55+0000\n" +"Last-Translator: ButterflyOfFire \n" +"Language-Team: Arabic \n" "Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=0 && n%100<=2 ? 4 : 5);\n" +"Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=0 && n%100<=2 ? 4 : 5);\n" +"X-Generator: Weblate 5.10.3-dev\n" "Generated-By: Babel 2.16.0\n" #: libretranslate/app.py:80 @@ -134,7 +137,7 @@ msgstr "العربية" #: libretranslate/locales/.langs.py:4 msgid "Azerbaijani" -msgstr "أذربيجان" +msgstr "الأذربيجانية" #: libretranslate/locales/.langs.py:5 msgid "Basque" @@ -166,15 +169,15 @@ msgstr "التشيكية" #: libretranslate/locales/.langs.py:12 msgid "Danish" -msgstr "الدنمارك" +msgstr "الدنماركية" #: libretranslate/locales/.langs.py:13 msgid "Dutch" -msgstr "هولندا" +msgstr "الهولندية" #: libretranslate/locales/.langs.py:14 msgid "Esperanto" -msgstr "Esperanto" +msgstr "الإسبيرنتو" #: libretranslate/locales/.langs.py:15 msgid "Estonian" @@ -182,7 +185,7 @@ msgstr "إستونيا" #: libretranslate/locales/.langs.py:16 msgid "Finnish" -msgstr "فنلندا" +msgstr "الفنلندية" #: libretranslate/locales/.langs.py:17 msgid "French" @@ -194,11 +197,11 @@ msgstr "غاليشي" #: libretranslate/locales/.langs.py:19 msgid "German" -msgstr "ألمانيا" +msgstr "الألمانية" #: libretranslate/locales/.langs.py:20 msgid "Greek" -msgstr "يوناني" +msgstr "اليونانية" #: libretranslate/locales/.langs.py:21 msgid "Hebrew" @@ -210,7 +213,7 @@ msgstr "الهندية" #: libretranslate/locales/.langs.py:23 msgid "Hungarian" -msgstr "هنغاريا" +msgstr "الهنغارية" #: libretranslate/locales/.langs.py:24 msgid "Indonesian" @@ -218,19 +221,19 @@ msgstr "الإندونيسية" #: libretranslate/locales/.langs.py:25 msgid "Irish" -msgstr "أيرلندا" +msgstr "الأيرلندية" #: libretranslate/locales/.langs.py:26 msgid "Italian" -msgstr "إيطاليا" +msgstr "الإيطالية" #: libretranslate/locales/.langs.py:27 msgid "Japanese" -msgstr "اليابان" +msgstr "اليابانية" #: libretranslate/locales/.langs.py:28 msgid "Korean" -msgstr "كوريا" +msgstr "الكورية" #: libretranslate/locales/.langs.py:29 msgid "Latvian" @@ -250,15 +253,15 @@ msgstr "النرويج" #: libretranslate/locales/.langs.py:33 msgid "Persian" -msgstr "Persian" +msgstr "الفارسية" #: libretranslate/locales/.langs.py:34 msgid "Polish" -msgstr "بولندا" +msgstr "البولندية" #: libretranslate/locales/.langs.py:35 msgid "Portuguese" -msgstr "البرتغال" +msgstr "البرتغالية" #: libretranslate/locales/.langs.py:36 msgid "Romanian" @@ -270,7 +273,7 @@ msgstr "الروسية" #: libretranslate/locales/.langs.py:38 msgid "Slovak" -msgstr "سلوفاكيا" +msgstr "السلوفاكية" #: libretranslate/locales/.langs.py:39 msgid "Slovenian" @@ -282,7 +285,7 @@ msgstr "الإسبانية" #: libretranslate/locales/.langs.py:41 msgid "Swedish" -msgstr "السويد" +msgstr "السويدية" #: libretranslate/locales/.langs.py:42 msgid "Tagalog" @@ -294,7 +297,7 @@ msgstr "تايلند" #: libretranslate/locales/.langs.py:44 msgid "Turkish" -msgstr "تركيا" +msgstr "التركية" #: libretranslate/locales/.langs.py:45 msgid "Ukranian" @@ -589,8 +592,9 @@ msgid "" "Free and Open Source Machine Translation API. Free to download, offline capable " "and easy to setup. Run your own API server in just a few minutes." msgstr "" -"واجهة برمجة تطبيقات الترجمة الآلية المجانية والمفتوحة المصدر .مجاني للتحميل غير مباشر قادر" -" وسهل التجهيز أدير خادمك الخاص في غضون دقائق." +"واجهة حرة ومفتوحة المصدر لبرمجة تطبيقات الترجمة الآلية. متاح للتنزيل مجانا " +"ويعمل دون اتصال بالانترنت وسهل للتثبيت. قوموا بإطلاق خادمكم الخاص في غضون " +"دقائق." #: libretranslate/templates/index.html:11 msgid "translation" @@ -610,7 +614,7 @@ msgstr "الحصول على مفتاح API" #: libretranslate/templates/index.html:71 msgid "GitHub" -msgstr "GitHub" +msgstr "غيت هب" #: libretranslate/templates/index.html:73 msgid "Set API Key" From e56c62b9569594133cb9768f0628f2f0ef2a22a2 Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Sun, 2 Mar 2025 11:21:59 +0100 Subject: [PATCH 024/114] Translated using Weblate (Hebrew) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/he/ --- libretranslate/locales/he/LC_MESSAGES/messages.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libretranslate/locales/he/LC_MESSAGES/messages.po b/libretranslate/locales/he/LC_MESSAGES/messages.po index 536551f..4afe20a 100644 --- a/libretranslate/locales/he/LC_MESSAGES/messages.po +++ b/libretranslate/locales/he/LC_MESSAGES/messages.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.3.9\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-10-16 23:47+0200\n" -"PO-Revision-Date: 2024-11-16 07:05+0000\n" +"PO-Revision-Date: 2025-03-02 13:39+0000\n" "Last-Translator: Yaron Shahrabani \n" "Language-Team: Hebrew \n" @@ -18,7 +18,7 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Weblate 5.9-dev\n" +"X-Generator: Weblate 5.10.3-dev\n" "Generated-By: Babel 2.16.0\n" #: libretranslate/app.py:80 @@ -713,7 +713,7 @@ msgstr "קוד פתוח תרגום API" #: libretranslate/templates/index.html:318 msgid "Free to download. Offline Capable. Easy to Setup." -msgstr "מוגן. Offline Capable קל להגדרה." +msgstr "חופשי להורדה. תואם להפעלה בלי אינטנרנט. קל להגדרה." #: libretranslate/templates/index.html:337 msgid "LibreTranslate" From e983619919b324be19359160bc183629936c1937 Mon Sep 17 00:00:00 2001 From: summoner001 Date: Sun, 2 Mar 2025 16:01:02 +0100 Subject: [PATCH 025/114] Translated using Weblate (Hungarian) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/hu/ --- .../locales/hu/LC_MESSAGES/messages.po | 129 +++++++++--------- 1 file changed, 66 insertions(+), 63 deletions(-) diff --git a/libretranslate/locales/hu/LC_MESSAGES/messages.po b/libretranslate/locales/hu/LC_MESSAGES/messages.po index 11ef068..ffafeaf 100644 --- a/libretranslate/locales/hu/LC_MESSAGES/messages.po +++ b/libretranslate/locales/hu/LC_MESSAGES/messages.po @@ -9,8 +9,8 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.3.9\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-10-16 23:47+0200\n" -"PO-Revision-Date: 2024-10-23 17:15+0000\n" -"Last-Translator: Ghost of Sparta \n" +"PO-Revision-Date: 2025-03-02 18:00+0000\n" +"Last-Translator: summoner001 \n" "Language-Team: Hungarian \n" "Language: hu\n" @@ -18,7 +18,7 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 5.8.2-dev\n" +"X-Generator: Weblate 5.10.3-dev\n" "Generated-By: Babel 2.16.0\n" #: libretranslate/app.py:80 @@ -35,22 +35,22 @@ msgstr "Nincs jogosultsága" #: libretranslate/app.py:291 msgid "Too many request limits violations" -msgstr "Túl sok kérelem korlátozza a jogsértéseket" +msgstr "Túl sok kérelem határértéke elérve" #: libretranslate/app.py:298 msgid "Invalid API key" -msgstr "Érvénytelen API kulcs" +msgstr "Érvénytelen API-kulcs" #: libretranslate/app.py:324 msgid "Please contact the server operator to get an API key" msgstr "" -"Vegye fel a kapcsolatot a kiszolgáló-üzemeltetővel, hogy megkapja az API " +"Vegye fel a kapcsolatot a kiszolgáló üzemeltetőjével, hogy megkapja az API-" "kulcsot" #: libretranslate/app.py:326 #, python-format msgid "Visit %(url)s to get an API key" -msgstr "Látogasson el a(z) %(url)s címre, API kulcshoz" +msgstr "Látogasson el a(z) %(url)s címre, API-kulcshoz" #: libretranslate/app.py:373 msgid "Slowdown:" @@ -69,30 +69,32 @@ msgstr "Érvénytelen kérés: hiányzik a(z) %(name)s paraméter" #: libretranslate/app.py:615 #, python-format msgid "Invalid request: %(name)s parameter is not a number" -msgstr "Érvénytelen kérés: 0 0 paraméter nem szám %(name)s" +msgstr "Érvénytelen kérés: a(z) %(name)s paraméter nem egy szám" #: libretranslate/app.py:618 #, python-format msgid "Invalid request: %(name)s parameter must be <= %(value)s" -msgstr "Érvénytelen kérés: 0 0 paraméternek <= %(value)s %(name)s" +msgstr "" +"Érvénytelen kérés: a(z) %(name)s paraméternek a következőnek kell lennie: " +"%(value)s" #: libretranslate/app.py:635 libretranslate/app.py:645 #, python-format msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)" msgstr "" -"Érvénytelen kérés: a kérés mérete (%(size)s) meghaladja a szövegkorlátot " -"(%(limit)s)" +"Érvénytelen kérés: a kérés mérete (%(size)s) meghaladja a(z) (%(limit)s) " +"szövegkorlátot" #: libretranslate/app.py:660 libretranslate/app.py:665 #: libretranslate/app.py:834 libretranslate/app.py:839 #, python-format msgid "%(lang)s is not supported" -msgstr "%(lang)s nyelv nem támogatott" +msgstr "a(z) %(lang)s nyelv nem támogatott" #: libretranslate/app.py:671 #, python-format msgid "%(format)s format is not supported" -msgstr "%(format)s formátum nem támogatott" +msgstr "a(z) %(format)s formátum nem támogatott" #: libretranslate/app.py:680 libretranslate/app.py:704 #, python-format @@ -100,13 +102,13 @@ msgid "" "%(tname)s (%(tcode)s) is not available as a target language from " "%(sname)s (%(scode)s)" msgstr "" -"%(tname)s (%(tcode)s) nem áll rendelkezésre célnyelvként %(sname)s " -"(%(scode)s)" +"%(tname)s (%(tcode)s) nem áll rendelkezésre célnyelvként a következőből: " +"%(sname)s (%(scode)s)" #: libretranslate/app.py:724 #, python-format msgid "Cannot translate text: %(text)s" -msgstr "Nem fordítható szöveg: %(text)s" +msgstr "A következő szöveg nem fordítható: %(text)s" #: libretranslate/app.py:811 libretranslate/app.py:872 msgid "Files translation are disabled on this server." @@ -114,11 +116,11 @@ msgstr "A fájlfordítások ki vannak kapcsolva ezen a kiszolgálón." #: libretranslate/app.py:826 msgid "Invalid request: empty file" -msgstr "Érvénytelen kérés: üres fájl" +msgstr "Érvénytelen kérés: a fájl üres" #: libretranslate/app.py:829 msgid "Invalid request: file format not supported" -msgstr "Érvénytelen kérés: fájlformátum nem támogatott" +msgstr "Érvénytelen kérés: a fájlformátum nem támogatott" #: libretranslate/app.py:880 msgid "Invalid filename" @@ -326,7 +328,7 @@ msgstr "Vietnámi" #: libretranslate/locales/.swag.py:1 msgid "Retrieve list of supported languages" -msgstr "Támogatott nyelvek listájának lekérése" +msgstr "A támogatott nyelvek listájának lekérése" #: libretranslate/locales/.swag.py:2 msgid "List of languages" @@ -338,11 +340,11 @@ msgstr "fordítás" #: libretranslate/locales/.swag.py:4 msgid "Translate text from a language to another" -msgstr "Szöveg fordítása egy nyelvről egy másikra" +msgstr "Szöveg fordítása az egyik nyelvről a másikra" #: libretranslate/locales/.swag.py:5 libretranslate/templates/index.html:224 msgid "Translated text" -msgstr "Fordított szöveg" +msgstr "Lefordított szöveg" #: libretranslate/locales/.swag.py:6 msgid "Invalid request" @@ -370,11 +372,11 @@ msgstr "Lefordítandó szöveg(ek)" #: libretranslate/locales/.swag.py:12 msgid "Source language code" -msgstr "Forrás nyelv kódja" +msgstr "Forrásnyelv kódja" #: libretranslate/locales/.swag.py:13 msgid "Target language code" -msgstr "Cél nyelv kódja" +msgstr "Célnyelv kódja" #: libretranslate/locales/.swag.py:14 msgid "text" @@ -390,41 +392,41 @@ msgid "" " * `text` - Plain text\n" " * `html` - HTML markup\n" msgstr "" -"Formátum forrás szöveg:\n" +"Forrásszöveg formátuma:\n" "* `text' - egyszerű szöveg\n" "* `html' - HTML markup\n" #: libretranslate/locales/.swag.py:17 msgid "Preferred number of alternative translations" -msgstr "Előnyös számú alternatív fordítás" +msgstr "Az alternatív fordítások előnyben részesített száma" #: libretranslate/locales/.swag.py:18 msgid "API key" -msgstr "API kulcs" +msgstr "API-kulcs" #: libretranslate/locales/.swag.py:19 msgid "Translate file from a language to another" -msgstr "Fájl fordítása egy nyelvről egy másikra" +msgstr "Fájl fordítása az egyik nyelvről a másikra" #: libretranslate/locales/.swag.py:20 msgid "Translated file" -msgstr "Fordított fájl" +msgstr "Lefordított fájl" #: libretranslate/locales/.swag.py:21 msgid "File to translate" -msgstr "Fájl fordítása" +msgstr "Fájl lefordítása" #: libretranslate/locales/.swag.py:22 msgid "Detect the language of a single text" -msgstr "A szöveg nyelvének észlelése" +msgstr "Egyetlen szöveg nyelvének felismerése" #: libretranslate/locales/.swag.py:23 msgid "Detections" -msgstr "Észlelések" +msgstr "Felismerések" #: libretranslate/locales/.swag.py:24 msgid "Detection error" -msgstr "Észlelési hiba" +msgstr "Felismerési hiba" #: libretranslate/locales/.swag.py:25 msgid "Text to detect" @@ -432,19 +434,19 @@ msgstr "Felismerendő szöveg" #: libretranslate/locales/.swag.py:26 msgid "Retrieve frontend specific settings" -msgstr "Frontend-specifikus beállítások lekérése" +msgstr "Előtétprogram-specifikus beállítások lekérése" #: libretranslate/locales/.swag.py:27 msgid "frontend settings" -msgstr "frontend beállítások" +msgstr "előtétprogram-beállítások" #: libretranslate/locales/.swag.py:28 msgid "frontend" -msgstr "frontend" +msgstr "előtétprogram" #: libretranslate/locales/.swag.py:29 msgid "Submit a suggestion to improve a translation" -msgstr "Küldjön javaslatot a fordítás javításához" +msgstr "Küldjön javaslatot egy fordítás javításához" #: libretranslate/locales/.swag.py:30 msgid "Success" @@ -464,7 +466,7 @@ msgstr "Javasolt fordítás" #: libretranslate/locales/.swag.py:34 msgid "Language of original text" -msgstr "Eredeti szöveg nyelve" +msgstr "Az eredeti szöveg nyelve" #: libretranslate/locales/.swag.py:35 msgid "Language of suggested translation" @@ -488,7 +490,7 @@ msgstr "Támogatott célnyelvi kódok" #: libretranslate/locales/.swag.py:40 msgid "Translated text(s)" -msgstr "Fordított szöveg(ek)" +msgstr "Lefordított szöveg(ek)" #: libretranslate/locales/.swag.py:41 msgid "Error message" @@ -500,31 +502,32 @@ msgstr "A lelassulás oka" #: libretranslate/locales/.swag.py:43 msgid "Translated file url" -msgstr "Fordított fájl url" +msgstr "Lefordított fájl webcíme" #: libretranslate/locales/.swag.py:44 msgid "Confidence value" -msgstr "Bizalmi érték" +msgstr "Megbízhatósági érték" #: libretranslate/locales/.swag.py:45 msgid "Character input limit for this language (-1 indicates no limit)" -msgstr "Jellemző bemeneti határértéke ennek a nyelvnek (-1 nem jelzi a határt)" +msgstr "" +"Karakterbeviteli korlát ezen a nyelven (-1 azt jelenti, hogy nincs korlát)" #: libretranslate/locales/.swag.py:46 msgid "Frontend translation timeout" -msgstr "Frontend fordítás időtúllépés" +msgstr "Előtétprogram-fordítási időtúllépés" #: libretranslate/locales/.swag.py:47 msgid "Whether the API key database is enabled." -msgstr "Függetlenül attól, hogy az API kulcs adatbázisa engedélyezett-e." +msgstr "Független attól, hogy az API-kulcs adatbázisa engedélyezve van-e." #: libretranslate/locales/.swag.py:48 msgid "Whether an API key is required." -msgstr "Szükséges-e API kulcs." +msgstr "Független attól, hogy az API-kulcs szükséges-e." #: libretranslate/locales/.swag.py:49 msgid "Whether submitting suggestions is enabled." -msgstr "Engedélyezve van-e a javaslatok beküldése." +msgstr "Független attól, hogy engedélyezve van-e a javaslatok beküldése." #: libretranslate/locales/.swag.py:50 msgid "Supported files format" @@ -532,7 +535,7 @@ msgstr "Támogatott fájlformátum" #: libretranslate/locales/.swag.py:51 msgid "Whether submission was successful" -msgstr "Amennyiben a beküldés sikeres volt" +msgstr "Független attól, hogy a beküldés sikeres volt-e" #: libretranslate/templates/app.js.template:31 #: libretranslate/templates/app.js.template:294 @@ -549,7 +552,7 @@ msgstr "Szöveg másolása" #: libretranslate/templates/app.js.template:487 #, python-format msgid "Cannot load %(url)s" -msgstr "Nem tölthető be a(z) %(url)s" +msgstr "Nem tölthető be a(z) %(url)s webcím" #: libretranslate/templates/app.js.template:272 #: libretranslate/templates/app.js.template:342 @@ -577,15 +580,17 @@ msgstr "Nincsenek elérhető nyelvek. Helyesen telepítette a modelleket?" #: libretranslate/templates/app.js.template:530 #, python-format msgid "Type in your API Key. If you need an API key, %(instructions)s" -msgstr "Írja be az API kulcsot. Ha szüksége van egy API kulcsra, %(instructions)s" +msgstr "" +"Írja be az API-kulcsot. Ha szüksége van egy API-kulcsra, tekintse meg a " +"következőt: %(instructions)s" #: libretranslate/templates/app.js.template:530 msgid "press the \"Get API Key\" link." -msgstr "nyomja meg a \"Get API Key\" hivatkozást." +msgstr "kattintson az „API-kulcs beszerzése” hivatkozásra." #: libretranslate/templates/app.js.template:530 msgid "contact the server operator." -msgstr "lépjen kapcsolatba a kiszolgáló-üzemeltetővel." +msgstr "lépjen kapcsolatba a kiszolgáló üzemeltetőjével." #: libretranslate/templates/index.html:9 libretranslate/templates/index.html:27 #: libretranslate/templates/index.html:338 @@ -599,7 +604,7 @@ msgid "" "capable and easy to setup. Run your own API server in just a few minutes." msgstr "" "Ingyenes és nyílt forráskódú gépi fordító API. Ingyenesen letölthető, " -"offline működő és könnyen telepíthető. Futtassa saját API kiszolgálóját " +"offline működő és könnyen telepíthető. Futtassa a saját API-kiszolgálóját " "néhány perc alatt." #: libretranslate/templates/index.html:11 @@ -612,11 +617,11 @@ msgstr "api" #: libretranslate/templates/index.html:67 msgid "API Docs" -msgstr "API Dokumentáció" +msgstr "API-dokumentáció" #: libretranslate/templates/index.html:69 msgid "Get API Key" -msgstr "Szerezzen API kucsot" +msgstr "API-kulcs beszerzése" #: libretranslate/templates/index.html:71 msgid "GitHub" @@ -624,7 +629,7 @@ msgstr "GitHub" #: libretranslate/templates/index.html:73 msgid "Set API Key" -msgstr "Állítsa be az API kulcsot" +msgstr "API-kulcs beállítása" #: libretranslate/templates/index.html:75 msgid "Change language" @@ -640,7 +645,7 @@ msgstr "Váltás sötét/világos módra" #: libretranslate/templates/index.html:159 msgid "Dismiss" -msgstr "elvetés" +msgstr "Elvetés" #: libretranslate/templates/index.html:173 msgid "Translation API" @@ -656,7 +661,7 @@ msgstr "Fájlok fordítása" #: libretranslate/templates/index.html:187 msgid "Translate from" -msgstr "Fordítási ürlap" +msgstr "Fordítás erről:" #: libretranslate/templates/index.html:197 msgid "Swap source and target languages" @@ -664,7 +669,7 @@ msgstr "Forrás és célnyelv felcserélése" #: libretranslate/templates/index.html:200 msgid "Translate into" -msgstr "Fordítsd le ebbe" +msgstr "Fordítás erre:" #: libretranslate/templates/index.html:212 msgid "Text to translate" @@ -676,7 +681,7 @@ msgstr "Szöveg törlése" #: libretranslate/templates/index.html:228 msgid "Suggest translation" -msgstr "Javasoljon fordítást" +msgstr "Fordítás javaslása" #: libretranslate/templates/index.html:232 msgid "Cancel" @@ -717,7 +722,7 @@ msgstr "Válasz" #: libretranslate/templates/index.html:317 msgid "Open Source Machine Translation API" -msgstr "Nyílt Forráskódú Gépi Fordító API" +msgstr "Nyílt forráskódú gépi fordító API" #: libretranslate/templates/index.html:318 msgid "Free to download. Offline Capable. Easy to Setup." @@ -734,14 +739,12 @@ msgstr "Licenc:" #: libretranslate/templates/index.html:345 #, python-format msgid "Made with %(heart)s by %(contributors)s and powered by %(engine)s" -msgstr "" -"%(heart)s-el készítve. Közreműködtek %(contributors)s működtetve ezzel: " -"%(engine)s" +msgstr "%(heart)s-vel készítik a %(contributors)s és az %(engine)s támogatja" #: libretranslate/templates/index.html:345 #, python-format msgid "%(libretranslate)s Contributors" -msgstr "%(libretranslate)s Közreműködők" +msgstr "%(libretranslate)s közreműködői" #~ msgid "multipart/form-data" #~ msgstr "multipart/form-data" From 8466c0507e2fd4e1442ae69906cf363230393a1f Mon Sep 17 00:00:00 2001 From: ButterflyOfFire Date: Wed, 5 Mar 2025 06:26:59 +0100 Subject: [PATCH 026/114] Translated using Weblate (French) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/fr/ --- libretranslate/locales/fr/LC_MESSAGES/messages.po | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libretranslate/locales/fr/LC_MESSAGES/messages.po b/libretranslate/locales/fr/LC_MESSAGES/messages.po index 477c97c..c73bb3c 100644 --- a/libretranslate/locales/fr/LC_MESSAGES/messages.po +++ b/libretranslate/locales/fr/LC_MESSAGES/messages.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.3.9\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-10-16 23:47+0200\n" -"PO-Revision-Date: 2025-01-31 09:02+0000\n" +"PO-Revision-Date: 2025-03-05 07:12+0000\n" "Last-Translator: ButterflyOfFire \n" "Language-Team: French \n" @@ -18,7 +18,7 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 5.10-dev\n" +"X-Generator: Weblate 5.10.3-dev\n" "Generated-By: Babel 2.16.0\n" #: libretranslate/app.py:80 @@ -67,12 +67,12 @@ msgstr "Requête incorrecte : le paramètre %(name)s est manquant" #: libretranslate/app.py:615 #, python-format msgid "Invalid request: %(name)s parameter is not a number" -msgstr "Demande non valable: %(name)s paramètre n'est pas un nombre" +msgstr "Requête non valide : le paramètre %(name)s n'est pas un nombre" #: libretranslate/app.py:618 #, python-format msgid "Invalid request: %(name)s parameter must be <= %(value)s" -msgstr "Demande non valable: %(name)s paramètre doit être <= %(value)s" +msgstr "Requête non valide : le paramètre %(name)s doit être <= %(value)s" #: libretranslate/app.py:635 libretranslate/app.py:645 #, python-format @@ -196,7 +196,7 @@ msgstr "français" #: libretranslate/locales/.langs.py:18 msgid "Galician" -msgstr "" +msgstr "Galicien" #: libretranslate/locales/.langs.py:19 msgid "German" From adecc15d16e53960f0572c683858aa8aca5c0ffc Mon Sep 17 00:00:00 2001 From: ButterflyOfFire Date: Wed, 5 Mar 2025 06:18:28 +0100 Subject: [PATCH 027/114] Translated using Weblate (Kabyle) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/kab/ --- libretranslate/locales/kab/LC_MESSAGES/messages.po | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libretranslate/locales/kab/LC_MESSAGES/messages.po b/libretranslate/locales/kab/LC_MESSAGES/messages.po index 6c5be58..270c613 100644 --- a/libretranslate/locales/kab/LC_MESSAGES/messages.po +++ b/libretranslate/locales/kab/LC_MESSAGES/messages.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.3.9\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-10-16 23:47+0200\n" -"PO-Revision-Date: 2024-12-21 11:46+0000\n" +"PO-Revision-Date: 2025-03-05 07:12+0000\n" "Last-Translator: ButterflyOfFire \n" "Language-Team: Kabyle \n" @@ -18,7 +18,7 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 5.10-dev\n" +"X-Generator: Weblate 5.10.3-dev\n" "Generated-By: Babel 2.16.0\n" #: libretranslate/app.py:80 @@ -67,12 +67,13 @@ msgstr "Assuter arameɣtu: ixuṣṣ uɣewwar %(name)s" #: libretranslate/app.py:615 #, python-format msgid "Invalid request: %(name)s parameter is not a number" -msgstr "" +msgstr "Asuter ur yettwaqbal ara: asefran %(name)s mačči d uṭun" #: libretranslate/app.py:618 #, python-format msgid "Invalid request: %(name)s parameter must be <= %(value)s" msgstr "" +"Asuter ur yettwaqbal ara: asefran %(name)s yessefk ad yili d <= %(value)s" #: libretranslate/app.py:635 libretranslate/app.py:645 #, python-format From 5d73e00664ba46854ad130d417825d16ac88921e Mon Sep 17 00:00:00 2001 From: Piero Toffanin Date: Thu, 20 Mar 2025 11:11:21 -0400 Subject: [PATCH 028/114] Detect emoji translation requests --- libretranslate/app.py | 78 ++++++++++++++++++++++++++++++++----------- 1 file changed, 58 insertions(+), 20 deletions(-) diff --git a/libretranslate/app.py b/libretranslate/app.py index 397951c..0952290 100644 --- a/libretranslate/app.py +++ b/libretranslate/app.py @@ -37,6 +37,19 @@ from libretranslate.locales import ( from .api_keys import Database, RemoteDatabase from .suggestions import Database as SuggestionsDatabase +# Rough map of emoji characters +emojis = {e: True for e in \ + [ord(' ')] + # Spaces + list(range(0x1F600,0x1F64F)) + # Emoticons + list(range(0x1F300,0x1F5FF)) + # Misc Symbols and Pictographs + list(range(0x1F680,0x1F6FF)) + # Transport and Map + list(range(0x2600,0x26FF)) + # Misc symbols + list(range(0x2700,0x27BF)) + # Dingbats + list(range(0xFE00,0xFE0F)) + # Variation Selectors + list(range(0x1F900,0x1F9FF)) + # Supplemental Symbols and Pictographs + list(range(0x1F1E6,0x1F1FF)) + # Flags + list(range(0x20D0,0x20FF)) # Combining Diacritical Marks for Symbols +} def get_version(): try: @@ -153,6 +166,19 @@ def filter_unique(seq, extra): seen_add = seen.add return [x for x in seq if not (x in seen or seen_add(x))] + +def detect_translatable(src_texts): + if isinstance(src_texts, list): + return any(detect_translatable(t) for t in src_texts) + + for ch in src_texts: + if not (ord(ch) in emojis): + return True + + # All emojis + return False + + def create_app(args): from libretranslate.init import boot @@ -647,13 +673,17 @@ def create_app(args): if batch: request.req_cost = max(1, len(q)) - - if source_lang == "auto": - candidate_langs = detect_languages(src_texts) - detected_src_lang = candidate_langs[0] + + translatable = detect_translatable(src_texts) + if translatable: + if source_lang == "auto": + candidate_langs = detect_languages(src_texts) + detected_src_lang = candidate_langs[0] + else: + detected_src_lang = {"confidence": 100.0, "language": source_lang} else: - detected_src_lang = {"confidence": 100.0, "language": source_lang} - + detected_src_lang = {"confidence": 0.0, "language": "en"} + src_lang = next(iter([l for l in languages if l.code == detected_src_lang["language"]]), None) if src_lang is None: @@ -679,14 +709,18 @@ def create_app(args): if translator is None: abort(400, description=_("%(tname)s (%(tcode)s) is not available as a target language from %(sname)s (%(scode)s)", tname=_lazy(tgt_lang.name), tcode=tgt_lang.code, sname=_lazy(src_lang.name), scode=src_lang.code)) - if text_format == "html": - translated_text = unescape(str(translate_html(translator, text))) - alternatives = [] # Not supported for html yet + if translatable: + if text_format == "html": + translated_text = unescape(str(translate_html(translator, text))) + alternatives = [] # Not supported for html yet + else: + hypotheses = translator.hypotheses(text, num_alternatives + 1) + translated_text = unescape(improve_translation_formatting(text, hypotheses[0].value)) + alternatives = filter_unique([unescape(improve_translation_formatting(text, hypotheses[i].value)) for i in range(1, len(hypotheses))], translated_text) else: - hypotheses = translator.hypotheses(text, num_alternatives + 1) - translated_text = unescape(improve_translation_formatting(text, hypotheses[0].value)) - alternatives = filter_unique([unescape(improve_translation_formatting(text, hypotheses[i].value)) for i in range(1, len(hypotheses))], translated_text) - + translated_text = text # Cannot translate, send the original text back + alternatives = [] + batch_results.append(translated_text) batch_alternatives.append(alternatives) @@ -703,14 +737,18 @@ def create_app(args): if translator is None: abort(400, description=_("%(tname)s (%(tcode)s) is not available as a target language from %(sname)s (%(scode)s)", tname=_lazy(tgt_lang.name), tcode=tgt_lang.code, sname=_lazy(src_lang.name), scode=src_lang.code)) - if text_format == "html": - translated_text = unescape(str(translate_html(translator, q))) - alternatives = [] # Not supported for html yet + if translatable: + if text_format == "html": + translated_text = unescape(str(translate_html(translator, q))) + alternatives = [] # Not supported for html yet + else: + hypotheses = translator.hypotheses(q, num_alternatives + 1) + translated_text = unescape(improve_translation_formatting(q, hypotheses[0].value)) + alternatives = filter_unique([unescape(improve_translation_formatting(q, hypotheses[i].value)) for i in range(1, len(hypotheses))], translated_text) else: - hypotheses = translator.hypotheses(q, num_alternatives + 1) - translated_text = unescape(improve_translation_formatting(q, hypotheses[0].value)) - alternatives = filter_unique([unescape(improve_translation_formatting(q, hypotheses[i].value)) for i in range(1, len(hypotheses))], translated_text) - + translated_text = q # Cannot translate, send the original text back + alternatives = [] + result = {"translatedText": translated_text} if source_lang == "auto": From 97775d1ca457bd971690e27fd72ad690a462dbbb Mon Sep 17 00:00:00 2001 From: Piero Toffanin Date: Thu, 20 Mar 2025 11:39:26 -0400 Subject: [PATCH 029/114] Catch cant detect errors in lang detection --- libretranslate/detect.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/libretranslate/detect.py b/libretranslate/detect.py index b13d52c..7661227 100644 --- a/libretranslate/detect.py +++ b/libretranslate/detect.py @@ -3,7 +3,8 @@ from langdetect import DetectorFactory DetectorFactory.seed = 0 -from langdetect import detect_langs +from langdetect import detect_langs, LangDetectException +from langdetect.lang_detect_exception import ErrorCode from lexilang.detector import detect as lldetect @@ -35,11 +36,17 @@ class Detector: if conf > 0: return [Language(code, round(conf * 100))] - top_3_choices = [lang for lang in detect_langs(text) if check_lang(self.langcodes, lang)][:3] - if not len(top_3_choices): - return [Language("en", 0)] - if top_3_choices[0].prob == 0: - return [Language("en", 0)] + try: + top_3_choices = [lang for lang in detect_langs(text) if check_lang(self.langcodes, lang)][:3] + if not len(top_3_choices): + return [Language("en", 0)] + if top_3_choices[0].prob == 0: + return [Language("en", 0)] + except LangDetectException as e: + if e.code == ErrorCode.CantDetectError: + return [Language("en", 0)] + else: + raise e return [Language(normalized_lang_code(lang), round(lang.prob * 100)) for lang in top_3_choices] From 3d258809cb95e16e3eeddb6eb2c871119d9dd651 Mon Sep 17 00:00:00 2001 From: Erol Joudy Tooy Date: Mon, 24 Mar 2025 10:31:28 +0100 Subject: [PATCH 030/114] Translated using Weblate (Indonesian) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/id/ --- .../locales/id/LC_MESSAGES/messages.po | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/libretranslate/locales/id/LC_MESSAGES/messages.po b/libretranslate/locales/id/LC_MESSAGES/messages.po index f551e9b..6faf907 100644 --- a/libretranslate/locales/id/LC_MESSAGES/messages.po +++ b/libretranslate/locales/id/LC_MESSAGES/messages.po @@ -9,23 +9,25 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.3.9\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-10-16 23:47+0200\n" -"PO-Revision-Date: 2024-06-08 12:27+0000\n" -"Last-Translator: Wahyu Hamdani \n" -"Language-Team: Indonesian \n" +"PO-Revision-Date: 2025-03-24 11:28+0000\n" +"Last-Translator: Erol Joudy Tooy \n" +"Language-Team: Indonesian \n" "Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.11-dev\n" "Generated-By: Babel 2.16.0\n" #: libretranslate/app.py:80 msgid "Invalid JSON format" -msgstr "Format JSON tidak sah" +msgstr "Format JSON tidak valid" #: libretranslate/app.py:180 libretranslate/templates/app.js.template:467 msgid "Auto Detect" -msgstr "Mendeteksi Otomatis" +msgstr "Deteksi Otomatis" #: libretranslate/app.py:273 msgid "Unauthorized" @@ -33,7 +35,7 @@ msgstr "Tidak Diizinkan" #: libretranslate/app.py:291 msgid "Too many request limits violations" -msgstr "Terlalu banyak pelanggaran batas permintaan" +msgstr "Melebihi batas permintaan yang diijinkan" #: libretranslate/app.py:298 msgid "Invalid API key" @@ -41,16 +43,16 @@ msgstr "Kunci API tidak valid" #: libretranslate/app.py:324 msgid "Please contact the server operator to get an API key" -msgstr "Silakan hubungi operator server untuk mendapatkan kunci API" +msgstr "Silakan hubungi operator server untuk memperoleh kunci API" #: libretranslate/app.py:326 #, python-format msgid "Visit %(url)s to get an API key" -msgstr "Kunjungi %(url)s untuk mendapatkan kunci API" +msgstr "Kunjungi %(url)s untuk memperoleh kunci API" #: libretranslate/app.py:373 msgid "Slowdown:" -msgstr "Pelan-pelan:" +msgstr "Perlahan:" #: libretranslate/app.py:606 libretranslate/app.py:608 #: libretranslate/app.py:610 libretranslate/app.py:819 @@ -65,15 +67,12 @@ msgstr "Permintaan tidak valid: parameter %(name)s tidak ada" #: libretranslate/app.py:615 #, python-format msgid "Invalid request: %(name)s parameter is not a number" -msgstr "" -"permintaan tidak valid: Sitemap parameter bukan jumlah %(name)s" +msgstr "Permintaan tidak valid: parameter %(name)s bukan berupa angka" #: libretranslate/app.py:618 #, python-format msgid "Invalid request: %(name)s parameter must be <= %(value)s" -msgstr "" -"permintaan tidak valid: Sitemap parameter harus <= 1 " -"Artikel %(name)s %(value)s" +msgstr "Permintaan tidak valid: parameter %(name)s harus <= %(value)s" #: libretranslate/app.py:635 libretranslate/app.py:645 #, python-format From 18b63401d2cdf19d02f3accb1bcec5a890a849fb Mon Sep 17 00:00:00 2001 From: Astahar Date: Tue, 25 Mar 2025 10:58:21 +0100 Subject: [PATCH 031/114] Added translation using Weblate (Chuvash) --- .../locales/cv/LC_MESSAGES/messages.po | 721 ++++++++++++++++++ 1 file changed, 721 insertions(+) create mode 100644 libretranslate/locales/cv/LC_MESSAGES/messages.po diff --git a/libretranslate/locales/cv/LC_MESSAGES/messages.po b/libretranslate/locales/cv/LC_MESSAGES/messages.po new file mode 100644 index 0000000..e71b53e --- /dev/null +++ b/libretranslate/locales/cv/LC_MESSAGES/messages.po @@ -0,0 +1,721 @@ +# Translations template for LibreTranslate. +# Copyright (C) 2024 LibreTranslate Authors +# This file is distributed under the same license as the LibreTranslate +# project. +# FIRST AUTHOR , 2024. +# +msgid "" +msgstr "" +"Project-Id-Version: LibreTranslate 1.6.2\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2024-10-16 23:47+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: cv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.16.0\n" + +#: libretranslate/app.py:80 +msgid "Invalid JSON format" +msgstr "" + +#: libretranslate/app.py:180 libretranslate/templates/app.js.template:467 +msgid "Auto Detect" +msgstr "" + +#: libretranslate/app.py:273 +msgid "Unauthorized" +msgstr "" + +#: libretranslate/app.py:291 +msgid "Too many request limits violations" +msgstr "" + +#: libretranslate/app.py:298 +msgid "Invalid API key" +msgstr "" + +#: libretranslate/app.py:324 +msgid "Please contact the server operator to get an API key" +msgstr "" + +#: libretranslate/app.py:326 +#, python-format +msgid "Visit %(url)s to get an API key" +msgstr "" + +#: libretranslate/app.py:373 +msgid "Slowdown:" +msgstr "" + +#: libretranslate/app.py:606 libretranslate/app.py:608 +#: libretranslate/app.py:610 libretranslate/app.py:819 +#: libretranslate/app.py:821 libretranslate/app.py:823 +#: libretranslate/app.py:980 libretranslate/app.py:1137 +#: libretranslate/app.py:1139 libretranslate/app.py:1141 +#: libretranslate/app.py:1143 +#, python-format +msgid "Invalid request: missing %(name)s parameter" +msgstr "" + +#: libretranslate/app.py:615 +#, python-format +msgid "Invalid request: %(name)s parameter is not a number" +msgstr "" + +#: libretranslate/app.py:618 +#, python-format +msgid "Invalid request: %(name)s parameter must be <= %(value)s" +msgstr "" + +#: libretranslate/app.py:635 libretranslate/app.py:645 +#, python-format +msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)" +msgstr "" + +#: libretranslate/app.py:660 libretranslate/app.py:665 +#: libretranslate/app.py:834 libretranslate/app.py:839 +#, python-format +msgid "%(lang)s is not supported" +msgstr "" + +#: libretranslate/app.py:671 +#, python-format +msgid "%(format)s format is not supported" +msgstr "" + +#: libretranslate/app.py:680 libretranslate/app.py:704 +#, python-format +msgid "" +"%(tname)s (%(tcode)s) is not available as a target language from " +"%(sname)s (%(scode)s)" +msgstr "" + +#: libretranslate/app.py:724 +#, python-format +msgid "Cannot translate text: %(text)s" +msgstr "" + +#: libretranslate/app.py:811 libretranslate/app.py:872 +msgid "Files translation are disabled on this server." +msgstr "" + +#: libretranslate/app.py:826 +msgid "Invalid request: empty file" +msgstr "" + +#: libretranslate/app.py:829 +msgid "Invalid request: file format not supported" +msgstr "" + +#: libretranslate/app.py:880 +msgid "Invalid filename" +msgstr "" + +#: libretranslate/app.py:1122 +msgid "Suggestions are disabled on this server." +msgstr "" + +#: libretranslate/locales/.langs.py:1 +msgid "English" +msgstr "" + +#: libretranslate/locales/.langs.py:2 +msgid "Albanian" +msgstr "" + +#: libretranslate/locales/.langs.py:3 +msgid "Arabic" +msgstr "" + +#: libretranslate/locales/.langs.py:4 +msgid "Azerbaijani" +msgstr "" + +#: libretranslate/locales/.langs.py:5 +msgid "Basque" +msgstr "" + +#: libretranslate/locales/.langs.py:6 +msgid "Bengali" +msgstr "" + +#: libretranslate/locales/.langs.py:7 +msgid "Bulgarian" +msgstr "" + +#: libretranslate/locales/.langs.py:8 +msgid "Catalan" +msgstr "" + +#: libretranslate/locales/.langs.py:9 +msgid "Chinese" +msgstr "" + +#: libretranslate/locales/.langs.py:10 +msgid "Chinese (traditional)" +msgstr "" + +#: libretranslate/locales/.langs.py:11 +msgid "Czech" +msgstr "" + +#: libretranslate/locales/.langs.py:12 +msgid "Danish" +msgstr "" + +#: libretranslate/locales/.langs.py:13 +msgid "Dutch" +msgstr "" + +#: libretranslate/locales/.langs.py:14 +msgid "Esperanto" +msgstr "" + +#: libretranslate/locales/.langs.py:15 +msgid "Estonian" +msgstr "" + +#: libretranslate/locales/.langs.py:16 +msgid "Finnish" +msgstr "" + +#: libretranslate/locales/.langs.py:17 +msgid "French" +msgstr "" + +#: libretranslate/locales/.langs.py:18 +msgid "Galician" +msgstr "" + +#: libretranslate/locales/.langs.py:19 +msgid "German" +msgstr "" + +#: libretranslate/locales/.langs.py:20 +msgid "Greek" +msgstr "" + +#: libretranslate/locales/.langs.py:21 +msgid "Hebrew" +msgstr "" + +#: libretranslate/locales/.langs.py:22 +msgid "Hindi" +msgstr "" + +#: libretranslate/locales/.langs.py:23 +msgid "Hungarian" +msgstr "" + +#: libretranslate/locales/.langs.py:24 +msgid "Indonesian" +msgstr "" + +#: libretranslate/locales/.langs.py:25 +msgid "Irish" +msgstr "" + +#: libretranslate/locales/.langs.py:26 +msgid "Italian" +msgstr "" + +#: libretranslate/locales/.langs.py:27 +msgid "Japanese" +msgstr "" + +#: libretranslate/locales/.langs.py:28 +msgid "Korean" +msgstr "" + +#: libretranslate/locales/.langs.py:29 +msgid "Latvian" +msgstr "" + +#: libretranslate/locales/.langs.py:30 +msgid "Lithuanian" +msgstr "" + +#: libretranslate/locales/.langs.py:31 +msgid "Malay" +msgstr "" + +#: libretranslate/locales/.langs.py:32 +msgid "Norwegian" +msgstr "" + +#: libretranslate/locales/.langs.py:33 +msgid "Persian" +msgstr "" + +#: libretranslate/locales/.langs.py:34 +msgid "Polish" +msgstr "" + +#: libretranslate/locales/.langs.py:35 +msgid "Portuguese" +msgstr "" + +#: libretranslate/locales/.langs.py:36 +msgid "Romanian" +msgstr "" + +#: libretranslate/locales/.langs.py:37 +msgid "Russian" +msgstr "" + +#: libretranslate/locales/.langs.py:38 +msgid "Slovak" +msgstr "" + +#: libretranslate/locales/.langs.py:39 +msgid "Slovenian" +msgstr "" + +#: libretranslate/locales/.langs.py:40 +msgid "Spanish" +msgstr "" + +#: libretranslate/locales/.langs.py:41 +msgid "Swedish" +msgstr "" + +#: libretranslate/locales/.langs.py:42 +msgid "Tagalog" +msgstr "" + +#: libretranslate/locales/.langs.py:43 +msgid "Thai" +msgstr "" + +#: libretranslate/locales/.langs.py:44 +msgid "Turkish" +msgstr "" + +#: libretranslate/locales/.langs.py:46 +msgid "Urdu" +msgstr "" + +#: libretranslate/locales/.langs.py:47 +msgid "Serbian" +msgstr "" + +#: libretranslate/locales/.langs.py:48 +msgid "Ukrainian" +msgstr "" + +#: libretranslate/locales/.langs.py:49 +msgid "Vietnamese" +msgstr "" + +#: libretranslate/locales/.swag.py:1 +msgid "Retrieve list of supported languages" +msgstr "" + +#: libretranslate/locales/.swag.py:2 +msgid "List of languages" +msgstr "" + +#: libretranslate/locales/.swag.py:3 +msgid "translate" +msgstr "" + +#: libretranslate/locales/.swag.py:4 +msgid "Translate text from a language to another" +msgstr "" + +#: libretranslate/locales/.swag.py:5 libretranslate/templates/index.html:224 +msgid "Translated text" +msgstr "" + +#: libretranslate/locales/.swag.py:6 +msgid "Invalid request" +msgstr "" + +#: libretranslate/locales/.swag.py:7 +msgid "Translation error" +msgstr "" + +#: libretranslate/locales/.swag.py:8 +msgid "Slow down" +msgstr "" + +#: libretranslate/locales/.swag.py:9 +msgid "Banned" +msgstr "" + +#: libretranslate/locales/.swag.py:10 +msgid "Hello world!" +msgstr "" + +#: libretranslate/locales/.swag.py:11 +msgid "Text(s) to translate" +msgstr "" + +#: libretranslate/locales/.swag.py:12 +msgid "Source language code" +msgstr "" + +#: libretranslate/locales/.swag.py:13 +msgid "Target language code" +msgstr "" + +#: libretranslate/locales/.swag.py:14 +msgid "text" +msgstr "" + +#: libretranslate/locales/.swag.py:15 +msgid "html" +msgstr "" + +#: libretranslate/locales/.swag.py:16 +msgid "" +"Format of source text:\n" +" * `text` - Plain text\n" +" * `html` - HTML markup\n" +msgstr "" + +#: libretranslate/locales/.swag.py:17 +msgid "Preferred number of alternative translations" +msgstr "" + +#: libretranslate/locales/.swag.py:18 +msgid "API key" +msgstr "" + +#: libretranslate/locales/.swag.py:19 +msgid "Translate file from a language to another" +msgstr "" + +#: libretranslate/locales/.swag.py:20 +msgid "Translated file" +msgstr "" + +#: libretranslate/locales/.swag.py:21 +msgid "File to translate" +msgstr "" + +#: libretranslate/locales/.swag.py:22 +msgid "Detect the language of a single text" +msgstr "" + +#: libretranslate/locales/.swag.py:23 +msgid "Detections" +msgstr "" + +#: libretranslate/locales/.swag.py:24 +msgid "Detection error" +msgstr "" + +#: libretranslate/locales/.swag.py:25 +msgid "Text to detect" +msgstr "" + +#: libretranslate/locales/.swag.py:26 +msgid "Retrieve frontend specific settings" +msgstr "" + +#: libretranslate/locales/.swag.py:27 +msgid "frontend settings" +msgstr "" + +#: libretranslate/locales/.swag.py:28 +msgid "frontend" +msgstr "" + +#: libretranslate/locales/.swag.py:29 +msgid "Submit a suggestion to improve a translation" +msgstr "" + +#: libretranslate/locales/.swag.py:30 +msgid "Success" +msgstr "" + +#: libretranslate/locales/.swag.py:31 +msgid "Not authorized" +msgstr "" + +#: libretranslate/locales/.swag.py:32 +msgid "Original text" +msgstr "" + +#: libretranslate/locales/.swag.py:33 +msgid "Suggested translation" +msgstr "" + +#: libretranslate/locales/.swag.py:34 +msgid "Language of original text" +msgstr "" + +#: libretranslate/locales/.swag.py:35 +msgid "Language of suggested translation" +msgstr "" + +#: libretranslate/locales/.swag.py:36 +msgid "feedback" +msgstr "" + +#: libretranslate/locales/.swag.py:37 +msgid "Language code" +msgstr "" + +#: libretranslate/locales/.swag.py:38 +msgid "Human-readable language name (in English)" +msgstr "" + +#: libretranslate/locales/.swag.py:39 +msgid "Supported target language codes" +msgstr "" + +#: libretranslate/locales/.swag.py:40 +msgid "Translated text(s)" +msgstr "" + +#: libretranslate/locales/.swag.py:41 +msgid "Error message" +msgstr "" + +#: libretranslate/locales/.swag.py:42 +msgid "Reason for slow down" +msgstr "" + +#: libretranslate/locales/.swag.py:43 +msgid "Translated file url" +msgstr "" + +#: libretranslate/locales/.swag.py:44 +msgid "Confidence value" +msgstr "" + +#: libretranslate/locales/.swag.py:45 +msgid "Character input limit for this language (-1 indicates no limit)" +msgstr "" + +#: libretranslate/locales/.swag.py:46 +msgid "Frontend translation timeout" +msgstr "" + +#: libretranslate/locales/.swag.py:47 +msgid "Whether the API key database is enabled." +msgstr "" + +#: libretranslate/locales/.swag.py:48 +msgid "Whether an API key is required." +msgstr "" + +#: libretranslate/locales/.swag.py:49 +msgid "Whether submitting suggestions is enabled." +msgstr "" + +#: libretranslate/locales/.swag.py:50 +msgid "Supported files format" +msgstr "" + +#: libretranslate/locales/.swag.py:51 +msgid "Whether submission was successful" +msgstr "" + +#: libretranslate/templates/app.js.template:31 +#: libretranslate/templates/app.js.template:294 +#: libretranslate/templates/app.js.template:298 +msgid "Copy text" +msgstr "" + +#: libretranslate/templates/app.js.template:80 +#: libretranslate/templates/app.js.template:86 +#: libretranslate/templates/app.js.template:91 +#: libretranslate/templates/app.js.template:281 +#: libretranslate/templates/app.js.template:351 +#: libretranslate/templates/app.js.template:439 +#: libretranslate/templates/app.js.template:487 +#, python-format +msgid "Cannot load %(url)s" +msgstr "" + +#: libretranslate/templates/app.js.template:272 +#: libretranslate/templates/app.js.template:342 +#: libretranslate/templates/app.js.template:420 +#: libretranslate/templates/app.js.template:431 +msgid "Unknown error" +msgstr "" + +#: libretranslate/templates/app.js.template:295 +msgid "Copied" +msgstr "" + +#: libretranslate/templates/app.js.template:339 +msgid "" +"Thanks for your correction. Note the suggestion will not take effect " +"right away." +msgstr "" + +#: libretranslate/templates/app.js.template:463 +msgid "No languages available. Did you install the models correctly?" +msgstr "" + +#: libretranslate/templates/app.js.template:530 +#, python-format +msgid "Type in your API Key. If you need an API key, %(instructions)s" +msgstr "" + +#: libretranslate/templates/app.js.template:530 +msgid "press the \"Get API Key\" link." +msgstr "" + +#: libretranslate/templates/app.js.template:530 +msgid "contact the server operator." +msgstr "" + +#: libretranslate/templates/index.html:9 libretranslate/templates/index.html:27 +#: libretranslate/templates/index.html:338 +msgid "Free and Open Source Machine Translation API" +msgstr "" + +#: libretranslate/templates/index.html:10 +#: libretranslate/templates/index.html:31 +msgid "" +"Free and Open Source Machine Translation API. Free to download, offline " +"capable and easy to setup. Run your own API server in just a few minutes." +msgstr "" + +#: libretranslate/templates/index.html:11 +msgid "translation" +msgstr "" + +#: libretranslate/templates/index.html:11 +msgid "api" +msgstr "" + +#: libretranslate/templates/index.html:67 +msgid "API Docs" +msgstr "" + +#: libretranslate/templates/index.html:69 +msgid "Get API Key" +msgstr "" + +#: libretranslate/templates/index.html:71 +msgid "GitHub" +msgstr "" + +#: libretranslate/templates/index.html:73 +msgid "Set API Key" +msgstr "" + +#: libretranslate/templates/index.html:75 +msgid "Change language" +msgstr "" + +#: libretranslate/templates/index.html:81 +msgid "Edit" +msgstr "" + +#: libretranslate/templates/index.html:83 +msgid "Toggle dark/light mode" +msgstr "" + +#: libretranslate/templates/index.html:159 +msgid "Dismiss" +msgstr "" + +#: libretranslate/templates/index.html:173 +msgid "Translation API" +msgstr "" + +#: libretranslate/templates/index.html:177 +msgid "Translate Text" +msgstr "" + +#: libretranslate/templates/index.html:181 +msgid "Translate Files" +msgstr "" + +#: libretranslate/templates/index.html:187 +msgid "Translate from" +msgstr "" + +#: libretranslate/templates/index.html:197 +msgid "Swap source and target languages" +msgstr "" + +#: libretranslate/templates/index.html:200 +msgid "Translate into" +msgstr "" + +#: libretranslate/templates/index.html:212 +msgid "Text to translate" +msgstr "" + +#: libretranslate/templates/index.html:215 +msgid "Delete text" +msgstr "" + +#: libretranslate/templates/index.html:228 +msgid "Suggest translation" +msgstr "" + +#: libretranslate/templates/index.html:232 +msgid "Cancel" +msgstr "" + +#: libretranslate/templates/index.html:235 +msgid "Send" +msgstr "" + +#: libretranslate/templates/index.html:251 +msgid "Supported file formats:" +msgstr "" + +#: libretranslate/templates/index.html:255 +msgid "File" +msgstr "" + +#: libretranslate/templates/index.html:270 +msgid "Remove file" +msgstr "" + +#: libretranslate/templates/index.html:277 +msgid "Translate" +msgstr "" + +#: libretranslate/templates/index.html:278 +#: libretranslate/templates/index.html:322 +msgid "Download" +msgstr "" + +#: libretranslate/templates/index.html:297 +msgid "Request" +msgstr "" + +#: libretranslate/templates/index.html:302 +msgid "Response" +msgstr "" + +#: libretranslate/templates/index.html:317 +msgid "Open Source Machine Translation API" +msgstr "" + +#: libretranslate/templates/index.html:318 +msgid "Free to download. Offline Capable. Easy to Setup." +msgstr "" + +#: libretranslate/templates/index.html:337 +msgid "LibreTranslate" +msgstr "" + +#: libretranslate/templates/index.html:339 +msgid "License:" +msgstr "" + +#: libretranslate/templates/index.html:345 +#, python-format +msgid "Made with %(heart)s by %(contributors)s and powered by %(engine)s" +msgstr "" + +#: libretranslate/templates/index.html:345 +#, python-format +msgid "%(libretranslate)s Contributors" +msgstr "" From 90f87ca05a97a20a46de02486c4251d6980a535f Mon Sep 17 00:00:00 2001 From: Astahar Date: Tue, 25 Mar 2025 11:03:06 +0100 Subject: [PATCH 032/114] Translated using Weblate (Chuvash) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/cv/ --- .../locales/cv/LC_MESSAGES/messages.po | 34 +++++++++++-------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/libretranslate/locales/cv/LC_MESSAGES/messages.po b/libretranslate/locales/cv/LC_MESSAGES/messages.po index e71b53e..a5fdd24 100644 --- a/libretranslate/locales/cv/LC_MESSAGES/messages.po +++ b/libretranslate/locales/cv/LC_MESSAGES/messages.po @@ -9,26 +9,29 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.6.2\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-10-16 23:47+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Automatically generated\n" -"Language-Team: none\n" +"PO-Revision-Date: 2025-03-25 10:20+0000\n" +"Last-Translator: Astahar \n" +"Language-Team: Chuvash \n" "Language: cv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.11-dev\n" "Generated-By: Babel 2.16.0\n" #: libretranslate/app.py:80 msgid "Invalid JSON format" -msgstr "" +msgstr "Йӑнӑш JSON формачӗ" #: libretranslate/app.py:180 libretranslate/templates/app.js.template:467 msgid "Auto Detect" -msgstr "" +msgstr "[чӗлхесене хӑй тӗллӗн уйӑрни]" #: libretranslate/app.py:273 msgid "Unauthorized" -msgstr "" +msgstr "Авторизациленмен" #: libretranslate/app.py:291 msgid "Too many request limits violations" @@ -36,20 +39,20 @@ msgstr "" #: libretranslate/app.py:298 msgid "Invalid API key" -msgstr "" +msgstr "Ӗҫлемен API-ключ" #: libretranslate/app.py:324 msgid "Please contact the server operator to get an API key" -msgstr "" +msgstr "API-ключ илес тесен, тархасшӑн, сервер операторӗпе ҫыхӑнӑр" #: libretranslate/app.py:326 #, python-format msgid "Visit %(url)s to get an API key" -msgstr "" +msgstr "API-ключ илмешкӗн %(url)s адреспа кӗрӗр" #: libretranslate/app.py:373 msgid "Slowdown:" -msgstr "" +msgstr "Майӗпенленӗр:" #: libretranslate/app.py:606 libretranslate/app.py:608 #: libretranslate/app.py:610 libretranslate/app.py:819 @@ -59,33 +62,34 @@ msgstr "" #: libretranslate/app.py:1143 #, python-format msgid "Invalid request: missing %(name)s parameter" -msgstr "" +msgstr "Юрӑхсӑр запрос: «%(name)s» параметр ҫук" #: libretranslate/app.py:615 #, python-format msgid "Invalid request: %(name)s parameter is not a number" -msgstr "" +msgstr "Юрӑхсӑр запрос: «%(name)s» параметр число мар" #: libretranslate/app.py:618 #, python-format msgid "Invalid request: %(name)s parameter must be <= %(value)s" -msgstr "" +msgstr "Юрӑхсӑр запрос: «%(name)s» параметр виҫи <= «%(value)s» пулмалла" #: libretranslate/app.py:635 libretranslate/app.py:645 #, python-format msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)" msgstr "" +"Юрӑхсӑр запрос: запрос калӑпӑшӗ (%(size)s) текст виҫинчен (%(limit)s) ытларах" #: libretranslate/app.py:660 libretranslate/app.py:665 #: libretranslate/app.py:834 libretranslate/app.py:839 #, python-format msgid "%(lang)s is not supported" -msgstr "" +msgstr "%(lang)s — ку чӗлхепе усӑ курма май ҫук" #: libretranslate/app.py:671 #, python-format msgid "%(format)s format is not supported" -msgstr "" +msgstr "%(format)s форматпа усӑ курма май ҫук" #: libretranslate/app.py:680 libretranslate/app.py:704 #, python-format From 06617223aeef02bc3c674da88a79f27192c22aff Mon Sep 17 00:00:00 2001 From: Piero Toffanin Date: Tue, 25 Mar 2025 16:27:01 -0400 Subject: [PATCH 033/114] Bump version --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 9edc58b..9f05f9f 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.6.4 +1.6.5 From f4d4274b5a97d1f46e8a67d3c86541410ba9393f Mon Sep 17 00:00:00 2001 From: nune <145225213+gigirassy@users.noreply.github.com> Date: Wed, 26 Mar 2025 16:32:01 -0400 Subject: [PATCH 034/114] add blitzw.in instance --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ff82812..f503e2b 100644 --- a/README.md +++ b/README.md @@ -427,6 +427,7 @@ This is a list of public LibreTranslate instances, some require an API key. If y | ----------------------------------------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------- | | [libretranslate.com](https://libretranslate.com) | :heavy_check_mark: | [ [Get API Key](https://portal.libretranslate.com) ] [ [Service Status](https://status.libretranslate.com/) ] | | [translate.flossboxin.org.in](https://translate.flossboxin.org.in/) | | [ [Contact/eMail](mailto:dev@flossboxin.org.in) ] | +| [lt.blitzw.in](https://lt.blitzw.in/) | | hosted by blitzw.in. uses an open source javascript-based captcha to fight bots! | ## TOR/i2p Mirrors From ae4a6ebfe65af0dc11aebfd568ff6b7a8d63dbe8 Mon Sep 17 00:00:00 2001 From: Piero Toffanin Date: Wed, 26 Mar 2025 16:47:32 -0400 Subject: [PATCH 035/114] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f503e2b..fdf58bd 100644 --- a/README.md +++ b/README.md @@ -427,7 +427,7 @@ This is a list of public LibreTranslate instances, some require an API key. If y | ----------------------------------------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------- | | [libretranslate.com](https://libretranslate.com) | :heavy_check_mark: | [ [Get API Key](https://portal.libretranslate.com) ] [ [Service Status](https://status.libretranslate.com/) ] | | [translate.flossboxin.org.in](https://translate.flossboxin.org.in/) | | [ [Contact/eMail](mailto:dev@flossboxin.org.in) ] | -| [lt.blitzw.in](https://lt.blitzw.in/) | | hosted by blitzw.in. uses an open source javascript-based captcha to fight bots! | +| [lt.blitzw.in](https://lt.blitzw.in/) | | | ## TOR/i2p Mirrors From c8f154561e5e2896d6097c3c738f2a372abf557a Mon Sep 17 00:00:00 2001 From: Ohirok Date: Fri, 28 Mar 2025 08:50:52 +0100 Subject: [PATCH 036/114] Translated using Weblate (Ukrainian) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/uk/ --- .../locales/uk/LC_MESSAGES/messages.po | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/libretranslate/locales/uk/LC_MESSAGES/messages.po b/libretranslate/locales/uk/LC_MESSAGES/messages.po index 753fe73..37eca76 100644 --- a/libretranslate/locales/uk/LC_MESSAGES/messages.po +++ b/libretranslate/locales/uk/LC_MESSAGES/messages.po @@ -9,8 +9,8 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.3.9\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-10-16 23:47+0200\n" -"PO-Revision-Date: 2024-10-26 12:15+0000\n" -"Last-Translator: Bezruchenko Simon \n" +"PO-Revision-Date: 2025-03-28 10:20+0000\n" +"Last-Translator: Ohirok \n" "Language-Team: Ukrainian \n" "Language: uk\n" @@ -19,7 +19,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Weblate 5.8.2-dev\n" +"X-Generator: Weblate 5.11-dev\n" "Generated-By: Babel 2.16.0\n" #: libretranslate/app.py:80 @@ -44,7 +44,7 @@ msgstr "Неправильний API ключ" #: libretranslate/app.py:324 msgid "Please contact the server operator to get an API key" -msgstr "Зв'яжіться з оператором сервера, щоб отримати API ключ" +msgstr "Зв'яжіться із оператором сервера, щоб отримати API ключ" #: libretranslate/app.py:326 #, python-format @@ -589,7 +589,7 @@ msgstr "зв'язатися з оператором сервера." #: libretranslate/templates/index.html:9 libretranslate/templates/index.html:27 #: libretranslate/templates/index.html:338 msgid "Free and Open Source Machine Translation API" -msgstr "Безкоштовний API машинного перекладу з відкритим вихідним кодом" +msgstr "Безплатний API машинного перекладу з відкритим сирцевим кодом" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 @@ -597,9 +597,9 @@ msgid "" "Free and Open Source Machine Translation API. Free to download, offline " "capable and easy to setup. Run your own API server in just a few minutes." msgstr "" -"Безкоштовний API машинного перекладу з відкритим вихідним кодом. " -"Безкоштовне завантаження, можливість роботи в офлайн режимі та простота " -"налаштування. Запустіть власний API сервер всього за кілька хвилин." +"Безплатний API машинного перекладу з відкритим сирцевим кодом. Безплатне " +"завантаження, можливість роботи в офлайн режимі та простота налаштування. " +"Запустіть власний API сервер всього за кілька хвилин." #: libretranslate/templates/index.html:11 msgid "translation" @@ -716,12 +716,12 @@ msgstr "Відповідь" #: libretranslate/templates/index.html:317 msgid "Open Source Machine Translation API" -msgstr "API машинного перекладу з відкритим вихідним кодом" +msgstr "API машинного перекладу з відкритим сирцевим кодом" #: libretranslate/templates/index.html:318 msgid "Free to download. Offline Capable. Easy to Setup." msgstr "" -"Безкоштовне завантаження. Можливість роботи в офлайн режимі. Простота " +"Безплвтне завантаження. Можливість роботи в офлайн режимі. Простота " "налаштування." #: libretranslate/templates/index.html:337 @@ -735,12 +735,12 @@ msgstr "Ліцензія:" #: libretranslate/templates/index.html:345 #, python-format msgid "Made with %(heart)s by %(contributors)s and powered by %(engine)s" -msgstr "Зроблено з %(heart)s %(contributors)s та працює на базі %(engine)s" +msgstr "Зроблено з %(heart)s %(contributors)s та працює на основі %(engine)s" #: libretranslate/templates/index.html:345 #, python-format msgid "%(libretranslate)s Contributors" -msgstr "Спільнотою %(libretranslate)s" +msgstr "спільнотою %(libretranslate)s" #~ msgid "multipart/form-data" #~ msgstr "мультипарт/форм-дані" From 6d43dfc5044b998fd9139248959a39d0ff36d65e Mon Sep 17 00:00:00 2001 From: Piero Toffanin Date: Fri, 28 Mar 2025 12:28:08 -0400 Subject: [PATCH 037/114] Limiter func key with api key --- libretranslate/app.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/libretranslate/app.py b/libretranslate/app.py index 0952290..b66a702 100644 --- a/libretranslate/app.py +++ b/libretranslate/app.py @@ -256,9 +256,18 @@ def create_app(args): return max(req_cost, int(math.ceil(getattr(request, 'duration', 0) / args.req_time_cost))) else: return req_cost + + def get_limits_key_func(): + if args.api_keys: + def func(): + ak = get_req_api_key() + return ak if ak else get_remote_address() + return func + else: + return get_remote_address limiter = Limiter( - key_func=get_remote_address, + key_func=get_limits_key_func(), default_limits=get_routes_limits( args, api_keys_db ), From ebbba3e4f6670ce7984f55cbd1c0dc0e62bd6c68 Mon Sep 17 00:00:00 2001 From: Piero Toffanin Date: Fri, 28 Mar 2025 14:24:26 -0400 Subject: [PATCH 038/114] Update lexilang --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 6b22172..0e403f2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -43,7 +43,7 @@ dependencies = [ "waitress ==2.1.2", "expiringdict ==1.2.2", "langdetect==1.0.9", - "lexilang==1.0.4", + "lexilang==1.0.6", "morfessor ==2.0.6", "appdirs ==1.4.4", "APScheduler ==3.9.1", From 75093e525fb0638b5d64781f902317d1e14e4a70 Mon Sep 17 00:00:00 2001 From: Manuela Silva Date: Sat, 29 Mar 2025 13:01:54 +0100 Subject: [PATCH 039/114] Translated using Weblate (Portuguese) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/pt/ --- .../locales/pt/LC_MESSAGES/messages.po | 115 +++++++++--------- 1 file changed, 57 insertions(+), 58 deletions(-) diff --git a/libretranslate/locales/pt/LC_MESSAGES/messages.po b/libretranslate/locales/pt/LC_MESSAGES/messages.po index 7641f1a..bfac128 100644 --- a/libretranslate/locales/pt/LC_MESSAGES/messages.po +++ b/libretranslate/locales/pt/LC_MESSAGES/messages.po @@ -9,8 +9,8 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.3.9\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-10-16 23:47+0200\n" -"PO-Revision-Date: 2025-02-01 14:01+0000\n" -"Last-Translator: Bruno Fragoso \n" +"PO-Revision-Date: 2025-03-30 13:01+0000\n" +"Last-Translator: Manuela Silva \n" "Language-Team: Portuguese \n" "Language: pt\n" @@ -18,7 +18,7 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.10-dev\n" +"X-Generator: Weblate 5.11-dev\n" "Generated-By: Babel 2.16.0\n" #: libretranslate/app.py:80 @@ -27,7 +27,7 @@ msgstr "Formato JSON inválido" #: libretranslate/app.py:180 libretranslate/templates/app.js.template:467 msgid "Auto Detect" -msgstr "Deteção automática" +msgstr "Deteção Automática" #: libretranslate/app.py:273 msgid "Unauthorized" @@ -35,7 +35,7 @@ msgstr "Não autorizado" #: libretranslate/app.py:291 msgid "Too many request limits violations" -msgstr "Muitas violações do limite de requisições" +msgstr "Muitas violações do limite de pedidos" #: libretranslate/app.py:298 msgid "Invalid API key" @@ -43,7 +43,7 @@ msgstr "Chave de API inválida" #: libretranslate/app.py:324 msgid "Please contact the server operator to get an API key" -msgstr "Entre em contacto com o operador do servidor para obter uma chave API" +msgstr "Por favor, contacte o operador do servidor para obter uma chave API" #: libretranslate/app.py:326 #, python-format @@ -52,7 +52,7 @@ msgstr "Visite %(url)s para obter uma chave API" #: libretranslate/app.py:373 msgid "Slowdown:" -msgstr "Devagar:" +msgstr "Abrandar:" #: libretranslate/app.py:606 libretranslate/app.py:608 #: libretranslate/app.py:610 libretranslate/app.py:819 @@ -67,12 +67,12 @@ msgstr "Pedido inválido: parâmetro %(name)s em falta" #: libretranslate/app.py:615 #, python-format msgid "Invalid request: %(name)s parameter is not a number" -msgstr "Requisição inválida: o parâmetro %(name)s não é um número" +msgstr "Pedido inválido: o parâmetro %(name)s não é um número" #: libretranslate/app.py:618 #, python-format msgid "Invalid request: %(name)s parameter must be <= %(value)s" -msgstr "Requisição inválida: o parâmetro %(name)s deve ser <= %(value)s" +msgstr "Pedido inválida: o parâmetro %(name)s deve ser <= %(value)s" #: libretranslate/app.py:635 libretranslate/app.py:645 #, python-format @@ -88,7 +88,7 @@ msgstr "%(lang)s não é suportado" #: libretranslate/app.py:671 #, python-format msgid "%(format)s format is not supported" -msgstr "%(format)s formato não é suportado" +msgstr "Formato %(format)s não é suportado" #: libretranslate/app.py:680 libretranslate/app.py:704 #, python-format @@ -96,8 +96,8 @@ msgid "" "%(tname)s (%(tcode)s) is not available as a target language from " "%(sname)s (%(scode)s)" msgstr "" -"%(tname)s (%(tcode)s) não está disponível como uma linguagem alvo de " -"%(sname)s (%(scode)s)" +"%(tname)s (%(tcode)s) não está disponível como idioma de destino de %(sname)" +"s (%(scode)s)" #: libretranslate/app.py:724 #, python-format @@ -106,23 +106,23 @@ msgstr "Não é possível traduzir o texto: %(text)s" #: libretranslate/app.py:811 libretranslate/app.py:872 msgid "Files translation are disabled on this server." -msgstr "A tradução de arquivos está desativada neste servidor." +msgstr "A tradução de ficheiros está desativada neste servidor." #: libretranslate/app.py:826 msgid "Invalid request: empty file" -msgstr "Pedido inválido: arquivo vazio" +msgstr "Pedido inválido: ficheiro vazio" #: libretranslate/app.py:829 msgid "Invalid request: file format not supported" -msgstr "Pedido inválido: formato de arquivo não suportado" +msgstr "Pedido inválido: formato de ficheiro não suportado" #: libretranslate/app.py:880 msgid "Invalid filename" -msgstr "Nome de arquivo inválido" +msgstr "Nome de ficheiro inválido" #: libretranslate/app.py:1122 msgid "Suggestions are disabled on this server." -msgstr "Sugestões estão desativadas neste servidor." +msgstr "As sugestões estão desativadas neste servidor." #: libretranslate/locales/.langs.py:1 msgid "English" @@ -262,7 +262,7 @@ msgstr "Polonês" #: libretranslate/locales/.langs.py:35 msgid "Portuguese" -msgstr "Português" +msgstr "Português (Portugal)" #: libretranslate/locales/.langs.py:36 msgid "Romanian" @@ -322,7 +322,7 @@ msgstr "Vietnamita" #: libretranslate/locales/.swag.py:1 msgid "Retrieve list of supported languages" -msgstr "Lista de idiomas suportados" +msgstr "Obter lista de idiomas suportados" #: libretranslate/locales/.swag.py:2 msgid "List of languages" @@ -342,7 +342,7 @@ msgstr "Texto traduzido" #: libretranslate/locales/.swag.py:6 msgid "Invalid request" -msgstr "Requisição inválida" +msgstr "Pedido inválido" #: libretranslate/locales/.swag.py:7 msgid "Translation error" @@ -350,7 +350,7 @@ msgstr "Erro ao traduzir" #: libretranslate/locales/.swag.py:8 msgid "Slow down" -msgstr "Devagar" +msgstr "Abrandar" #: libretranslate/locales/.swag.py:9 msgid "Banned" @@ -366,11 +366,11 @@ msgstr "Texto(s) para traduzir" #: libretranslate/locales/.swag.py:12 msgid "Source language code" -msgstr "Código da linguagem de origem" +msgstr "Código do idioma fonte" #: libretranslate/locales/.swag.py:13 msgid "Target language code" -msgstr "Código do idioma alvo" +msgstr "Código do idioma de destino" #: libretranslate/locales/.swag.py:14 msgid "text" @@ -412,11 +412,11 @@ msgstr "Ficheiro a traduzir" #: libretranslate/locales/.swag.py:22 msgid "Detect the language of a single text" -msgstr "Detectar a linguagem de um único texto" +msgstr "Detetar o idioma de um único texto" #: libretranslate/locales/.swag.py:23 msgid "Detections" -msgstr "Detecções" +msgstr "Deteções" #: libretranslate/locales/.swag.py:24 msgid "Detection error" @@ -424,15 +424,15 @@ msgstr "Erro de deteção" #: libretranslate/locales/.swag.py:25 msgid "Text to detect" -msgstr "Texto para detectar" +msgstr "Texto para detetar" #: libretranslate/locales/.swag.py:26 msgid "Retrieve frontend specific settings" -msgstr "Recupere configurações específicas do frontend" +msgstr "Obter configurações específicas do Frontend" #: libretranslate/locales/.swag.py:27 msgid "frontend settings" -msgstr "configurações de frontend" +msgstr "configurações do frontend" #: libretranslate/locales/.swag.py:28 msgid "frontend" @@ -440,7 +440,7 @@ msgstr "frontend" #: libretranslate/locales/.swag.py:29 msgid "Submit a suggestion to improve a translation" -msgstr "Envie uma sugestão para melhorar uma tradução" +msgstr "Submeter uma sugestão para melhorar uma tradução" #: libretranslate/locales/.swag.py:30 msgid "Success" @@ -468,11 +468,11 @@ msgstr "Idioma da tradução sugerida" #: libretranslate/locales/.swag.py:36 msgid "feedback" -msgstr "retorno" +msgstr "feedback" #: libretranslate/locales/.swag.py:37 msgid "Language code" -msgstr "Código de linguagem" +msgstr "Código do idioma" #: libretranslate/locales/.swag.py:38 msgid "Human-readable language name (in English)" @@ -480,7 +480,7 @@ msgstr "Nome do idioma legível para humanos (em inglês)" #: libretranslate/locales/.swag.py:39 msgid "Supported target language codes" -msgstr "Códigos de idioma alvo suportados" +msgstr "Códigos do idioma de destino suportados" #: libretranslate/locales/.swag.py:40 msgid "Translated text(s)" @@ -492,11 +492,11 @@ msgstr "Mensagem de erro" #: libretranslate/locales/.swag.py:42 msgid "Reason for slow down" -msgstr "Motivo da lentidão" +msgstr "Motivo por abrandar" #: libretranslate/locales/.swag.py:43 msgid "Translated file url" -msgstr "Url do arquivo traduzido" +msgstr "Url do ficheiro traduzido" #: libretranslate/locales/.swag.py:44 msgid "Confidence value" @@ -504,15 +504,15 @@ msgstr "Valor de confiança" #: libretranslate/locales/.swag.py:45 msgid "Character input limit for this language (-1 indicates no limit)" -msgstr "Limite de entrada de caracteres para esta língua (-1 indica sem limite)" +msgstr "Limite da entrada de carateres para este idioma (-1 indica sem limite)" #: libretranslate/locales/.swag.py:46 msgid "Frontend translation timeout" -msgstr "Tempo de tradução do frontend" +msgstr "Tempo de tradução do Frontend" #: libretranslate/locales/.swag.py:47 msgid "Whether the API key database is enabled." -msgstr "Se o banco de dados de chave API está ativado." +msgstr "Se a base de dados da chave API está ativada." #: libretranslate/locales/.swag.py:48 msgid "Whether an API key is required." @@ -520,7 +520,7 @@ msgstr "Se uma chave API é necessária." #: libretranslate/locales/.swag.py:49 msgid "Whether submitting suggestions is enabled." -msgstr "Se enviar sugestões está ativado." +msgstr "Se submeter sugestões está ativado." #: libretranslate/locales/.swag.py:50 msgid "Supported files format" @@ -528,7 +528,7 @@ msgstr "Formatos de ficheiros suportados" #: libretranslate/locales/.swag.py:51 msgid "Whether submission was successful" -msgstr "Se a submissão foi bem sucedida" +msgstr "Se a submissão foi bem-sucedida" #: libretranslate/templates/app.js.template:31 #: libretranslate/templates/app.js.template:294 @@ -545,7 +545,7 @@ msgstr "Copiar texto" #: libretranslate/templates/app.js.template:487 #, python-format msgid "Cannot load %(url)s" -msgstr "Não foi possível carregar %(url)s" +msgstr "Não é possível carregar %(url)s" #: libretranslate/templates/app.js.template:272 #: libretranslate/templates/app.js.template:342 @@ -563,8 +563,7 @@ msgid "" "Thanks for your correction. Note the suggestion will not take effect " "right away." msgstr "" -"Obrigado por sua correção. Note que a sugestão não terá efeito " -"imediatamente." +"Obrigado pela sua correção. Note que a sugestão não terá efeito de imediato." #: libretranslate/templates/app.js.template:463 msgid "No languages available. Did you install the models correctly?" @@ -573,11 +572,11 @@ msgstr "Não há idiomas disponíveis. Instalou os modelos corretamente?" #: libretranslate/templates/app.js.template:530 #, python-format msgid "Type in your API Key. If you need an API key, %(instructions)s" -msgstr "Digite sua chave API. Se precisar de uma chave API, %(instructions)s" +msgstr "Digite a sua chave API. Se precisar de uma chave API, %(instructions)s" #: libretranslate/templates/app.js.template:530 msgid "press the \"Get API Key\" link." -msgstr "pressione o link \"Obter Chave API\"." +msgstr "clique na hiperligação \"Obter Chave API\"." #: libretranslate/templates/app.js.template:530 msgid "contact the server operator." @@ -586,7 +585,7 @@ msgstr "contacte o operador do servidor." #: libretranslate/templates/index.html:9 libretranslate/templates/index.html:27 #: libretranslate/templates/index.html:338 msgid "Free and Open Source Machine Translation API" -msgstr "API de tradução em máquina gratuita e de código aberto" +msgstr "API de Tradução Automática Gratuita e de Código Aberto" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 @@ -594,9 +593,9 @@ msgid "" "Free and Open Source Machine Translation API. Free to download, offline " "capable and easy to setup. Run your own API server in just a few minutes." msgstr "" -"API de tradução em máquina gratuita e de código aberto. Grátis para descarregar, " -"off-line e fácil de configurar. Execute seu próprio servidor API em " -"apenas alguns minutos." +"API de Tradução Automática Gratuita e de Código Aberto. Grátis para " +"transferir, ''off-line'' e fácil de configurar. Execute o seu próprio " +"servidor API em apenas alguns minutos." #: libretranslate/templates/index.html:11 msgid "translation" @@ -636,19 +635,19 @@ msgstr "Alternar o modo escuro/claro" #: libretranslate/templates/index.html:159 msgid "Dismiss" -msgstr "Dispensar" +msgstr "Ignorar" #: libretranslate/templates/index.html:173 msgid "Translation API" -msgstr "API de tradução" +msgstr "API de Tradução" #: libretranslate/templates/index.html:177 msgid "Translate Text" -msgstr "Traduzir texto" +msgstr "Traduzir Texto" #: libretranslate/templates/index.html:181 msgid "Translate Files" -msgstr "Traduzir ficheiros" +msgstr "Traduzir Ficheiros" #: libretranslate/templates/index.html:187 msgid "Translate from" @@ -656,7 +655,7 @@ msgstr "Traduzir de" #: libretranslate/templates/index.html:197 msgid "Swap source and target languages" -msgstr "Inverter linguagens de origem e destino" +msgstr "Inverter idiomas fonte e de destino" #: libretranslate/templates/index.html:200 msgid "Translate into" @@ -701,7 +700,7 @@ msgstr "Traduzir" #: libretranslate/templates/index.html:278 #: libretranslate/templates/index.html:322 msgid "Download" -msgstr "Descarregar" +msgstr "Transferir" #: libretranslate/templates/index.html:297 msgid "Request" @@ -713,11 +712,11 @@ msgstr "Resposta" #: libretranslate/templates/index.html:317 msgid "Open Source Machine Translation API" -msgstr "API de tradução em máquina de código aberto" +msgstr "API de Tradução Automática Gratuita e de Código Aberto" #: libretranslate/templates/index.html:318 msgid "Free to download. Offline Capable. Easy to Setup." -msgstr "Grátis para descarregar. Funciona Offline. Fácil de configurar." +msgstr "Grátis para transferir. Funciona Off-line. Fácil de configurar." #: libretranslate/templates/index.html:337 msgid "LibreTranslate" @@ -730,12 +729,12 @@ msgstr "Licença:" #: libretranslate/templates/index.html:345 #, python-format msgid "Made with %(heart)s by %(contributors)s and powered by %(engine)s" -msgstr "Feito com %(heart)s por %(contributors)s e alimentado por %(engine)s" +msgstr "Criado com %(heart)s por %(contributors)s e alimentado por %(engine)s" #: libretranslate/templates/index.html:345 #, python-format msgid "%(libretranslate)s Contributors" -msgstr "Contribuintes %(libretranslate)s" +msgstr "Colaboradores %(libretranslate)s" #~ msgid "multipart/form-data" #~ msgstr "multipart/form-data" From 2dc443ea03e3ee2f1ce580cb35efe558a9d3ff81 Mon Sep 17 00:00:00 2001 From: Stefan McKinnon Edwards Date: Tue, 1 Apr 2025 21:20:59 +0200 Subject: [PATCH 040/114] Translated using Weblate (Danish) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/da/ --- .../locales/da/LC_MESSAGES/messages.po | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/libretranslate/locales/da/LC_MESSAGES/messages.po b/libretranslate/locales/da/LC_MESSAGES/messages.po index 820e833..a23b750 100644 --- a/libretranslate/locales/da/LC_MESSAGES/messages.po +++ b/libretranslate/locales/da/LC_MESSAGES/messages.po @@ -9,14 +9,16 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.3.9\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-10-16 23:47+0200\n" -"PO-Revision-Date: 2024-06-09 17:09+0000\n" -"Last-Translator: Luna \n" -"Language-Team: Danish \n" +"PO-Revision-Date: 2025-04-02 01:39+0000\n" +"Last-Translator: Stefan McKinnon Edwards \n" +"Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.11-dev\n" "Generated-By: Babel 2.16.0\n" #: libretranslate/app.py:80 @@ -33,7 +35,7 @@ msgstr "Uautoriseret" #: libretranslate/app.py:291 msgid "Too many request limits violations" -msgstr "For mange overtrædelser af anmodningsbegrænsninger" +msgstr "For mange anmodninger" #: libretranslate/app.py:298 msgid "Invalid API key" @@ -50,7 +52,7 @@ msgstr "Besøg %(url)s for at få en API-nøgle" #: libretranslate/app.py:373 msgid "Slowdown:" -msgstr "Nedsættelse:" +msgstr "For mange forespørgsler:" #: libretranslate/app.py:606 libretranslate/app.py:608 #: libretranslate/app.py:610 libretranslate/app.py:819 @@ -60,25 +62,23 @@ msgstr "Nedsættelse:" #: libretranslate/app.py:1143 #, python-format msgid "Invalid request: missing %(name)s parameter" -msgstr "Ugyldig anmodning: manglende %(name)s-parameter" +msgstr "Ugyldig forespørgsel: manglende %(name)s-parameter" #: libretranslate/app.py:615 #, python-format msgid "Invalid request: %(name)s parameter is not a number" -msgstr "Ugyldig anmodning: %(name)s parameter er ikke et nummer" +msgstr "Ugyldig forespørgsel: %(name)s parameter er ikke et nummer" #: libretranslate/app.py:618 #, python-format msgid "Invalid request: %(name)s parameter must be <= %(value)s" -msgstr "" -"Ugyldig anmodning: %(name)s parameter skal være <= 1 1 1 1 " -"%(value)s" +msgstr "Ugyldig forespørgsel: %(name)s parameter skal være <= %(value)s" #: libretranslate/app.py:635 libretranslate/app.py:645 #, python-format msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)" msgstr "" -"Ugyldig anmodning: anmodningen (%(size)s) overskrider tekstgrænsen " +"Ugyldig forespørgsel: forespørgslen (%(size)s) overskrider tekstgrænsen " "(%(limit)s)" #: libretranslate/app.py:660 libretranslate/app.py:665 @@ -112,11 +112,11 @@ msgstr "Oversættelse af filer er deaktiveret på denne server." #: libretranslate/app.py:826 msgid "Invalid request: empty file" -msgstr "Ugyldig anmodning: tom fil" +msgstr "Ugyldig forespørgsel: tom fil" #: libretranslate/app.py:829 msgid "Invalid request: file format not supported" -msgstr "Ugyldig anmodning: filformat understøttes ikke" +msgstr "Ugyldig forespørgsel: filformat understøttes ikke" #: libretranslate/app.py:880 msgid "Invalid filename" @@ -344,7 +344,7 @@ msgstr "Oversat tekst" #: libretranslate/locales/.swag.py:6 msgid "Invalid request" -msgstr "Ugyldig anmodning" +msgstr "Ugyldig forespørgsel" #: libretranslate/locales/.swag.py:7 msgid "Translation error" From ecebc94f606fff0767b16db9a38b7cfa9af72454 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Farr=C3=A9?= Date: Fri, 4 Apr 2025 19:38:16 +0200 Subject: [PATCH 041/114] Translated using Weblate (Catalan) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/ca/ --- .../locales/ca/LC_MESSAGES/messages.po | 117 +++++++++--------- 1 file changed, 59 insertions(+), 58 deletions(-) diff --git a/libretranslate/locales/ca/LC_MESSAGES/messages.po b/libretranslate/locales/ca/LC_MESSAGES/messages.po index 6c30d48..b7cddc5 100644 --- a/libretranslate/locales/ca/LC_MESSAGES/messages.po +++ b/libretranslate/locales/ca/LC_MESSAGES/messages.po @@ -9,8 +9,8 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.3.12\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-10-16 23:47+0200\n" -"PO-Revision-Date: 2024-11-29 04:07+0000\n" -"Last-Translator: Quentin PAGÈS \n" +"PO-Revision-Date: 2025-04-04 17:51+0000\n" +"Last-Translator: Ivan Farré \n" "Language-Team: Catalan \n" "Language: ca\n" @@ -18,7 +18,7 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.9-dev\n" +"X-Generator: Weblate 5.11-dev\n" "Generated-By: Babel 2.16.0\n" #: libretranslate/app.py:80 @@ -130,7 +130,7 @@ msgstr "Els suggeriments estan deshabilitats en aquest servidor." #: libretranslate/locales/.langs.py:1 msgid "English" -msgstr "anglès" +msgstr "Anglès" #: libretranslate/locales/.langs.py:2 msgid "Albanian" @@ -138,11 +138,11 @@ msgstr "Albanès" #: libretranslate/locales/.langs.py:3 msgid "Arabic" -msgstr "àrab" +msgstr "Àrab" #: libretranslate/locales/.langs.py:4 msgid "Azerbaijani" -msgstr "àzeri" +msgstr "Àzeri" #: libretranslate/locales/.langs.py:5 msgid "Basque" @@ -162,7 +162,7 @@ msgstr "Català" #: libretranslate/locales/.langs.py:9 msgid "Chinese" -msgstr "xinès" +msgstr "Xinès" #: libretranslate/locales/.langs.py:10 msgid "Chinese (traditional)" @@ -170,19 +170,19 @@ msgstr "Xinès (tradicional)" #: libretranslate/locales/.langs.py:11 msgid "Czech" -msgstr "txec" +msgstr "Txec" #: libretranslate/locales/.langs.py:12 msgid "Danish" -msgstr "danès" +msgstr "Danès" #: libretranslate/locales/.langs.py:13 msgid "Dutch" -msgstr "holandès" +msgstr "Holandès" #: libretranslate/locales/.langs.py:14 msgid "Esperanto" -msgstr "esperanto" +msgstr "Esperanto" #: libretranslate/locales/.langs.py:15 msgid "Estonian" @@ -190,11 +190,11 @@ msgstr "Estonià" #: libretranslate/locales/.langs.py:16 msgid "Finnish" -msgstr "finès" +msgstr "Finès" #: libretranslate/locales/.langs.py:17 msgid "French" -msgstr "francès" +msgstr "Francès" #: libretranslate/locales/.langs.py:18 msgid "Galician" @@ -202,43 +202,43 @@ msgstr "Gallec" #: libretranslate/locales/.langs.py:19 msgid "German" -msgstr "alemany" +msgstr "Alemany" #: libretranslate/locales/.langs.py:20 msgid "Greek" -msgstr "grec" +msgstr "Grec" #: libretranslate/locales/.langs.py:21 msgid "Hebrew" -msgstr "hebreu" +msgstr "Hebreu" #: libretranslate/locales/.langs.py:22 msgid "Hindi" -msgstr "hindi" +msgstr "Hindi" #: libretranslate/locales/.langs.py:23 msgid "Hungarian" -msgstr "hongarès" +msgstr "Hongarès" #: libretranslate/locales/.langs.py:24 msgid "Indonesian" -msgstr "indonesi" +msgstr "Indonesi" #: libretranslate/locales/.langs.py:25 msgid "Irish" -msgstr "irlandès" +msgstr "Irlandès" #: libretranslate/locales/.langs.py:26 msgid "Italian" -msgstr "italià" +msgstr "Italià" #: libretranslate/locales/.langs.py:27 msgid "Japanese" -msgstr "japonès" +msgstr "Japonès" #: libretranslate/locales/.langs.py:28 msgid "Korean" -msgstr "coreà" +msgstr "Coreà" #: libretranslate/locales/.langs.py:29 msgid "Latvian" @@ -258,15 +258,15 @@ msgstr "Noruec" #: libretranslate/locales/.langs.py:33 msgid "Persian" -msgstr "persa" +msgstr "Persa" #: libretranslate/locales/.langs.py:34 msgid "Polish" -msgstr "polonès" +msgstr "Polonès" #: libretranslate/locales/.langs.py:35 msgid "Portuguese" -msgstr "portuguès" +msgstr "Portuguès" #: libretranslate/locales/.langs.py:36 msgid "Romanian" @@ -274,11 +274,11 @@ msgstr "Romanès" #: libretranslate/locales/.langs.py:37 msgid "Russian" -msgstr "rus" +msgstr "Rus" #: libretranslate/locales/.langs.py:38 msgid "Slovak" -msgstr "eslovac" +msgstr "Eslovac" #: libretranslate/locales/.langs.py:39 msgid "Slovenian" @@ -286,11 +286,11 @@ msgstr "Eslovè" #: libretranslate/locales/.langs.py:40 msgid "Spanish" -msgstr "castellà" +msgstr "Castellà" #: libretranslate/locales/.langs.py:41 msgid "Swedish" -msgstr "suec" +msgstr "Suec" #: libretranslate/locales/.langs.py:42 msgid "Tagalog" @@ -302,11 +302,11 @@ msgstr "Tai" #: libretranslate/locales/.langs.py:44 msgid "Turkish" -msgstr "turc" +msgstr "Turc" #: libretranslate/locales/.langs.py:45 msgid "Ukranian" -msgstr "ucraïnès" +msgstr "Ucraïnès" #: libretranslate/locales/.langs.py:46 msgid "Urdu" @@ -404,7 +404,7 @@ msgstr "Clau API" #: libretranslate/locales/.swag.py:19 msgid "Translate file from a language to another" -msgstr "Tradueix el fitxer des d' un idioma a un altre" +msgstr "Tradueix el fitxer des d'un idioma a un altre" #: libretranslate/locales/.swag.py:20 msgid "Translated file" @@ -416,11 +416,11 @@ msgstr "Fitxer a traduir" #: libretranslate/locales/.swag.py:22 msgid "Detect the language of a single text" -msgstr "Detecta l' idioma d' un únic text" +msgstr "Detecta l'idioma d'un únic text" #: libretranslate/locales/.swag.py:23 msgid "Detections" -msgstr "Detecciós" +msgstr "Deteccions" #: libretranslate/locales/.swag.py:24 msgid "Detection error" @@ -432,15 +432,15 @@ msgstr "Text a detectar" #: libretranslate/locales/.swag.py:26 msgid "Retrieve frontend specific settings" -msgstr "Recupera els arranjaments específics del frontal" +msgstr "Recupereu la configuració específica de la interfície" #: libretranslate/locales/.swag.py:27 msgid "frontend settings" -msgstr "configuració del frontal" +msgstr "configuració de la interfície" #: libretranslate/locales/.swag.py:28 msgid "frontend" -msgstr "frontal" +msgstr "interfície" #: libretranslate/locales/.swag.py:29 msgid "Submit a suggestion to improve a translation" @@ -472,19 +472,19 @@ msgstr "Idioma de traducció suggerida" #: libretranslate/locales/.swag.py:36 msgid "feedback" -msgstr "reacció" +msgstr "comentaris" #: libretranslate/locales/.swag.py:37 msgid "Language code" -msgstr "Codi d' idioma" +msgstr "Codi d'idioma" #: libretranslate/locales/.swag.py:38 msgid "Human-readable language name (in English)" -msgstr "Nom de l' idioma llegible (en anglès)" +msgstr "Nom de l'idioma llegible (en anglès)" #: libretranslate/locales/.swag.py:39 msgid "Supported target language codes" -msgstr "Codis d' idioma de destí acceptats" +msgstr "Codis d'idioma de destí acceptats" #: libretranslate/locales/.swag.py:40 msgid "Translated text(s)" @@ -492,7 +492,7 @@ msgstr "Text traduït(s)" #: libretranslate/locales/.swag.py:41 msgid "Error message" -msgstr "Missatge d' error" +msgstr "Missatge d'error" #: libretranslate/locales/.swag.py:42 msgid "Reason for slow down" @@ -509,16 +509,16 @@ msgstr "Valor de confiança" #: libretranslate/locales/.swag.py:45 msgid "Character input limit for this language (-1 indicates no limit)" msgstr "" -"Límit d' entrada de caràcters per a aquest idioma (- 1 indica que no hi ha " +"Límit d'entrada de caràcters per a aquest idioma (- 1 indica que no hi ha " "límit)" #: libretranslate/locales/.swag.py:46 msgid "Frontend translation timeout" -msgstr "Expiració de la traducció del Frontal" +msgstr "Expiració de la traducció de la interfície" #: libretranslate/locales/.swag.py:47 msgid "Whether the API key database is enabled." -msgstr "Si la base de dades de claus de l' API està habilitada." +msgstr "Si la base de dades de claus de l'API està habilitada." #: libretranslate/locales/.swag.py:48 msgid "Whether an API key is required." @@ -526,7 +526,7 @@ msgstr "Si es requereix una clau API." #: libretranslate/locales/.swag.py:49 msgid "Whether submitting suggestions is enabled." -msgstr "Si s' han d' habilitar els suggeriments d' enviament." +msgstr "Si s'han d'habilitar els suggeriments d'enviament." #: libretranslate/locales/.swag.py:50 msgid "Supported files format" @@ -551,7 +551,7 @@ msgstr "Copia text" #: libretranslate/templates/app.js.template:487 #, python-format msgid "Cannot load %(url)s" -msgstr "No s' ha pogut carregar %(url)s" +msgstr "No s'ha pogut carregar %(url)s" #: libretranslate/templates/app.js.template:272 #: libretranslate/templates/app.js.template:342 @@ -562,7 +562,7 @@ msgstr "Error desconegut" #: libretranslate/templates/app.js.template:295 msgid "Copied" -msgstr "S' ha copiat" +msgstr "S'ha copiat" #: libretranslate/templates/app.js.template:339 msgid "" @@ -584,11 +584,11 @@ msgstr "" #: libretranslate/templates/app.js.template:530 msgid "press the \"Get API Key\" link." -msgstr "premeu l' enllaç \"Treta la clau de l' API.\"." +msgstr "premeu l'enllaç \"Obtén la clau de l'API\"." #: libretranslate/templates/app.js.template:530 msgid "contact the server operator." -msgstr "contacteu amb l' operador del servidor." +msgstr "contacteu amb l'operador del servidor." #: libretranslate/templates/index.html:9 #: libretranslate/templates/index.html:27 @@ -602,8 +602,9 @@ msgid "" "Free and Open Source Machine Translation API. Free to download, offline capable " "and easy to setup. Run your own API server in just a few minutes." msgstr "" -"API de traducció de la màquina lliure i oberta. Auto- màquina, fora de línia" -" capaç de configurar. Executa el vostre servidor API en només uns minuts." +"API de traducció automàtica gratuïta i de codi obert. Descàrrega gratuïta, " +"compatible fora de línia i fàcil de configurar. Executeu el vostre propi " +"servidor d'API en només uns minuts." #: libretranslate/templates/index.html:11 msgid "translation" @@ -627,11 +628,11 @@ msgstr "GitHub" #: libretranslate/templates/index.html:73 msgid "Set API Key" -msgstr "Estableix l' API Clau" +msgstr "Estableix la Clau API" #: libretranslate/templates/index.html:75 msgid "Change language" -msgstr "Canvia l' idioma" +msgstr "Canvia l'idioma" #: libretranslate/templates/index.html:81 msgid "Edit" @@ -720,15 +721,15 @@ msgstr "Resposta" #: libretranslate/templates/index.html:317 msgid "Open Source Machine Translation API" -msgstr "Obre l' API de traducció de la màquina d' origen" +msgstr "Obre l'API de traducció de la màquina d'origen" #: libretranslate/templates/index.html:318 msgid "Free to download. Offline Capable. Easy to Setup." -msgstr "Ha acabat. Capable fora de línia. Fàcil de configurar." +msgstr "Descàrrega gratuïta. Capacitat fora de línia. Fàcil de configurar." #: libretranslate/templates/index.html:337 msgid "LibreTranslate" -msgstr "Librescue" +msgstr "LibreTranslate" #: libretranslate/templates/index.html:339 msgid "License:" From 3bcb32dcf857f58efce9e04c50123d1949c15662 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Farr=C3=A9?= Date: Fri, 4 Apr 2025 20:20:05 +0200 Subject: [PATCH 042/114] =?UTF-8?q?=F0=9F=8C=8F=20i18n:=20Improve=20Catala?= =?UTF-8?q?n=20translation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libretranslate/locales/ca/meta.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libretranslate/locales/ca/meta.json b/libretranslate/locales/ca/meta.json index acbb6a6..3eb289f 100644 --- a/libretranslate/locales/ca/meta.json +++ b/libretranslate/locales/ca/meta.json @@ -1,4 +1,4 @@ { "name": "Catalan", - "reviewed": false -} \ No newline at end of file + "reviewed": true +} From 4e86bfa991e7742feed62f4398120224f5fe95f5 Mon Sep 17 00:00:00 2001 From: Piero Toffanin Date: Mon, 7 Apr 2025 23:28:34 -0400 Subject: [PATCH 043/114] Support for ISO 639-1 - 15924 codes --- VERSION | 2 +- libretranslate/app.py | 35 +++++++++++++++++++---------------- libretranslate/detect.py | 6 ++++-- libretranslate/language.py | 24 ++++++++++++++++++++++++ 4 files changed, 48 insertions(+), 19 deletions(-) diff --git a/VERSION b/VERSION index 9f05f9f..bd8bf88 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.6.5 +1.7.0 diff --git a/libretranslate/app.py b/libretranslate/app.py index b66a702..a1570c3 100644 --- a/libretranslate/app.py +++ b/libretranslate/app.py @@ -22,7 +22,7 @@ from werkzeug.http import http_date from werkzeug.utils import secure_filename from libretranslate import flood, remove_translated_files, scheduler, secret, security, storage -from libretranslate.language import detect_languages, improve_translation_formatting +from libretranslate.language import model2iso, iso2model, detect_languages, improve_translation_formatting from libretranslate.locales import ( _, _lazy, @@ -499,7 +499,10 @@ def create_app(args): type: string description: Supported target language codes """ - return jsonify([{"code": l.code, "name": _lazy(l.name), "targets": language_pairs.get(l.code, [])} for l in languages]) + return jsonify([{"code": model2iso(l.code), + "name": _lazy(l.name), + "targets": model2iso(language_pairs.get(l.code, [])) + } for l in languages]) # Add cors @bp.after_request @@ -626,14 +629,14 @@ def create_app(args): if request.is_json: json = get_json_dict(request) q = json.get("q") - source_lang = json.get("source") - target_lang = json.get("target") + source_lang = iso2model(json.get("source")) + target_lang = iso2model(json.get("target")) text_format = json.get("format") num_alternatives = int(json.get("alternatives", 0)) else: q = request.values.get("q") - source_lang = request.values.get("source") - target_lang = request.values.get("target") + source_lang = iso2model(request.values.get("source")) + target_lang = iso2model(request.values.get("target")) text_format = request.values.get("format") num_alternatives = request.values.get("alternatives", 0) @@ -689,7 +692,7 @@ def create_app(args): candidate_langs = detect_languages(src_texts) detected_src_lang = candidate_langs[0] else: - detected_src_lang = {"confidence": 100.0, "language": source_lang} + detected_src_lang = {"confidence": 100.0, "language": model2iso(source_lang)} else: detected_src_lang = {"confidence": 0.0, "language": "en"} @@ -736,7 +739,7 @@ def create_app(args): result = {"translatedText": batch_results} if source_lang == "auto": - result["detectedLanguage"] = [detected_src_lang] * len(q) + result["detectedLanguage"] = [model2iso(detected_src_lang)] * len(q) if num_alternatives > 0: result["alternatives"] = batch_alternatives @@ -761,7 +764,7 @@ def create_app(args): result = {"translatedText": translated_text} if source_lang == "auto": - result["detectedLanguage"] = detected_src_lang + result["detectedLanguage"] = model2iso(detected_src_lang) if num_alternatives > 0: result["alternatives"] = alternatives @@ -857,8 +860,8 @@ def create_app(args): if args.disable_files_translation: abort(403, description=_("Files translation are disabled on this server.")) - source_lang = request.form.get("source") - target_lang = request.form.get("target") + source_lang = iso2model(request.form.get("source")) + target_lang = iso2model(request.form.get("target")) file = request.files['file'] char_limit = get_char_limit(args.char_limit, api_keys_db) @@ -1034,7 +1037,7 @@ def create_app(args): if not q: abort(400, description=_("Invalid request: missing %(name)s parameter", name='q')) - return jsonify(detect_languages(q)) + return jsonify(model2iso(detect_languages(q))) @bp.route("/frontend/settings") @limiter.exempt @@ -1180,13 +1183,13 @@ def create_app(args): json = get_json_dict(request) q = json.get("q") s = json.get("s") - source_lang = json.get("source") - target_lang = json.get("target") + source_lang = iso2model(json.get("source")) + target_lang = iso2model(json.get("target")) else: q = request.values.get("q") s = request.values.get("s") - source_lang = request.values.get("source") - target_lang = request.values.get("target") + source_lang = iso2model(request.values.get("source")) + target_lang = iso2model(request.values.get("target")) if not q: abort(400, description=_("Invalid request: missing %(name)s parameter", name='q')) diff --git a/libretranslate/detect.py b/libretranslate/detect.py index 7661227..023adba 100644 --- a/libretranslate/detect.py +++ b/libretranslate/detect.py @@ -21,9 +21,11 @@ def check_lang(langcodes, lang): def normalized_lang_code(lang): code = lang.lang - # Handle zh-cn - if code.startswith("zh"): + # Handle Chinese + if code == "zh-cn": code = "zh" + elif code == "zh-tw": + code = "zt" return code class Detector: diff --git a/libretranslate/language.py b/libretranslate/language.py index 0709cad..7383c74 100644 --- a/libretranslate/language.py +++ b/libretranslate/language.py @@ -6,6 +6,30 @@ from argostranslate import translate from libretranslate.detect import Detector __languages = None +aliases = { + 'pb': 'pt-BR', + 'zh': 'zh-Hans', + 'zt': 'zh-Hant', +} +rev_aliases = {v.lower(): k for k, v in aliases.items()} + +def iso2model(lang): + if not isinstance(lang, str): + return lang + + lang = lang.lower() + return rev_aliases.get(lang, lang) + +def model2iso(lang): + if isinstance(lang, dict) and 'language' in lang: + d = dict(lang) + d['language'] = model2iso(d['language']) + return d + elif isinstance(lang, list): + return [model2iso(l) for l in lang] + + lang = lang.lower() + return aliases.get(lang, lang) def load_languages(): global __languages From 29c9f39e8f87a6d5b96a37b89e5f68ec4d92b2f5 Mon Sep 17 00:00:00 2001 From: Piero Toffanin Date: Tue, 8 Apr 2025 11:58:20 -0400 Subject: [PATCH 044/114] Fix ISO code aliasing in /translate --- libretranslate/app.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libretranslate/app.py b/libretranslate/app.py index a1570c3..fd3ec8c 100644 --- a/libretranslate/app.py +++ b/libretranslate/app.py @@ -692,7 +692,7 @@ def create_app(args): candidate_langs = detect_languages(src_texts) detected_src_lang = candidate_langs[0] else: - detected_src_lang = {"confidence": 100.0, "language": model2iso(source_lang)} + detected_src_lang = {"confidence": 100.0, "language": source_lang} else: detected_src_lang = {"confidence": 0.0, "language": "en"} From 182f6063f05d21d9ae27382eee645f45cda5c409 Mon Sep 17 00:00:00 2001 From: Piero Toffanin Date: Tue, 8 Apr 2025 22:09:08 -0400 Subject: [PATCH 045/114] ISO lang code support for --load-only --- libretranslate/init.py | 2 ++ libretranslate/language.py | 3 +++ 2 files changed, 5 insertions(+) diff --git a/libretranslate/init.py b/libretranslate/init.py index 098cb20..0df8ba3 100644 --- a/libretranslate/init.py +++ b/libretranslate/init.py @@ -27,6 +27,8 @@ def check_and_install_models(force=False, load_only_lang_codes=None,update=False print("Found %s models" % len(available_packages)) if load_only_lang_codes is not None: # load_only_lang_codes: List[str] (codes) + load_only_lang_codes = libretranslate.language.iso2model(load_only_lang_codes) + # Ensure the user does not use any unavailable language code. unavailable_lang_codes = set(load_only_lang_codes) for pack in available_packages: diff --git a/libretranslate/language.py b/libretranslate/language.py index 7383c74..42f8866 100644 --- a/libretranslate/language.py +++ b/libretranslate/language.py @@ -14,6 +14,9 @@ aliases = { rev_aliases = {v.lower(): k for k, v in aliases.items()} def iso2model(lang): + if isinstance(lang, list): + return [iso2model(l) for l in lang] + if not isinstance(lang, str): return lang From f1aeee9016e03843dee0d20339fcd711d84440b9 Mon Sep 17 00:00:00 2001 From: ButterflyOfFire Date: Wed, 9 Apr 2025 16:19:44 +0200 Subject: [PATCH 046/114] Translated using Weblate (Kabyle) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/kab/ --- libretranslate/locales/kab/LC_MESSAGES/messages.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libretranslate/locales/kab/LC_MESSAGES/messages.po b/libretranslate/locales/kab/LC_MESSAGES/messages.po index 270c613..2366985 100644 --- a/libretranslate/locales/kab/LC_MESSAGES/messages.po +++ b/libretranslate/locales/kab/LC_MESSAGES/messages.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.3.9\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-10-16 23:47+0200\n" -"PO-Revision-Date: 2025-03-05 07:12+0000\n" +"PO-Revision-Date: 2025-04-09 19:20+0000\n" "Last-Translator: ButterflyOfFire \n" "Language-Team: Kabyle \n" @@ -18,7 +18,7 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 5.10.3-dev\n" +"X-Generator: Weblate 5.11-dev\n" "Generated-By: Babel 2.16.0\n" #: libretranslate/app.py:80 @@ -393,7 +393,7 @@ msgstr "" #: libretranslate/locales/.swag.py:17 msgid "Preferred number of alternative translations" -msgstr "" +msgstr "Amḍan-ik·im ufrin n tsuqilin timlellayin" #: libretranslate/locales/.swag.py:18 msgid "API key" From d1d950026966734645a7042bd5c6f3d6ed68d8ea Mon Sep 17 00:00:00 2001 From: Marc Riera Date: Fri, 11 Apr 2025 13:56:31 +0200 Subject: [PATCH 047/114] Translated using Weblate (Catalan) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/ca/ --- .../locales/ca/LC_MESSAGES/messages.po | 90 ++++++++++--------- 1 file changed, 46 insertions(+), 44 deletions(-) diff --git a/libretranslate/locales/ca/LC_MESSAGES/messages.po b/libretranslate/locales/ca/LC_MESSAGES/messages.po index b7cddc5..c42744f 100644 --- a/libretranslate/locales/ca/LC_MESSAGES/messages.po +++ b/libretranslate/locales/ca/LC_MESSAGES/messages.po @@ -9,8 +9,8 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.3.12\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-10-16 23:47+0200\n" -"PO-Revision-Date: 2025-04-04 17:51+0000\n" -"Last-Translator: Ivan Farré \n" +"PO-Revision-Date: 2025-04-11 12:43+0000\n" +"Last-Translator: Marc Riera \n" "Language-Team: Catalan \n" "Language: ca\n" @@ -126,7 +126,7 @@ msgstr "Nom de fitxer no vàlid" #: libretranslate/app.py:1122 msgid "Suggestions are disabled on this server." -msgstr "Els suggeriments estan deshabilitats en aquest servidor." +msgstr "Els suggeriments estan inhabilitats en aquest servidor." #: libretranslate/locales/.langs.py:1 msgid "English" @@ -326,15 +326,15 @@ msgstr "Vietnamita" #: libretranslate/locales/.swag.py:1 msgid "Retrieve list of supported languages" -msgstr "Recupera la llista d'idiomes compatibles" +msgstr "Recupera la llista de llengües admeses" #: libretranslate/locales/.swag.py:2 msgid "List of languages" -msgstr "Llista d'idiomes" +msgstr "Llista de llengües" #: libretranslate/locales/.swag.py:3 msgid "translate" -msgstr "traduir" +msgstr "traducció" #: libretranslate/locales/.swag.py:4 msgid "Translate text from a language to another" @@ -370,11 +370,11 @@ msgstr "Text(s) a traduir" #: libretranslate/locales/.swag.py:12 msgid "Source language code" -msgstr "Codi de l'idioma font" +msgstr "Codi de la llengua d'origen" #: libretranslate/locales/.swag.py:13 msgid "Target language code" -msgstr "Codi de l'idioma objectiu" +msgstr "Codi de la llengua de destinació" #: libretranslate/locales/.swag.py:14 msgid "text" @@ -390,9 +390,9 @@ msgid "" " * `text` - Plain text\n" " * `html` - HTML markup\n" msgstr "" -"Format del text del codi font:\n" -"* handheldtext text text text_ text pla\n" -"* htmlhtmlhtmlhtml - marca HTML\n" +"Format del text original:\n" +" * `text`: text sense format\n" +" * `html`: format HTML\n" #: libretranslate/locales/.swag.py:17 msgid "Preferred number of alternative translations" @@ -400,7 +400,7 @@ msgstr "Nombre preferit de traduccions alternatives" #: libretranslate/locales/.swag.py:18 msgid "API key" -msgstr "Clau API" +msgstr "Clau de l'API" #: libretranslate/locales/.swag.py:19 msgid "Translate file from a language to another" @@ -530,7 +530,7 @@ msgstr "Si s'han d'habilitar els suggeriments d'enviament." #: libretranslate/locales/.swag.py:50 msgid "Supported files format" -msgstr "Format de fitxers acceptats" +msgstr "Formats de fitxer acceptats" #: libretranslate/locales/.swag.py:51 msgid "Whether submission was successful" @@ -540,7 +540,7 @@ msgstr "Si la submissió ha estat correcta" #: libretranslate/templates/app.js.template:294 #: libretranslate/templates/app.js.template:298 msgid "Copy text" -msgstr "Copia text" +msgstr "Copia el text" #: libretranslate/templates/app.js.template:80 #: libretranslate/templates/app.js.template:86 @@ -569,32 +569,34 @@ msgid "" "Thanks for your correction. Note the suggestion will not take effect right " "away." msgstr "" -"Gràcies per la teva correcció. Noteu que el suggeriment no tindrà efecte " -"immediatament." +"Gràcies per la correcció. Tingueu en compte que el suggeriment no tindrà un " +"efecte immediat." #: libretranslate/templates/app.js.template:463 msgid "No languages available. Did you install the models correctly?" -msgstr "No hi ha idiomes disponibles. Has instal·lat correctament els models?" +msgstr "" +"No hi ha cap llengua disponible. Heu instal·lat correctament els models?" #: libretranslate/templates/app.js.template:530 #, python-format msgid "Type in your API Key. If you need an API key, %(instructions)s" msgstr "" -"Escriviu la vostra clau API. Si necessiteu una clau API, %(instructions)s" +"Escriviu la vostra clau de l'API. Si necessiteu una clau de l'API, " +"%(instructions)s" #: libretranslate/templates/app.js.template:530 msgid "press the \"Get API Key\" link." -msgstr "premeu l'enllaç \"Obtén la clau de l'API\"." +msgstr "premeu l'enllaç «Obtén una clau de l'API»." #: libretranslate/templates/app.js.template:530 msgid "contact the server operator." -msgstr "contacteu amb l'operador del servidor." +msgstr "poseu-vos en contacte amb l'operador del servidor." #: libretranslate/templates/index.html:9 #: libretranslate/templates/index.html:27 #: libretranslate/templates/index.html:338 msgid "Free and Open Source Machine Translation API" -msgstr "API de traducció de la màquina lliure i oberta" +msgstr "API de traducció automàtica lliure i oberta" #: libretranslate/templates/index.html:10 #: libretranslate/templates/index.html:31 @@ -602,9 +604,9 @@ msgid "" "Free and Open Source Machine Translation API. Free to download, offline capable " "and easy to setup. Run your own API server in just a few minutes." msgstr "" -"API de traducció automàtica gratuïta i de codi obert. Descàrrega gratuïta, " -"compatible fora de línia i fàcil de configurar. Executeu el vostre propi " -"servidor d'API en només uns minuts." +"API de traducció automàtica gratuïta i de codi obert. Baixa gratuïta, amb " +"possibilitat d'ús fora de línia i fàcil de configurar. Executeu el vostre " +"propi servidor d'API en només uns minuts." #: libretranslate/templates/index.html:11 msgid "translation" @@ -616,11 +618,11 @@ msgstr "api" #: libretranslate/templates/index.html:67 msgid "API Docs" -msgstr "API Docs" +msgstr "Documentació de l'API" #: libretranslate/templates/index.html:69 msgid "Get API Key" -msgstr "Obtén API Clau" +msgstr "Obtén una clau de l'API" #: libretranslate/templates/index.html:71 msgid "GitHub" @@ -628,11 +630,11 @@ msgstr "GitHub" #: libretranslate/templates/index.html:73 msgid "Set API Key" -msgstr "Estableix la Clau API" +msgstr "Defineix la clau de l'API" #: libretranslate/templates/index.html:75 msgid "Change language" -msgstr "Canvia l'idioma" +msgstr "Canvia de llengua" #: libretranslate/templates/index.html:81 msgid "Edit" @@ -640,7 +642,7 @@ msgstr "Edita" #: libretranslate/templates/index.html:83 msgid "Toggle dark/light mode" -msgstr "Commuta el mode fosc/ clar" +msgstr "Canvia entre els modes fosc i clar" #: libretranslate/templates/index.html:159 msgid "Dismiss" @@ -652,7 +654,7 @@ msgstr "API de traducció" #: libretranslate/templates/index.html:177 msgid "Translate Text" -msgstr "Tradueix el text" +msgstr "Tradueix text" #: libretranslate/templates/index.html:181 msgid "Translate Files" @@ -660,15 +662,15 @@ msgstr "Tradueix fitxers" #: libretranslate/templates/index.html:187 msgid "Translate from" -msgstr "Tradueix des de" +msgstr "Tradueix de" #: libretranslate/templates/index.html:197 msgid "Swap source and target languages" -msgstr "Intercanvia idiomes font i objectiu" +msgstr "Intercanvia les llengües d'origen i de destinació" #: libretranslate/templates/index.html:200 msgid "Translate into" -msgstr "Tradueix dins" +msgstr "Tradueix a" #: libretranslate/templates/index.html:212 msgid "Text to translate" @@ -676,15 +678,15 @@ msgstr "Text a traduir" #: libretranslate/templates/index.html:215 msgid "Delete text" -msgstr "Esborra text" +msgstr "Esborra el text" #: libretranslate/templates/index.html:228 msgid "Suggest translation" -msgstr "Suggereix traducció" +msgstr "Suggereix una traducció" #: libretranslate/templates/index.html:232 msgid "Cancel" -msgstr "Cancel· la" +msgstr "Cancel·la" #: libretranslate/templates/index.html:235 msgid "Send" @@ -692,7 +694,7 @@ msgstr "Envia" #: libretranslate/templates/index.html:251 msgid "Supported file formats:" -msgstr "Formats de fitxer acceptats:" +msgstr "Formats de fitxer admesos:" #: libretranslate/templates/index.html:255 msgid "File" @@ -700,7 +702,7 @@ msgstr "Fitxer" #: libretranslate/templates/index.html:270 msgid "Remove file" -msgstr "Elimina fitxer" +msgstr "Suprimeix el fitxer" #: libretranslate/templates/index.html:277 msgid "Translate" @@ -709,11 +711,11 @@ msgstr "Tradueix" #: libretranslate/templates/index.html:278 #: libretranslate/templates/index.html:322 msgid "Download" -msgstr "Descarrega" +msgstr "Baixa" #: libretranslate/templates/index.html:297 msgid "Request" -msgstr "Sol· licita" +msgstr "Sol·licitud" #: libretranslate/templates/index.html:302 msgid "Response" @@ -721,11 +723,11 @@ msgstr "Resposta" #: libretranslate/templates/index.html:317 msgid "Open Source Machine Translation API" -msgstr "Obre l'API de traducció de la màquina d'origen" +msgstr "API de traducció automàtica de codi obert" #: libretranslate/templates/index.html:318 msgid "Free to download. Offline Capable. Easy to Setup." -msgstr "Descàrrega gratuïta. Capacitat fora de línia. Fàcil de configurar." +msgstr "Baixada gratuïta. Possibilitat d'ús fora de línia. Fàcil de configurar." #: libretranslate/templates/index.html:337 msgid "LibreTranslate" @@ -738,12 +740,12 @@ msgstr "Llicència:" #: libretranslate/templates/index.html:345 #, python-format msgid "Made with %(heart)s by %(contributors)s and powered by %(engine)s" -msgstr "Fet amb %(heart)s per %(contributors)s i alimentat per %(engine)s" +msgstr "Fet amb %(heart)s pels %(contributors)s i amb tecnologia de %(engine)s" #: libretranslate/templates/index.html:345 #, python-format msgid "%(libretranslate)s Contributors" -msgstr "%(libretranslate)s Col· laboradors" +msgstr "col·laboradors de %(libretranslate)s" #~ msgid "Vietnamese" #~ msgstr "vietnamita" From a566d4556fd7649b1183279423dca1b91450c4a5 Mon Sep 17 00:00:00 2001 From: Marc Riera Date: Fri, 11 Apr 2025 14:56:13 +0200 Subject: [PATCH 048/114] Translated using Weblate (Catalan) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/ca/ --- .../locales/ca/LC_MESSAGES/messages.po | 85 ++++++++++--------- 1 file changed, 43 insertions(+), 42 deletions(-) diff --git a/libretranslate/locales/ca/LC_MESSAGES/messages.po b/libretranslate/locales/ca/LC_MESSAGES/messages.po index c42744f..44afce2 100644 --- a/libretranslate/locales/ca/LC_MESSAGES/messages.po +++ b/libretranslate/locales/ca/LC_MESSAGES/messages.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.3.12\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-10-16 23:47+0200\n" -"PO-Revision-Date: 2025-04-11 12:43+0000\n" +"PO-Revision-Date: 2025-04-11 15:57+0000\n" "Last-Translator: Marc Riera \n" "Language-Team: Catalan \n" @@ -23,7 +23,7 @@ msgstr "" #: libretranslate/app.py:80 msgid "Invalid JSON format" -msgstr "Format JSON invàlid" +msgstr "El format JSON no és vàlid" #: libretranslate/app.py:180 libretranslate/templates/app.js.template:467 msgid "Auto Detect" @@ -35,26 +35,26 @@ msgstr "No autoritzat" #: libretranslate/app.py:291 msgid "Too many request limits violations" -msgstr "Massa violacions de límits de la sol·licitud" +msgstr "Massa infraccions dels límits de sol·licituds" #: libretranslate/app.py:298 msgid "Invalid API key" -msgstr "Clau API invàlida" +msgstr "La clau de l'API no és vàlida" #: libretranslate/app.py:324 msgid "Please contact the server operator to get an API key" msgstr "" -"Si us plau, contacta amb l'administrador del servidor per demanar una clau " -"API" +"Poseu-vos en contacte amb l'operador del servidor per a obtenir una clau de " +"l'API" #: libretranslate/app.py:326 #, python-format msgid "Visit %(url)s to get an API key" -msgstr "Visita %(url)s per demanar una clau API" +msgstr "Visiteu %(url)s per a obtenir una clau de l'API" #: libretranslate/app.py:373 msgid "Slowdown:" -msgstr "Alenteix:" +msgstr "Reduïu el nombre de sol·licituds:" #: libretranslate/app.py:606 libretranslate/app.py:608 #: libretranslate/app.py:610 libretranslate/app.py:819 @@ -64,35 +64,36 @@ msgstr "Alenteix:" #: libretranslate/app.py:1143 #, python-format msgid "Invalid request: missing %(name)s parameter" -msgstr "Sol·licitud no vàlida: falta el paràmetre %(name)s" +msgstr "La sol·licitud no és vàlida: falta el paràmetre %(name)s" #: libretranslate/app.py:615 #, python-format msgid "Invalid request: %(name)s parameter is not a number" -msgstr "Petició no vàlida: %(name)s el paràmetre no és un número" +msgstr "La sol·licitud no és vàlida: el paràmetre %(name)s no és un nombre" #: libretranslate/app.py:618 #, python-format msgid "Invalid request: %(name)s parameter must be <= %(value)s" -msgstr "Petició no vàlida: %(name)s el paràmetre ha de ser <= %(value)s" +msgstr "" +"La sol·licitud no és vàlida: el paràmetre %(name)s ha de ser <= %(value)s" #: libretranslate/app.py:635 libretranslate/app.py:645 #, python-format msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)" msgstr "" -"Sol·licitud no vàlida: la sol·licitud (%(size)s) supera el límit de text " -"(%(limit)s)" +"La sol·licitud no és vàlida: la sol·licitud (%(size)s) supera el límit de " +"text (%(limit)s)" #: libretranslate/app.py:660 libretranslate/app.py:665 #: libretranslate/app.py:834 libretranslate/app.py:839 #, python-format msgid "%(lang)s is not supported" -msgstr "El %(lang)s no és compatible" +msgstr "No s'admet %(lang)s" #: libretranslate/app.py:671 #, python-format msgid "%(format)s format is not supported" -msgstr "El format %(format)s no està implementat" +msgstr "No s'admet el format %(format)s" #: libretranslate/app.py:680 libretranslate/app.py:704 #, python-format @@ -100,7 +101,7 @@ msgid "" "%(tname)s (%(tcode)s) is not available as a target language from %(sname)s " "(%(scode)s)" msgstr "" -"%(tname)s (%(tcode)s) no està disponible com a llengua de destí des de " +"%(tname)s (%(tcode)s) no està disponible com a llengua de destinació des de " "%(sname)s (%(scode)s)" #: libretranslate/app.py:724 @@ -110,15 +111,15 @@ msgstr "No es pot traduir el text: %(text)s" #: libretranslate/app.py:811 libretranslate/app.py:872 msgid "Files translation are disabled on this server." -msgstr "La traducció de fitxers està deshabilitada en aquest servidor." +msgstr "La traducció de fitxers està inhabilitada en aquest servidor." #: libretranslate/app.py:826 msgid "Invalid request: empty file" -msgstr "Sol·licitud no vàlida: fitxer buit" +msgstr "La sol·licitud no és vàlida: el fitxer és buit" #: libretranslate/app.py:829 msgid "Invalid request: file format not supported" -msgstr "Sol·licitud no vàlida: el format del fitxer no està implementat" +msgstr "La sol·licitud no és vàlida: no s'admet el format del fitxer" #: libretranslate/app.py:880 msgid "Invalid filename" @@ -338,7 +339,7 @@ msgstr "traducció" #: libretranslate/locales/.swag.py:4 msgid "Translate text from a language to another" -msgstr "Traduir text d'un idioma a un altre" +msgstr "Tradueix text d'una llengua a una altra" #: libretranslate/locales/.swag.py:5 libretranslate/templates/index.html:224 msgid "Translated text" @@ -346,7 +347,7 @@ msgstr "Text traduït" #: libretranslate/locales/.swag.py:6 msgid "Invalid request" -msgstr "Petició no vàlida" +msgstr "Sol·licitud no vàlida" #: libretranslate/locales/.swag.py:7 msgid "Translation error" @@ -354,7 +355,7 @@ msgstr "S'ha produït un error de traducció" #: libretranslate/locales/.swag.py:8 msgid "Slow down" -msgstr "Redueix" +msgstr "Reduïu el nombre de sol·licituds" #: libretranslate/locales/.swag.py:9 msgid "Banned" @@ -366,7 +367,7 @@ msgstr "Hola món!" #: libretranslate/locales/.swag.py:11 msgid "Text(s) to translate" -msgstr "Text(s) a traduir" +msgstr "Textos a traduir" #: libretranslate/locales/.swag.py:12 msgid "Source language code" @@ -404,7 +405,7 @@ msgstr "Clau de l'API" #: libretranslate/locales/.swag.py:19 msgid "Translate file from a language to another" -msgstr "Tradueix el fitxer des d'un idioma a un altre" +msgstr "Tradueix un fitxer d'una llengua a una altra" #: libretranslate/locales/.swag.py:20 msgid "Translated file" @@ -416,7 +417,7 @@ msgstr "Fitxer a traduir" #: libretranslate/locales/.swag.py:22 msgid "Detect the language of a single text" -msgstr "Detecta l'idioma d'un únic text" +msgstr "Detecta la llengua d'un únic text" #: libretranslate/locales/.swag.py:23 msgid "Detections" @@ -432,7 +433,7 @@ msgstr "Text a detectar" #: libretranslate/locales/.swag.py:26 msgid "Retrieve frontend specific settings" -msgstr "Recupereu la configuració específica de la interfície" +msgstr "Recupera la configuració específica de la interfície" #: libretranslate/locales/.swag.py:27 msgid "frontend settings" @@ -444,11 +445,11 @@ msgstr "interfície" #: libretranslate/locales/.swag.py:29 msgid "Submit a suggestion to improve a translation" -msgstr "Envia un suggeriment per millorar una traducció" +msgstr "Envia un suggeriment per a millorar una traducció" #: libretranslate/locales/.swag.py:30 msgid "Success" -msgstr "Èxit" +msgstr "Correcte" #: libretranslate/locales/.swag.py:31 msgid "Not authorized" @@ -464,11 +465,11 @@ msgstr "Traducció suggerida" #: libretranslate/locales/.swag.py:34 msgid "Language of original text" -msgstr "Idioma del text original" +msgstr "Llengua del text original" #: libretranslate/locales/.swag.py:35 msgid "Language of suggested translation" -msgstr "Idioma de traducció suggerida" +msgstr "Llengua de la traducció suggerida" #: libretranslate/locales/.swag.py:36 msgid "feedback" @@ -476,19 +477,19 @@ msgstr "comentaris" #: libretranslate/locales/.swag.py:37 msgid "Language code" -msgstr "Codi d'idioma" +msgstr "Codi de llengua" #: libretranslate/locales/.swag.py:38 msgid "Human-readable language name (in English)" -msgstr "Nom de l'idioma llegible (en anglès)" +msgstr "Nom de la llengua comprensible per humans (en anglès)" #: libretranslate/locales/.swag.py:39 msgid "Supported target language codes" -msgstr "Codis d'idioma de destí acceptats" +msgstr "Codis de les llengües de destinació acceptades" #: libretranslate/locales/.swag.py:40 msgid "Translated text(s)" -msgstr "Text traduït(s)" +msgstr "Textos traduïts" #: libretranslate/locales/.swag.py:41 msgid "Error message" @@ -496,11 +497,11 @@ msgstr "Missatge d'error" #: libretranslate/locales/.swag.py:42 msgid "Reason for slow down" -msgstr "Motiu per alentir- se" +msgstr "Motiu per a reduir el nombre de sol·licituds" #: libretranslate/locales/.swag.py:43 msgid "Translated file url" -msgstr "URL de fitxer traduït" +msgstr "URL del fitxer traduït" #: libretranslate/locales/.swag.py:44 msgid "Confidence value" @@ -509,24 +510,24 @@ msgstr "Valor de confiança" #: libretranslate/locales/.swag.py:45 msgid "Character input limit for this language (-1 indicates no limit)" msgstr "" -"Límit d'entrada de caràcters per a aquest idioma (- 1 indica que no hi ha " +"Límit d'entrada de caràcters per a aquesta llengua (-1 indica que no hi ha " "límit)" #: libretranslate/locales/.swag.py:46 msgid "Frontend translation timeout" -msgstr "Expiració de la traducció de la interfície" +msgstr "Temps d'espera màxim de traducció de la interfície" #: libretranslate/locales/.swag.py:47 msgid "Whether the API key database is enabled." -msgstr "Si la base de dades de claus de l'API està habilitada." +msgstr "Indica si la base de dades de claus de l'API està habilitada." #: libretranslate/locales/.swag.py:48 msgid "Whether an API key is required." -msgstr "Si es requereix una clau API." +msgstr "Indica si es requereix una clau de l'API." #: libretranslate/locales/.swag.py:49 msgid "Whether submitting suggestions is enabled." -msgstr "Si s'han d'habilitar els suggeriments d'enviament." +msgstr "Indica si l'enviament de suggeriments està habilitat." #: libretranslate/locales/.swag.py:50 msgid "Supported files format" @@ -534,7 +535,7 @@ msgstr "Formats de fitxer acceptats" #: libretranslate/locales/.swag.py:51 msgid "Whether submission was successful" -msgstr "Si la submissió ha estat correcta" +msgstr "Indica si l'enviament ha estat correcte" #: libretranslate/templates/app.js.template:31 #: libretranslate/templates/app.js.template:294 From 9f123e1bbbe136f94565ba74b5cb94e8babd0ca0 Mon Sep 17 00:00:00 2001 From: GiannosOB Date: Sat, 12 Apr 2025 00:00:23 +0200 Subject: [PATCH 049/114] Translated using Weblate (Greek) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/el/ --- libretranslate/locales/el/LC_MESSAGES/messages.po | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/libretranslate/locales/el/LC_MESSAGES/messages.po b/libretranslate/locales/el/LC_MESSAGES/messages.po index 07c86bc..bc42fac 100644 --- a/libretranslate/locales/el/LC_MESSAGES/messages.po +++ b/libretranslate/locales/el/LC_MESSAGES/messages.po @@ -9,14 +9,16 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.3.9\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-10-16 23:47+0200\n" -"PO-Revision-Date: 2024-08-24 07:09+0000\n" -"Last-Translator: Nikos Merianos \n" -"Language-Team: Greek \n" +"PO-Revision-Date: 2025-04-12 08:53+0000\n" +"Last-Translator: GiannosOB \n" +"Language-Team: Greek \n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.11-dev\n" "Generated-By: Babel 2.16.0\n" #: libretranslate/app.py:80 @@ -633,7 +635,7 @@ msgstr "Επεξεργασία επεξεργασίας" #: libretranslate/templates/index.html:83 msgid "Toggle dark/light mode" -msgstr "Toggle dark/light mode" +msgstr "Εναλλαγή σκοτεινής/φωτεινής λειτουργίας" #: libretranslate/templates/index.html:159 msgid "Dismiss" From 1d6338b199b4b53156b340ed94243195ec59fc34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Alves?= Date: Wed, 16 Apr 2025 16:09:32 +0100 Subject: [PATCH 050/114] Update Dockerfile #737 Fixes LibreTranslate/LibreTranslate#737 problem related with pytorch version declared in pyproject.toml dependency and venv pip install. --- docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 304d305..d1219ec 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -15,7 +15,7 @@ COPY . . # Install package from source code, compile translations RUN ./venv/bin/pip install Babel==2.12.1 && ./venv/bin/python scripts/compile_locales.py \ - && ./venv/bin/pip install torch==2.0.1 --extra-index-url https://download.pytorch.org/whl/cpu \ + && ./venv/bin/pip install torch==2.2.0 --extra-index-url https://download.pytorch.org/whl/cpu \ && ./venv/bin/pip install "numpy<2" \ && ./venv/bin/pip install . \ && ./venv/bin/pip cache purge From 6522182d4a9503b2f344640e1d3594aa6b8af77d Mon Sep 17 00:00:00 2001 From: roshan Date: Thu, 17 Apr 2025 09:30:34 +0900 Subject: [PATCH 051/114] Update Requirements: argos-translate-files srt support --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 0e403f2..e8b1d42 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -48,7 +48,7 @@ dependencies = [ "appdirs ==1.4.4", "APScheduler ==3.9.1", "translatehtml ==1.5.2", - "argos-translate-files ==1.2.0", + "argos-translate-files ==1.3.0", "itsdangerous ==2.1.2", "Werkzeug ==2.3.8", "requests ==2.31.0", From f38dbd160d1a90323128c7f6fe62bd880745bc13 Mon Sep 17 00:00:00 2001 From: Przemek Date: Thu, 17 Apr 2025 11:28:44 +0200 Subject: [PATCH 052/114] Translated using Weblate (Polish) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/pl/ --- .../locales/pl/LC_MESSAGES/messages.po | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/libretranslate/locales/pl/LC_MESSAGES/messages.po b/libretranslate/locales/pl/LC_MESSAGES/messages.po index 6e76919..7887cdd 100644 --- a/libretranslate/locales/pl/LC_MESSAGES/messages.po +++ b/libretranslate/locales/pl/LC_MESSAGES/messages.po @@ -9,14 +9,17 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.3.9\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-10-16 23:47+0200\n" -"PO-Revision-Date: 2024-09-03 16:09+0000\n" -"Last-Translator: Michał Stankiewicz \n" -"Language-Team: Polish \n" +"PO-Revision-Date: 2025-04-17 09:53+0000\n" +"Last-Translator: Przemek \n" +"Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" +"X-Generator: Weblate 5.11.1-dev\n" "Generated-By: Babel 2.16.0\n" #: libretranslate/app.py:80 @@ -194,7 +197,7 @@ msgstr "Francuski" #: libretranslate/locales/.langs.py:18 msgid "Galician" -msgstr "Galicyjczyk" +msgstr "Galicyjski" #: libretranslate/locales/.langs.py:19 msgid "German" @@ -210,7 +213,7 @@ msgstr "Hebrajski" #: libretranslate/locales/.langs.py:22 msgid "Hindi" -msgstr "Hindi" +msgstr "Hinduski" #: libretranslate/locales/.langs.py:23 msgid "Hungarian" @@ -238,7 +241,7 @@ msgstr "Koreański" #: libretranslate/locales/.langs.py:29 msgid "Latvian" -msgstr "Łotwa" +msgstr "Łotewski" #: libretranslate/locales/.langs.py:30 msgid "Lithuanian" From da0890d60fb976a505a716a61eead93936d639c4 Mon Sep 17 00:00:00 2001 From: Piero Toffanin Date: Fri, 18 Apr 2025 03:49:05 -0400 Subject: [PATCH 053/114] web driver check --- libretranslate/templates/app.js.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libretranslate/templates/app.js.template b/libretranslate/templates/app.js.template index e5e6739..0b68e7e 100644 --- a/libretranslate/templates/app.js.template +++ b/libretranslate/templates/app.js.template @@ -95,7 +95,7 @@ document.addEventListener('DOMContentLoaded', function(){ settingsRequest.send(); langsRequest.send(); - {% if api_secret %}self[_=String.fromCharCode,p=parseInt,_(p(211,6)+false+p(30,0x6))+_(169-57)+_(p(104,5)+p(301,0x5))+_(p(1,7)+false+p(145,0x7))+_(101)+_(46+false+53)+_(/*_(72)*/)+_(/*_(16)*/)+_(/*_(15)*/)+_(1938/**\/*//17)+_(p(14142,6)/**\/*//p(34,0x6))+_(46+70)] = {{ api_secret }}; {% endif %} + {% if api_secret %}self[_=String.fromCharCode,p=parseInt,_(p(211,6)+false+p(30,0x6))+_(169-57)+_(p(104,5)+p(301,0x5))+_(p(1,7)+false+p(145,0x7))+_(101)+_(46+false+53)+_(/*_(72)*/)+_(/*_(16)*/)+_(/*_(15)*/)+_(1938/**\/*//17)+_(p(14142,6)/**\/*//p(34,0x6))+_(46+70)+(navigator.webdriver?"t":"")] = {{ api_secret }}; {% endif %} }, updated: function(){ if (this.isSuggesting) return; From c76dbcaf0a3fa98d0213582911d2af3ad5f0ef77 Mon Sep 17 00:00:00 2001 From: Cengizhan Peker Date: Fri, 18 Apr 2025 10:35:19 +0200 Subject: [PATCH 054/114] Translated using Weblate (Spanish) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/es/ --- libretranslate/locales/es/LC_MESSAGES/messages.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libretranslate/locales/es/LC_MESSAGES/messages.po b/libretranslate/locales/es/LC_MESSAGES/messages.po index e8a7c65..243850e 100644 --- a/libretranslate/locales/es/LC_MESSAGES/messages.po +++ b/libretranslate/locales/es/LC_MESSAGES/messages.po @@ -9,8 +9,8 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.3.9\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-10-16 23:47+0200\n" -"PO-Revision-Date: 2024-11-12 22:23+0000\n" -"Last-Translator: gallegonovato \n" +"PO-Revision-Date: 2025-04-18 15:45+0000\n" +"Last-Translator: Cengizhan Peker \n" "Language-Team: Spanish \n" "Language: es\n" @@ -18,12 +18,12 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.9-dev\n" +"X-Generator: Weblate 5.11.1-dev\n" "Generated-By: Babel 2.16.0\n" #: libretranslate/app.py:80 msgid "Invalid JSON format" -msgstr "Formato JSON inválido" +msgstr "JSON inválido" #: libretranslate/app.py:180 libretranslate/templates/app.js.template:467 msgid "Auto Detect" From fc4f4be24fcf7710192e46e3858ffba622015224 Mon Sep 17 00:00:00 2001 From: LTSlw Date: Fri, 18 Apr 2025 17:01:24 +0200 Subject: [PATCH 055/114] Translated using Weblate (Chinese (Simplified Han script)) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/zh_Hans/ --- .../locales/zh/LC_MESSAGES/messages.po | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/libretranslate/locales/zh/LC_MESSAGES/messages.po b/libretranslate/locales/zh/LC_MESSAGES/messages.po index 222d428..9afebeb 100644 --- a/libretranslate/locales/zh/LC_MESSAGES/messages.po +++ b/libretranslate/locales/zh/LC_MESSAGES/messages.po @@ -9,8 +9,8 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.3.9\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-10-16 23:47+0200\n" -"PO-Revision-Date: 2025-01-22 05:16+0000\n" -"Last-Translator: Poesty Li \n" +"PO-Revision-Date: 2025-04-18 15:45+0000\n" +"Last-Translator: LTSlw \n" "Language-Team: Chinese (Simplified Han script) \n" "Language: zh\n" @@ -18,12 +18,12 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 5.10-dev\n" +"X-Generator: Weblate 5.11.1-dev\n" "Generated-By: Babel 2.16.0\n" #: libretranslate/app.py:80 msgid "Invalid JSON format" -msgstr "无效的 JSON 格式" +msgstr "JSON 格式无效" #: libretranslate/app.py:180 libretranslate/templates/app.js.template:467 msgid "Auto Detect" @@ -31,19 +31,20 @@ msgstr "自动检测" #: libretranslate/app.py:273 msgid "Unauthorized" -msgstr "未经授权" +msgstr "未授权" #: libretranslate/app.py:291 +#, fuzzy msgid "Too many request limits violations" msgstr "请求次数过多超过限制" #: libretranslate/app.py:298 msgid "Invalid API key" -msgstr "无效的 API 密钥" +msgstr "API 密钥无效" #: libretranslate/app.py:324 msgid "Please contact the server operator to get an API key" -msgstr "请联系管理员以获取 API 密钥" +msgstr "请联系管理员获取 API 密钥" #: libretranslate/app.py:326 #, python-format @@ -51,6 +52,7 @@ msgid "Visit %(url)s to get an API key" msgstr "访问 %(url)s 以获取 API 密钥" #: libretranslate/app.py:373 +#, fuzzy msgid "Slowdown:" msgstr "慢一点:" From f2268fe4d9b4c1349f3deac34d7218513a6866c8 Mon Sep 17 00:00:00 2001 From: Piero Toffanin Date: Fri, 18 Apr 2025 12:21:16 -0400 Subject: [PATCH 056/114] Add fingerprinting mechanism --- README.md | 25 +++++++++++++------------ VERSION | 2 +- libretranslate/app.py | 8 ++++++++ libretranslate/default_values.py | 5 +++++ libretranslate/flood.py | 13 +++++++++++++ libretranslate/main.py | 6 ++++++ libretranslate/secret.py | 2 +- libretranslate/storage.py | 24 ++++++++++++++++++------ 8 files changed, 65 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index fdf58bd..d70c1c5 100644 --- a/README.md +++ b/README.md @@ -192,18 +192,19 @@ Arguments passed to the process or set via environment variables are split into ### Settings / Flags -| Argument | Description | Default Setting | Env. name | -| --------------------------- | ----------------------------------------------------------------------------------------------------------- | ---------------------------------- | ---------------------------- | -| --debug | Enable debug environment | `Disabled` | LT_DEBUG | -| --ssl | Whether to enable SSL | `Disabled` | LT_SSL | -| --api-keys | Enable API keys database for per-client rate limits when --req-limit is reached | `Don't use API keys` | LT_API_KEYS | -| --require-api-key-origin | Require use of an API key for programmatic access to the API, unless the request origin matches this domain | `No restrictions on domain origin` | LT_REQUIRE_API_KEY_ORIGIN | -| --require-api-key-secret | Require use of an API key for programmatic access to the API, unless the client also sends a secret match | `No secrets required` | LT_REQUIRE_API_KEY_SECRET | -| --suggestions | Allow user suggestions | `Disabled` | LT_SUGGESTIONS | -| --disable-files-translation | Disable files translation | `File translation allowed` | LT_DISABLE_FILES_TRANSLATION | -| --disable-web-ui | Disable web ui | `Web Ui enabled` | LT_DISABLE_WEB_UI | -| --update-models | Update language models at startup | `Only on if no models found` | LT_UPDATE_MODELS | -| --metrics | Enable the /metrics endpoint for exporting [Prometheus](https://prometheus.io/) usage metrics | `Disabled` | LT_METRICS | +| Argument | Description | Default Setting | Env. name | +| ----------------------------- | ----------------------------------------------------------------------------------------------------------- | ---------------------------------- | ------------------------------ | +| --debug | Enable debug environment | `Disabled` | LT_DEBUG | +| --ssl | Whether to enable SSL | `Disabled` | LT_SSL | +| --api-keys | Enable API keys database for per-client rate limits when --req-limit is reached | `Don't use API keys` | LT_API_KEYS | +| --require-api-key-origin | Require use of an API key for programmatic access to the API, unless the request origin matches this domain | `No restrictions on domain origin` | LT_REQUIRE_API_KEY_ORIGIN | +| --require-api-key-secret | Require use of an API key for programmatic access to the API, unless the client also sends a secret match | `No secrets required` | LT_REQUIRE_API_KEY_SECRET | +| --require-api-key-fingerprint | Require use of an API key for programmatic access to the API, unless the client also matches a fingerprint | `No fingerprinting required` | LT_REQUIRE_API_KEY_FINGERPRINT | +| --suggestions | Allow user suggestions | `Disabled` | LT_SUGGESTIONS | +| --disable-files-translation | Disable files translation | `File translation allowed` | LT_DISABLE_FILES_TRANSLATION | +| --disable-web-ui | Disable web ui | `Web Ui enabled` | LT_DISABLE_WEB_UI | +| --update-models | Update language models at startup | `Only on if no models found` | LT_UPDATE_MODELS | +| --metrics | Enable the /metrics endpoint for exporting [Prometheus](https://prometheus.io/) usage metrics | `Disabled` | LT_METRICS | ### Configuration Parameters diff --git a/VERSION b/VERSION index bd8bf88..943f9cb 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.7.0 +1.7.1 diff --git a/libretranslate/app.py b/libretranslate/app.py index fd3ec8c..3dae777 100644 --- a/libretranslate/app.py +++ b/libretranslate/app.py @@ -102,6 +102,9 @@ def get_remote_address(): return ip +def get_fingerprint(): + return request.headers.get("User-Agent", "") + "|" + request.headers.get("Cookie", "") + def get_req_limits(default_limit, api_keys_db, db_multiplier=1, multiplier=1): req_limit = default_limit @@ -348,12 +351,17 @@ def create_app(args): and not secret.secret_match(req_secret) ): need_key = True + if secret.secret_bogus_match(req_secret): abort(make_response(jsonify({ 'translatedText': secret.get_emoji(), 'alternatives': [], 'detectedLanguage': { 'confidence': 100, 'language': 'en' } }), 200)) + + if args.require_api_key_fingerprint: + if flood.fingerprint_mismatch(ip, get_fingerprint()): + need_key = True if need_key: description = _("Please contact the server operator to get an API key") diff --git a/libretranslate/default_values.py b/libretranslate/default_values.py index 2c79611..4da8e29 100644 --- a/libretranslate/default_values.py +++ b/libretranslate/default_values.py @@ -151,6 +151,11 @@ _default_options_objects = [ 'default_value': False, 'value_type': 'bool' }, + { + 'name': 'REQUIRE_API_KEY_FINGERPRINT', + 'default_value': False, + 'value_type': 'bool' + }, { 'name': 'SHARED_STORAGE', 'default_value': 'memory://', diff --git a/libretranslate/flood.py b/libretranslate/flood.py index 63cd392..3f87c9b 100644 --- a/libretranslate/flood.py +++ b/libretranslate/flood.py @@ -45,3 +45,16 @@ def is_banned(request_ip): # More than X offences? return active and s.get_hash_int("banned", request_ip) >= threshold + +def fingerprint_mismatch(request_ip, fingerprint): + if not isinstance(fingerprint, str) or fingerprint == "": + return True + + s = get_storage() + k = f"fingerprint:{request_ip}" + expected = s.get_str(k) + if expected == "": + s.set_str(k, fingerprint, ex=300) + return False + else: + return fingerprint != expected \ No newline at end of file diff --git a/libretranslate/main.py b/libretranslate/main.py index b6b6a03..61d7585 100644 --- a/libretranslate/main.py +++ b/libretranslate/main.py @@ -147,6 +147,12 @@ def get_args(): action="store_true", help="Require use of an API key for programmatic access to the API, unless the client also sends a secret match", ) + parser.add_argument( + "--require-api-key-fingerprint", + default=DEFARGS['REQUIRE_API_KEY_FINGERPRINT'], + action="store_true", + help="Require use of an API key for programmatic access to the API, unless the client also matches a fingerprint", + ) parser.add_argument( "--shared-storage", type=str, diff --git a/libretranslate/secret.py b/libretranslate/secret.py index c8f278a..fdf818d 100644 --- a/libretranslate/secret.py +++ b/libretranslate/secret.py @@ -108,7 +108,7 @@ def get_emoji(): return random.choice(["😂", "🤪", "😜", "🤣", "😹", "🐒", "🙈", "🤡", "🥸", "😆", "🥴", "🐸", "🐤", "🐒🙊", "👀", "💩", "🤯", "😛", "🤥", "👻"]) def setup(args): - if args.api_keys and args.require_api_key_secret: + if args.require_api_key_secret: s = get_storage() if not s.exists("secret_0"): diff --git a/libretranslate/storage.py b/libretranslate/storage.py index 46bd9c5..696f097 100644 --- a/libretranslate/storage.py +++ b/libretranslate/storage.py @@ -1,4 +1,5 @@ import redis +import time storage = None def get_storage(): @@ -18,7 +19,7 @@ class Storage: def get_int(self, key): raise Exception("not implemented") - def set_str(self, key, value): + def set_str(self, key, value, ex=None): raise Exception("not implemented") def get_str(self, key): raise Exception("not implemented") @@ -56,11 +57,22 @@ class MemoryStorage(Storage): def get_int(self, key): return int(self.store.get(key, 0)) - def set_str(self, key, value): - self.store[key] = value + def set_str(self, key, value, ex=None): + self.store[key] = { + 'value': value, + 'ex': time.time() + ex + } def get_str(self, key): - return str(self.store.get(key, "")) + d = self.store.get(key, {'value': '', 'ex': None}) + if d['ex'] is None: + return d['value'] + else: + if d['ex'] <= time.time(): + del self.store[key] + return '' + else: + return d['value'] def set_hash_int(self, ns, key, value): if ns not in self.store: @@ -123,8 +135,8 @@ class RedisStorage(Storage): else: return v - def set_str(self, key, value): - self.conn.set(key, value) + def set_str(self, key, value, ex=None): + self.conn.set(key, value, ex=ex) def get_str(self, key): v = self.conn.get(key) From d8f91210093a17eb7ce0446f567a548f721f87dd Mon Sep 17 00:00:00 2001 From: Piero Toffanin Date: Fri, 18 Apr 2025 12:22:56 -0400 Subject: [PATCH 057/114] Tweak fingerprint --- libretranslate/app.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libretranslate/app.py b/libretranslate/app.py index 3dae777..b7e56a6 100644 --- a/libretranslate/app.py +++ b/libretranslate/app.py @@ -103,7 +103,7 @@ def get_remote_address(): return ip def get_fingerprint(): - return request.headers.get("User-Agent", "") + "|" + request.headers.get("Cookie", "") + return request.headers.get("User-Agent", "") + request.headers.get("Cookie", "") def get_req_limits(default_limit, api_keys_db, db_multiplier=1, multiplier=1): From e4eb96482f4bbc67e0f19cb88e23cd655bed9dc0 Mon Sep 17 00:00:00 2001 From: Piero Toffanin Date: Fri, 18 Apr 2025 12:28:12 -0400 Subject: [PATCH 058/114] Fingerprint only if key missing --- libretranslate/app.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libretranslate/app.py b/libretranslate/app.py index b7e56a6..765af32 100644 --- a/libretranslate/app.py +++ b/libretranslate/app.py @@ -359,7 +359,8 @@ def create_app(args): 'detectedLanguage': { 'confidence': 100, 'language': 'en' } }), 200)) - if args.require_api_key_fingerprint: + if (args.require_api_key_fingerprint + and key_missing): if flood.fingerprint_mismatch(ip, get_fingerprint()): need_key = True From bdb9b6a22410f8306604103448210154e6e58740 Mon Sep 17 00:00:00 2001 From: Piero Toffanin Date: Fri, 18 Apr 2025 14:41:12 -0400 Subject: [PATCH 059/114] Under attack mode --- README.md | 1 + libretranslate/app.py | 6 +++++- libretranslate/default_values.py | 5 +++++ libretranslate/main.py | 6 ++++++ libretranslate/templates/index.html | 29 +++++++++++++++++++---------- 5 files changed, 36 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index d70c1c5..f0b0e8c 100644 --- a/README.md +++ b/README.md @@ -200,6 +200,7 @@ Arguments passed to the process or set via environment variables are split into | --require-api-key-origin | Require use of an API key for programmatic access to the API, unless the request origin matches this domain | `No restrictions on domain origin` | LT_REQUIRE_API_KEY_ORIGIN | | --require-api-key-secret | Require use of an API key for programmatic access to the API, unless the client also sends a secret match | `No secrets required` | LT_REQUIRE_API_KEY_SECRET | | --require-api-key-fingerprint | Require use of an API key for programmatic access to the API, unless the client also matches a fingerprint | `No fingerprinting required` | LT_REQUIRE_API_KEY_FINGERPRINT | +| --under-attack | Enable under attack mode. When enabled, requests must be made with an API key | `Disabled` | LT_UNDER_ATTACK | | --suggestions | Allow user suggestions | `Disabled` | LT_SUGGESTIONS | | --disable-files-translation | Disable files translation | `File translation allowed` | LT_DISABLE_FILES_TRANSLATION | | --disable-web-ui | Disable web ui | `Web Ui enabled` | LT_DISABLE_WEB_UI | diff --git a/libretranslate/app.py b/libretranslate/app.py index 765af32..02bc865 100644 --- a/libretranslate/app.py +++ b/libretranslate/app.py @@ -364,6 +364,9 @@ def create_app(args): if flood.fingerprint_mismatch(ip, get_fingerprint()): need_key = True + if args.under_attack and key_missing: + need_key = True + if need_key: description = _("Please contact the server operator to get an API key") if args.get_api_key_link: @@ -441,7 +444,8 @@ def create_app(args): swagger_url=swagger_url, available_locales=sorted([{'code': l['code'], 'name': _lazy(l['name'])} for l in get_available_locales(not args.debug)], key=lambda s: s['name']), current_locale=get_locale(), - alternate_locales=get_alternate_locale_links() + alternate_locales=get_alternate_locale_links(), + under_attack=args.under_attack, )) if args.require_api_key_secret: diff --git a/libretranslate/default_values.py b/libretranslate/default_values.py index 4da8e29..3d2e3a8 100644 --- a/libretranslate/default_values.py +++ b/libretranslate/default_values.py @@ -151,6 +151,11 @@ _default_options_objects = [ 'default_value': False, 'value_type': 'bool' }, + { + 'name': 'UNDER_ATTACK', + 'default_value': False, + 'value_type': 'bool' + }, { 'name': 'REQUIRE_API_KEY_FINGERPRINT', 'default_value': False, diff --git a/libretranslate/main.py b/libretranslate/main.py index 61d7585..ea6eb3d 100644 --- a/libretranslate/main.py +++ b/libretranslate/main.py @@ -153,6 +153,12 @@ def get_args(): action="store_true", help="Require use of an API key for programmatic access to the API, unless the client also matches a fingerprint", ) + parser.add_argument( + "--under-attack", + default=DEFARGS['UNDER_ATTACK'], + action="store_true", + help="Enable under attack mode. When enabled, requests must be made with an API key", + ) parser.add_argument( "--shared-storage", type=str, diff --git a/libretranslate/templates/index.html b/libretranslate/templates/index.html index 66bf936..61f1e0d 100644 --- a/libretranslate/templates/index.html +++ b/libretranslate/templates/index.html @@ -150,18 +150,18 @@
    -
    -
    -
    - warning

    [[ error ]]

    -
    - +
    +
    +
    + warning

    [[ error ]]

    +
    + +
    -
    -
    +
    @@ -170,6 +170,15 @@
    + {% if under_attack %} +
    +
    +
    + warning {{ _h("Due to bot abuse, translation requests are temporarily limited to users with a valid API key. Sorry for the inconvenience!") }}

    +
    +
    +
    + {% endif %}

    {{ _h("Translation API") }}

    - @@ -220,7 +220,7 @@ - + @@ -232,7 +232,7 @@ - +
    + {% if not hide_api %}
    @@ -318,6 +319,7 @@
    + {% endif %} {% if web_version %}
    From 769a447f8f4348970b782c66e6458dd63b2badea Mon Sep 17 00:00:00 2001 From: DL6ER Date: Sun, 15 Jun 2025 11:30:56 +0200 Subject: [PATCH 106/114] Add user-customizable if not web_version Signed-off-by: DL6ER <dl6er@dl6er.de> --- README.md | 3 ++- libretranslate/app.py | 1 + libretranslate/default_values.py | 5 +++++ libretranslate/main.py | 7 +++++++ libretranslate/templates/index.html | 2 ++ 5 files changed, 17 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 80286ae..a4fdb45 100644 --- a/README.md +++ b/README.md @@ -220,7 +220,8 @@ Arguments passed to the process or set via environment variables are split into | --ga-id | Enable Google Analytics on the API client page by providing an ID | `Empty (no tracking)` | LT_GA_ID | | --frontend-language-source | Set frontend default language - source | `auto` | LT_FRONTEND_LANGUAGE_SOURCE | | --frontend-language-target | Set frontend default language - target | `locale` (match site's locale) | LT_FRONTEND_LANGUAGE_TARGET | -| --frontend-language | Set frontend web interface language | `(empty)` (auto-detect) | LT_FRONTEND_LANGUAGE | +| --frontend-language | Set frontend web interface language | `(empty)` (auto-detect) | LT_FRONTEND_LANGUAGE | +| --frontend-title | Set frontend web interface title | `LibreTranslate` | LT_FRONTEND_TITLE | | --frontend-timeout | Set frontend translation timeout | `500` | LT_FRONTEND_TIMEOUT | | --api-keys-db-path | Use a specific path inside the container for the local database. Can be absolute or relative | `db/api_keys.db` | LT_API_KEYS_DB_PATH | | --api-keys-remote | Use this remote endpoint to query for valid API keys instead of using the local database | `Empty (use local db instead)` | LT_API_KEYS_REMOTE | diff --git a/libretranslate/app.py b/libretranslate/app.py index 7d0a427..bc89f32 100644 --- a/libretranslate/app.py +++ b/libretranslate/app.py @@ -447,6 +447,7 @@ def create_app(args): alternate_locales=get_alternate_locale_links(), under_attack=args.under_attack, hide_api=args.hide_api, + frontend_title=args.frontend_title, )) if args.require_api_key_secret: diff --git a/libretranslate/default_values.py b/libretranslate/default_values.py index 56c1600..d0478ed 100644 --- a/libretranslate/default_values.py +++ b/libretranslate/default_values.py @@ -126,6 +126,11 @@ _default_options_objects = [ 'default_value': 500, 'value_type': 'int' }, + { + 'name': 'FRONTEND_TITLE', + 'default_value': 'LibreTranslate', + 'value_type': 'str' + }, { 'name': 'API_KEYS', 'default_value': False, diff --git a/libretranslate/main.py b/libretranslate/main.py index 2daebba..4a279c7 100644 --- a/libretranslate/main.py +++ b/libretranslate/main.py @@ -111,6 +111,13 @@ def get_args(): metavar="<language code>", help="Set frontend interface language (%(default)s)", ) + parser.add_argument( + "--frontend-title", + type=str, + default=DEFARGS['FRONTEND_TITLE'], + metavar="<title>", + help="Set frontend title (%(default)s)", + ) parser.add_argument( "--frontend-timeout", type=int, diff --git a/libretranslate/templates/index.html b/libretranslate/templates/index.html index 9b62414..92527ae 100644 --- a/libretranslate/templates/index.html +++ b/libretranslate/templates/index.html @@ -9,6 +9,8 @@ <title>LibreTranslate - {{ _h("Free and Open Source Machine Translation API") }} 🌐 + {% else %} + {{ frontend_title }} {% endif %} From 44326591df3286e30af7948bcd94f1986d2f4d31 Mon Sep 17 00:00:00 2001 From: DL6ER Date: Sun, 15 Jun 2025 11:58:18 +0200 Subject: [PATCH 107/114] Show custom frontend title also above textareas when defined and != LibreTranslate (the default value) Signed-off-by: DL6ER --- libretranslate/app.py | 2 ++ libretranslate/default_values.py | 3 ++- libretranslate/templates/index.html | 8 +++++++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/libretranslate/app.py b/libretranslate/app.py index bc89f32..1c2e578 100644 --- a/libretranslate/app.py +++ b/libretranslate/app.py @@ -33,6 +33,7 @@ from libretranslate.locales import ( gettext_html, lazy_swag, ) +from libretranslate.default_values import DEFAULT_FRONTEND_TITLE from .api_keys import Database, RemoteDatabase from .suggestions import Database as SuggestionsDatabase @@ -448,6 +449,7 @@ def create_app(args): under_attack=args.under_attack, hide_api=args.hide_api, frontend_title=args.frontend_title, + use_custom_title=args.frontend_title != DEFAULT_FRONTEND_TITLE, )) if args.require_api_key_secret: diff --git a/libretranslate/default_values.py b/libretranslate/default_values.py index d0478ed..ff29064 100644 --- a/libretranslate/default_values.py +++ b/libretranslate/default_values.py @@ -2,6 +2,7 @@ import os _prefix = 'LT_' +DEFAULT_FRONTEND_TITLE = 'LibreTranslate' def _get_value_str(name, default_value): env_value = os.environ.get(name) @@ -128,7 +129,7 @@ _default_options_objects = [ }, { 'name': 'FRONTEND_TITLE', - 'default_value': 'LibreTranslate', + 'default_value': DEFAULT_FRONTEND_TITLE, 'value_type': 'str' }, { diff --git a/libretranslate/templates/index.html b/libretranslate/templates/index.html index 92527ae..39a9be1 100644 --- a/libretranslate/templates/index.html +++ b/libretranslate/templates/index.html @@ -181,7 +181,13 @@
    {% endif %} -

    {{ _h("Translation API") }}

    +

    + {% if use_custom_title %} + {{ frontend_title }} + {% else %} + {{ _h("Translation API") }} + {% endif %} +

    {% endif %}

    - {% if use_custom_title %} + {% if frontend_title %} {{ frontend_title }} {% else %} {{ _h("Translation API") }} From 88ad58271d1205e2c99496227bfe789b850c3371 Mon Sep 17 00:00:00 2001 From: DL6ER Date: Sun, 15 Jun 2025 12:31:55 +0200 Subject: [PATCH 110/114] Re-group icons Signed-off-by: DL6ER --- libretranslate/templates/index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libretranslate/templates/index.html b/libretranslate/templates/index.html index 0739f5f..d5facb1 100644 --- a/libretranslate/templates/index.html +++ b/libretranslate/templates/index.html @@ -66,14 +66,14 @@ {% set menulinks %} {% if not hide_api %}
  • {{ _h("API Docs") }}
  • + {% endif %} {% if get_api_key_link %}
  • {{ _h("Get API Key") }}
  • {% endif %} +
  • {{ _h("GitHub") }}
  • {% if api_keys %}
  • vpn_key
  • {% endif %} - {% endif %} -
  • {{ _h("GitHub") }}
  • language
  • From 127ca3602b877502f13b98a5f14672322f2a166d Mon Sep 17 00:00:00 2001 From: GunChleoc Date: Sun, 15 Jun 2025 11:11:49 +0200 Subject: [PATCH 111/114] Translated using Weblate (Gaelic) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/gd/ --- libretranslate/locales/gd/LC_MESSAGES/messages.po | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/libretranslate/locales/gd/LC_MESSAGES/messages.po b/libretranslate/locales/gd/LC_MESSAGES/messages.po index 04ddfa1..f294286 100644 --- a/libretranslate/locales/gd/LC_MESSAGES/messages.po +++ b/libretranslate/locales/gd/LC_MESSAGES/messages.po @@ -9,16 +9,17 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.6.2\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2025-04-18 14:43-0400\n" -"PO-Revision-Date: 2024-10-23 17:15+0000\n" +"PO-Revision-Date: 2025-06-16 10:01+0000\n" "Last-Translator: GunChleoc \n" +"Language-Team: Gaelic \n" "Language: gd\n" -"Language-Team: Gaelic " -"\n" -"Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? " -"1 : (n > 2 && n < 20) ? 2 : 3;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : " +"(n > 2 && n < 20) ? 2 : 3;\n" +"X-Generator: Weblate 5.12-dev\n" "Generated-By: Babel 2.12.1\n" #: libretranslate/app.py:93 @@ -167,7 +168,7 @@ msgstr "Sìnis (thradaiseanta)" #: libretranslate/locales/.langs.py:10 msgid "Czech" -msgstr "Seacais" +msgstr "Seicis" #: libretranslate/locales/.langs.py:11 msgid "Danish" @@ -755,4 +756,3 @@ msgstr "Co-thabhartaichean %(libretranslate)s" #~ msgid "Galician" #~ msgstr "Gailìsis" - From 9435aa00509ff451ef21f9e9da56470564008d19 Mon Sep 17 00:00:00 2001 From: Akin Uslu Date: Tue, 17 Jun 2025 17:26:42 +0200 Subject: [PATCH 112/114] Translated using Weblate (Turkish) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/tr/ --- .../locales/tr/LC_MESSAGES/messages.po | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/libretranslate/locales/tr/LC_MESSAGES/messages.po b/libretranslate/locales/tr/LC_MESSAGES/messages.po index 665b5a1..bf830f3 100644 --- a/libretranslate/locales/tr/LC_MESSAGES/messages.po +++ b/libretranslate/locales/tr/LC_MESSAGES/messages.po @@ -9,19 +9,21 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.3.9\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2025-04-18 14:43-0400\n" -"PO-Revision-Date: 2025-02-21 14:18+0000\n" -"Last-Translator: Piero Toffanin \n" -"Language-Team: Turkish \n" +"PO-Revision-Date: 2025-06-18 16:01+0000\n" +"Last-Translator: Akin Uslu \n" +"Language-Team: Turkish \n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 5.12.1\n" "Generated-By: Babel 2.12.1\n" #: libretranslate/app.py:93 msgid "Invalid JSON format" -msgstr "Geçersiz JSON biçimi" +msgstr "Geçersiz JSON formatı" #: libretranslate/app.py:209 libretranslate/templates/app.js.template:473 msgid "Auto Detect" @@ -33,7 +35,7 @@ msgstr "Yetkisiz" #: libretranslate/app.py:329 msgid "Too many request limits violations" -msgstr "Çok fazla istekte bulunarak, istek sınırı aşıldı" +msgstr "Çok fazla istek sınırı ihlali" #: libretranslate/app.py:336 msgid "Invalid API key" @@ -41,8 +43,7 @@ msgstr "Geçersiz API anahtarı" #: libretranslate/app.py:371 msgid "Please contact the server operator to get an API key" -msgstr "" -"Bir API anahtarı almak için lütfen sunucu yöneticisiyle iletişime geçin" +msgstr "API anahtarı almak için lütfen sunucu yöneticisiyle iletişime geçin" #: libretranslate/app.py:373 #, python-format @@ -61,7 +62,7 @@ msgstr "Yavaşlama:" #: libretranslate/app.py:1214 #, python-format msgid "Invalid request: missing %(name)s parameter" -msgstr "Geçersiz istek: eksik %(name)s parametresi" +msgstr "Geçersiz istek: %(name)s parametresi eksik" #: libretranslate/app.py:666 #, python-format @@ -71,14 +72,12 @@ msgstr "Geçersiz istek: %(name)s parametresi bir sayı değil" #: libretranslate/app.py:669 #, python-format msgid "Invalid request: %(name)s parameter must be <= %(value)s" -msgstr "" -"Geçersiz istek: %(name)s parametresi %(value)s değerinden küçük veya eşit " -"olmalı" +msgstr "Geçersiz istek: %(name)s parametresi <= %(value)s olmali" #: libretranslate/app.py:686 libretranslate/app.py:696 #, python-format msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)" -msgstr "Geçersiz istek: istek (%(size)s) metin sınırını aşıyor (%(limit)s)" +msgstr "Geçersiz istek: istek (%(size)s) metin sınırını (%(limit)s) aşıyor" #: libretranslate/app.py:715 libretranslate/app.py:720 #: libretranslate/app.py:897 libretranslate/app.py:902 From aa21f779f072a29cb7a5faec13c7b824000e568a Mon Sep 17 00:00:00 2001 From: Yen Le Diep Hoang Date: Fri, 27 Jun 2025 14:13:21 +0200 Subject: [PATCH 113/114] Translated using Weblate (Vietnamese) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/vi/ --- .../locales/vi/LC_MESSAGES/messages.po | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/libretranslate/locales/vi/LC_MESSAGES/messages.po b/libretranslate/locales/vi/LC_MESSAGES/messages.po index b4e55d4..f93fe1c 100644 --- a/libretranslate/locales/vi/LC_MESSAGES/messages.po +++ b/libretranslate/locales/vi/LC_MESSAGES/messages.po @@ -9,15 +9,16 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.3.9\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2025-04-18 14:43-0400\n" -"PO-Revision-Date: 2024-06-14 16:33+0000\n" -"Last-Translator: Dương Nguyễn Võ Quốc \n" +"PO-Revision-Date: 2025-06-28 13:05+0000\n" +"Last-Translator: Yen Le Diep Hoang \n" +"Language-Team: Vietnamese \n" "Language: vi\n" -"Language-Team: Vietnamese " -"\n" -"Plural-Forms: nplurals=1; plural=0;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 5.13-dev\n" "Generated-By: Babel 2.12.1\n" #: libretranslate/app.py:93 @@ -30,7 +31,7 @@ msgstr "Tự động phát hiện" #: libretranslate/app.py:311 msgid "Unauthorized" -msgstr "Truy cập không hợp lệ." +msgstr "Truy cập không được cấp quyền" #: libretranslate/app.py:329 msgid "Too many request limits violations" @@ -66,12 +67,12 @@ msgstr "Yêu cầu không hợp lệ: thiếu tham số %(name)s" #: libretranslate/app.py:666 #, python-format msgid "Invalid request: %(name)s parameter is not a number" -msgstr "" +msgstr "Yêu cầu không hợp lệ: tham số %(name)s không phải là một số" #: libretranslate/app.py:669 #, python-format msgid "Invalid request: %(name)s parameter must be <= %(value)s" -msgstr "" +msgstr "Yêu cầu không hợp lệ: tham số %(name)s phải <= %(value)s" #: libretranslate/app.py:686 libretranslate/app.py:696 #, python-format @@ -132,7 +133,7 @@ msgstr "Tiếng Anh" #: libretranslate/locales/.langs.py:2 msgid "Albanian" -msgstr "" +msgstr "Người Albania" #: libretranslate/locales/.langs.py:3 msgid "Arabic" @@ -180,7 +181,7 @@ msgstr "Esperanto (Quốc tế ngữ)" #: libretranslate/locales/.langs.py:14 msgid "Estonian" -msgstr "" +msgstr "Người Estonia" #: libretranslate/locales/.langs.py:15 msgid "Finnish" @@ -769,4 +770,3 @@ msgstr "Các cộng tác viên %(libretranslate)s" #~ msgid "Galician" #~ msgstr "" - From 7a3d3e95112075896085a2e084d59c50fc28b86d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E0=AE=A4=E0=AE=AE=E0=AE=BF=E0=AE=B4=E0=AF=8D=E0=AE=A8?= =?UTF-8?q?=E0=AF=87=E0=AE=B0=E0=AE=AE=E0=AF=8D?= Date: Fri, 27 Jun 2025 14:13:27 +0200 Subject: [PATCH 114/114] Translated using Weblate (Tamil) Translation: LibreTranslate/App Translate-URL: https://hosted.weblate.org/projects/libretranslate/app/ta/ --- .../locales/ta/LC_MESSAGES/messages.po | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/libretranslate/locales/ta/LC_MESSAGES/messages.po b/libretranslate/locales/ta/LC_MESSAGES/messages.po index 68e5a10..8e9e9e5 100644 --- a/libretranslate/locales/ta/LC_MESSAGES/messages.po +++ b/libretranslate/locales/ta/LC_MESSAGES/messages.po @@ -9,15 +9,16 @@ msgstr "" "Project-Id-Version: LibreTranslate 1.6.2\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2025-04-18 14:43-0400\n" -"PO-Revision-Date: 2025-01-12 20:04+0000\n" +"PO-Revision-Date: 2025-06-28 13:05+0000\n" "Last-Translator: தமிழ்நேரம் \n" +"Language-Team: Tamil \n" "Language: ta\n" -"Language-Team: Tamil " -"\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.13-dev\n" "Generated-By: Babel 2.12.1\n" #: libretranslate/app.py:93 @@ -76,7 +77,7 @@ msgstr "தவறான கோரிக்கை: %(name)s அளவுரு <= #: libretranslate/app.py:686 libretranslate/app.py:696 #, python-format msgid "Invalid request: request (%(size)s) exceeds text limit (%(limit)s)" -msgstr "தவறான கோரிக்கை: கோரிக்கை (%(அளவு) வரி வரம்பை மீறுகிறது (%(வரம்புகள்)" +msgstr "தவறான கோரிக்கை: கோரிக்கை (%(size)s வரி வரம்பை மீறுகிறது (%(limit)s)" #: libretranslate/app.py:715 libretranslate/app.py:720 #: libretranslate/app.py:897 libretranslate/app.py:902 @@ -88,7 +89,7 @@ msgstr "%(lang)s ஆதரிக்கப்படவில்லை" #: libretranslate/app.py:726 #, python-format msgid "%(format)s format is not supported" -msgstr "%(வடிவம்) வடிவமைப்பு ஆதரிக்கப்படவில்லை" +msgstr "%(format)s வடிவமைப்பு ஆதரிக்கப்படவில்லை" #: libretranslate/app.py:735 libretranslate/app.py:763 #, python-format @@ -96,8 +97,7 @@ msgid "" "%(tname)s (%(tcode)s) is not available as a target language from " "%(sname)s (%(scode)s)" msgstr "" -"%(எச் பெயர்) எச் (%(டி குறியீடுகள்)%(tname)s (%(tcode)s) இலிருந்து இலக்கு" -" மொழியாக கிடைக்கவில்லை" +"%(sname)s%(scode)s இலிருந்து %(tname)s%(tcode)s இலக்கு மொழியாகக் கிடைக்கவில்லை" #: libretranslate/app.py:787 #, python-format @@ -258,7 +258,7 @@ msgstr "போர்த்துகீசியம்" #: libretranslate/locales/.langs.py:34 msgid "Portuguese (Brazil)" -msgstr "" +msgstr "போர்த்துகீசியம் (பிரேசில்)" #: libretranslate/locales/.langs.py:35 msgid "Romanian" @@ -298,7 +298,7 @@ msgstr "துருக்கிய" #: libretranslate/locales/.langs.py:44 msgid "Ukranian" -msgstr "" +msgstr "உக்ரேனிய" #: libretranslate/locales/.langs.py:45 msgid "Urdu" @@ -310,7 +310,7 @@ msgstr "செர்பிய" #: libretranslate/locales/.langs.py:47 msgid "Ukrainian" -msgstr "உக்ரேனிய" +msgstr "உக்ரேனியன்" #: libretranslate/locales/.langs.py:48 msgid "Vietnamese" @@ -643,6 +643,8 @@ msgid "" "Due to bot abuse, translation requests are temporarily limited to users " "with a valid API key. Sorry for the inconvenience!" msgstr "" +"போட் துஷ்பிரயோகம் காரணமாக, மொழிபெயர்ப்புக் கோரிக்கைகள் தற்காலிகமாகச் செல்லுபடியாகும் ஏபி" +"ஐ விசையுடன் பயனர்களுக்கு மட்டுமே. சிரமத்திற்கு மன்னிக்கவும்!" #: libretranslate/templates/index.html:182 msgid "Translation API" @@ -743,11 +745,10 @@ msgstr "" #: libretranslate/templates/index.html:354 #, python-format msgid "%(libretranslate)s Contributors" -msgstr "%(லிப்ரெட்ரான்ச்லேட்) பங்களிப்பாளர்கள்" +msgstr "%(libretranslate)s பங்களிப்பாளர்கள்" #~ msgid "Basque" #~ msgstr "பாச்க்" #~ msgid "Galician" #~ msgstr "காலிசியன்" -