-
+
diff --git a/src/components/settings/general/ModelSettingsCard.tsx b/src/components/settings/general/ModelSettingsCard.tsx
index e1ac58c..73ae841 100644
--- a/src/components/settings/general/ModelSettingsCard.tsx
+++ b/src/components/settings/general/ModelSettingsCard.tsx
@@ -12,8 +12,7 @@ export const ModelSettingsCard: React.FC = () => {
const currentModelInfo = models.find((m: ModelInfo) => m.id === currentModel);
- const supportsLanguageSelection =
- currentModelInfo?.engine_type === "Kokoro";
+ const supportsLanguageSelection = currentModelInfo?.engine_type === "Kokoro";
// Don't render anything if no model is selected or no settings available
if (!currentModel || !currentModelInfo || !supportsLanguageSelection) {
diff --git a/src/i18n/locales/ar/translation.json b/src/i18n/locales/ar/translation.json
index cff5558..d5f1df3 100644
--- a/src/i18n/locales/ar/translation.json
+++ b/src/i18n/locales/ar/translation.json
@@ -8,11 +8,11 @@
},
"sidebar": {
"general": "عام",
+ "models": "النماذج",
"advanced": "متقدم",
"history": "السجل",
"debug": "تصحيح الأخطاء",
- "about": "حول",
- "models": "النماذج"
+ "about": "حول"
},
"onboarding": {
"subtitle": "للبدء، اختر نموذج التفريغ الصوتي",
@@ -25,56 +25,7 @@
"accuracy": "الدقة",
"speed": "السرعة"
},
- "models": {
- "small": {
- "name": "Whisper Small",
- "description": ".سريع ودقيق إلى حد ما"
- },
- "medium": {
- "name": "Whisper Medium",
- "description": ".دقة جيدة، سرعة متوسطة"
- },
- "turbo": {
- "name": "Whisper Turbo",
- "description": ".توازن بين الدقة والسرعة"
- },
- "large": {
- "name": "Whisper Large",
- "description": ".دقة جيدة، لكنه بطيء"
- },
- "parakeet-tdt-0.6b-v2": {
- "name": "Parakeet V2",
- "description": ".الإنجليزية فقط. أفضل نموذج للمتحدثين بالإنجليزية"
- },
- "parakeet-tdt-0.6b-v3": {
- "name": "Parakeet V3",
- "description": ".سريع ودقيق"
- },
- "moonshine-base": {
- "name": "Moonshine Base",
- "description": ".سريع جداً، الإنجليزية فقط. يتعامل جيداً مع اللهجات"
- },
- "moonshine-tiny-streaming-en": {
- "name": "Moonshine V2 Tiny",
- "description": "سريع للغاية، الإنجليزية فقط"
- },
- "moonshine-small-streaming-en": {
- "name": "Moonshine V2 Small",
- "description": "سريع، الإنجليزية فقط. توازن جيد بين السرعة والدقة."
- },
- "moonshine-medium-streaming-en": {
- "name": "Moonshine V2 Medium",
- "description": "الإنجليزية فقط. جودة عالية."
- },
- "breeze-asr": {
- "name": "Breeze ASR",
- "description": "محسّن للماندرين التايوانية. دعم التبديل بين اللغات."
- },
- "sense-voice-int8": {
- "name": "SenseVoice",
- "description": "سريع جداً. الصينية، الإنجليزية، اليابانية، الكورية، الكانتونية."
- }
- },
+ "models": {},
"errors": {
"loadModels": "فشل تحميل النماذج المتاحة",
"downloadModel": "فشل تنزيل النموذج: {{error}}"
@@ -82,10 +33,6 @@
"permissions": {
"title": "الأذونات المطلوبة",
"description": ".يحتاج Parrot إلى بعض الأذونات ليعمل بشكل صحيح",
- "microphone": {
- "title": "الوصول إلى الميكروفون",
- "description": ".مطلوب لسماع صوتك من أجل التفريغ الصوتي"
- },
"accessibility": {
"title": "إمكانية الوصول",
"description": ".مطلوب لكتابة النص المفرغ في تطبيقاتك"
@@ -103,6 +50,7 @@
"modelSelector": {
"custom": "مخصص",
"active": "نشط",
+ "switching": "جارٍ التبديل...",
"noModelsAvailable": "لا توجد نماذج متاحة",
"extracting": "...جاري استخراج {{modelName}}",
"extractingMultiple": "...جاري استخراج {{count}} من النماذج",
@@ -116,7 +64,6 @@
"modelUnloaded": "تم إلغاء تحميل النموذج",
"noModelDownloadRequired": "لا يوجد نموذج - التنزيل مطلوب",
"deleteModel": "حذف {{modelName}}",
- "switching": "جارٍ التبديل...",
"downloadSpeed": "{{speed}} ميجابايت/ث",
"cancel": "إلغاء",
"cancelDownload": "إلغاء التنزيل",
@@ -124,15 +71,26 @@
"languageSelection": "يدعم اختيار اللغة",
"singleLanguage": "يدعم هذه اللغة فقط",
"multiLanguage": "متعدد اللغات",
- "languageOnly": "{{language}} فقط",
- "translation": "يدعم الترجمة",
- "translate": "ترجمة"
+ "languageOnly": "{{language}} فقط"
}
},
"settings": {
"howToUseTitle": "كيفية الاستخدام",
"howToUseStep1": "حدد أي نص",
"howToUseStep2": "اضغط
للقراءة بصوت عالٍ",
+ "modelSettings": {
+ "title": "إعدادات النموذج",
+ "noSettingsNeeded": "لا توجد إعدادات مطلوبة لهذا النموذج",
+ "kokoroVoice": {
+ "title": "Voice",
+ "description": "Select which Kokoro voice to use. Auto follows the language setting.",
+ "auto": "Auto (By Language)",
+ "searchPlaceholder": "Search voices...",
+ "loading": "Loading voices...",
+ "noResults": "No voices found",
+ "loadError": "Could not load available voices."
+ }
+ },
"general": {
"title": "عام",
"shortcut": {
@@ -167,14 +125,26 @@
"auto": "تلقائي"
}
},
+ "models": {
+ "title": "نماذج النسخ",
+ "description": "اختر نموذج نسخ أو قم بتنزيل نماذج إضافية. تقدم النماذج المختلفة مستويات متفاوتة من الدقة والسرعة.",
+ "yourModels": "النماذج المحمّلة",
+ "availableModels": "متاح للتنزيل",
+ "downloaded": "تم التنزيل",
+ "available": "متاح للتنزيل",
+ "deleteConfirm": "هل أنت متأكد أنك تريد حذف {{modelName}}؟ ستحتاج إلى تنزيله مرة أخرى لاستخدامه.",
+ "deleteActiveConfirm": "{{modelName}} هو النموذج النشط حاليًا. حذفه سيوقف النسخ حتى تختار نموذجًا جديدًا. هل أنت متأكد؟",
+ "deleteTitle": "حذف النموذج",
+ "filters": {
+ "all": "الكل",
+ "multiLanguage": "متعدد اللغات",
+ "translation": "ترجمة",
+ "allLanguages": "جميع اللغات"
+ },
+ "noModelsMatch": "لا توجد نماذج مطابقة لهذا الفلتر."
+ },
"sound": {
"title": "الصوت",
- "microphone": {
- "title": "الميكروفون",
- "description": "اختر جهاز الميكروفون المفضل لديك",
- "placeholder": "...اختر الميكروفون",
- "loading": "...جاري التحميل"
- },
"audioFeedback": {
"label": "تنبيهات صوتية",
"description": "تشغيل صوت عند بدء التسجيل وتوقفه"
@@ -194,9 +164,23 @@
"title": "متقدم",
"groups": {
"app": "التطبيق",
+ "speech": "Speech",
"history": "السجل",
"experimental": "تجريبي"
},
+ "ttsWorkers": {
+ "title": "TTS Workers",
+ "description": "Number of parallel synthesis engines. Auto uses your CPU core count to decide.",
+ "auto": "Auto"
+ },
+ "ttsSpeed": {
+ "title": "Speech Speed",
+ "description": "Playback speed for text-to-speech output."
+ },
+ "shortenFirstChunk": {
+ "title": "Fast First Response",
+ "description": "Synthesize a shorter first chunk for faster time-to-speech, then use longer chunks."
+ },
"experimentalToggle": {
"label": "الميزات التجريبية",
"description": ".تمكين الميزات التجريبية التي لا تزال قيد التطوير"
@@ -222,11 +206,6 @@
"top": "أعلى"
}
},
- "translateToEnglish": {
- "label": "الترجمة إلى الإنجليزية",
- "description": ".ترجمة الكلام من اللغات الأخرى تلقائياً إلى الإنجليزية أثناء التفريغ",
- "descriptionUnsupported": ".الترجمة غير مدعومة من قبل نموذج {{model}}"
- },
"modelUnload": {
"title": "إلغاء تحميل النموذج",
"description": "تحرير ذاكرة GPU/CPU تلقائياً عندما لا يتم استخدام النموذج للوقت المحدد",
@@ -286,22 +265,6 @@
"months3": "بعد 3 أشهر",
"placeholder": "اختر فترة الاحتفاظ..."
},
- "alwaysOnMicrophone": {
- "label": "ميكروفون يعمل دائماً",
- "description": "إبقاء الميكروفون نشطاً لاستجابة أسرع"
- },
- "clamshellMicrophone": {
- "title": "ميكروفون وضع الإغلاق",
- "description": "الميكروفون المراد استخدامه عندما يكون غطاء المحمول مغلقاً"
- },
- "muteWhileRecording": {
- "label": "كتم الصوت أثناء التسجيل",
- "description": "كتم صوت النظام أثناء التسجيل"
- },
- "appendTrailingSpace": {
- "label": "إضافة مسافة تابعة",
- "description": "إضافة مسافة بعد التفريغ الملصق"
- },
"keyboardImplementation": {
"title": "تنفيذ لوحة المفاتيح",
"description": ".اختر الواجهة الخلفية لاختصارات لوحة المفاتيح",
@@ -335,34 +298,12 @@
},
"acknowledgments": {
"title": "شكر وتقدير",
- "whisper": {
- "title": "Whisper.cpp",
- "description": "استنتاج عالي الأداء لنموذج التعرف التلقائي على الكلام Whisper من OpenAI",
- "details": ".يستخدم Parrot برنامج Whisper.cpp لمعالجة سريعة ومحلية لتحويل الكلام إلى نص. شكراً للعمل الرائع الذي قام به Georgi Gerganov والمساهمون"
+ "handy": {
+ "title": "Handy",
+ "description": "The original project that Parrot was forked from",
+ "details": "Parrot is a fork of Handy by CJ Pais. Thanks for building the foundation that made Parrot possible."
}
}
- },
- "modelSettings": {
- "title": "إعدادات النموذج",
- "noSettingsNeeded": "لا توجد إعدادات مطلوبة لهذا النموذج"
- },
- "models": {
- "title": "نماذج النسخ",
- "description": "اختر نموذج نسخ أو قم بتنزيل نماذج إضافية. تقدم النماذج المختلفة مستويات متفاوتة من الدقة والسرعة.",
- "yourModels": "النماذج المحمّلة",
- "availableModels": "متاح للتنزيل",
- "downloaded": "تم التنزيل",
- "available": "متاح للتنزيل",
- "deleteConfirm": "هل أنت متأكد أنك تريد حذف {{modelName}}؟ ستحتاج إلى تنزيله مرة أخرى لاستخدامه.",
- "deleteActiveConfirm": "{{modelName}} هو النموذج النشط حاليًا. حذفه سيوقف النسخ حتى تختار نموذجًا جديدًا. هل أنت متأكد؟",
- "deleteTitle": "حذف النموذج",
- "filters": {
- "all": "الكل",
- "multiLanguage": "متعدد اللغات",
- "translation": "ترجمة",
- "allLanguages": "جميع اللغات"
- },
- "noModelsMatch": "لا توجد نماذج مطابقة لهذا الفلتر."
}
},
"footer": {
@@ -415,7 +356,8 @@
"description": "تغيير لغة واجهة Parrot"
},
"overlay": {
- "transcribing": "...جاري التفريغ",
- "processing": "...جاري المعالجة"
+ "speaking": "Speaking...",
+ "processing": "...جاري المعالجة",
+ "reading": "Reading:"
}
}
diff --git a/src/i18n/locales/cs/translation.json b/src/i18n/locales/cs/translation.json
index 603f07e..c2d9961 100644
--- a/src/i18n/locales/cs/translation.json
+++ b/src/i18n/locales/cs/translation.json
@@ -25,56 +25,7 @@
"accuracy": "přesnost",
"speed": "rychlost"
},
- "models": {
- "small": {
- "name": "Whisper Small",
- "description": "Rychlý a poměrně přesný."
- },
- "medium": {
- "name": "Whisper Medium",
- "description": "Dobrá přesnost, střední rychlost"
- },
- "turbo": {
- "name": "Whisper Turbo",
- "description": "Vyvážená přesnost a rychlost."
- },
- "large": {
- "name": "Whisper Large",
- "description": "Dobrá přesnost, ale pomalý."
- },
- "parakeet-tdt-0.6b-v2": {
- "name": "Parakeet V2",
- "description": "Pouze angličtina. Nejlepší model pro anglicky mluvící."
- },
- "parakeet-tdt-0.6b-v3": {
- "name": "Parakeet V3",
- "description": "Rychlý a přesný"
- },
- "moonshine-base": {
- "name": "Moonshine Base",
- "description": "Velmi rychlý, pouze angličtina. Dobře zvládá přízvuky."
- },
- "moonshine-tiny-streaming-en": {
- "name": "Moonshine V2 Tiny",
- "description": "Ultrarychlý, pouze angličtina"
- },
- "moonshine-small-streaming-en": {
- "name": "Moonshine V2 Small",
- "description": "Rychlý, pouze angličtina. Dobrý poměr rychlosti a přesnosti."
- },
- "moonshine-medium-streaming-en": {
- "name": "Moonshine V2 Medium",
- "description": "Pouze angličtina. Vysoká kvalita."
- },
- "breeze-asr": {
- "name": "Breeze ASR",
- "description": "Optimalizováno pro tchajwanskou mandarínštinu. Podpora přepínání jazyků."
- },
- "sense-voice-int8": {
- "name": "SenseVoice",
- "description": "Velmi rychlý. Čínština, angličtina, japonština, korejština, kantonština."
- }
- },
+ "models": {},
"errors": {
"loadModels": "Nepodařilo se načíst dostupné modely",
"downloadModel": "Nepodařilo se stáhnout model: {{error}}"
@@ -82,10 +33,6 @@
"permissions": {
"title": "Vyžadována oprávnění",
"description": "Parrot potřebuje několik oprávnění pro správné fungování.",
- "microphone": {
- "title": "Přístup k mikrofonu",
- "description": "Potřebný pro zachycení vašeho hlasu k přepisu."
- },
"accessibility": {
"title": "Přístup k usnadnění",
"description": "Potřebný pro psaní přepsaného textu do vašich aplikací."
@@ -103,6 +50,7 @@
"modelSelector": {
"custom": "Vlastní",
"active": "Aktivní",
+ "switching": "Přepínání...",
"noModelsAvailable": "Nejsou dostupné žádné modely",
"extracting": "Rozbaluji {{modelName}}...",
"extractingMultiple": "Rozbaluji {{count}} modelů...",
@@ -116,18 +64,15 @@
"modelUnloaded": "Model uvolněn",
"noModelDownloadRequired": "Žádný model - je nutné stáhnout",
"deleteModel": "Smazat {{modelName}}",
- "switching": "Přepínání...",
"downloadSpeed": "{{speed}} MB/s",
+ "cancel": "Zrušit",
+ "cancelDownload": "Zrušit stahování",
"capabilities": {
"languageSelection": "Podporuje více vstupních jazyků",
- "multiLanguage": "Vícejazyčný",
- "translation": "Umí překládat do angličtiny",
- "translate": "Přeložit do angličtiny",
"singleLanguage": "Podporuje pouze tento jazyk",
+ "multiLanguage": "Vícejazyčný",
"languageOnly": "Pouze {{language}}"
- },
- "cancel": "Zrušit",
- "cancelDownload": "Zrušit stahování"
+ }
},
"settings": {
"howToUseTitle": "Jak používat",
@@ -135,25 +80,16 @@
"howToUseStep2": "Stiskněte
pro přečtení nahlas",
"modelSettings": {
"title": "Nastavení {{model}}",
- "noSettingsNeeded": "Tento model funguje automaticky bez nutnosti konfigurace."
- },
- "models": {
- "title": "Modely přepisu",
- "description": "Vyberte model přepisu nebo stáhněte další modely. Různé modely nabízejí různé úrovně přesnosti a rychlosti.",
- "downloaded": "Staženo",
- "available": "K dispozici ke stažení",
- "deleteConfirm": "Opravdu chcete smazat {{modelName}}? Pro opětovné použití jej budete muset znovu stáhnout.",
- "deleteActiveConfirm": "{{modelName}} je váš aktivní model. Jeho smazáním se zastaví přepisy, dokud nevyberete nový model. Opravdu chcete pokračovat?",
- "deleteTitle": "Smazat model",
- "filters": {
- "all": "Vše",
- "multiLanguage": "Vícejazyčný",
- "translation": "Překlad",
- "allLanguages": "Všechny jazyky"
- },
- "noModelsMatch": "Tomuto filtru neodpovídají žádné modely.",
- "yourModels": "Stažené modely",
- "availableModels": "Dostupné ke stažení"
+ "noSettingsNeeded": "Tento model funguje automaticky bez nutnosti konfigurace.",
+ "kokoroVoice": {
+ "title": "Voice",
+ "description": "Select which Kokoro voice to use. Auto follows the language setting.",
+ "auto": "Auto (By Language)",
+ "searchPlaceholder": "Search voices...",
+ "loading": "Loading voices...",
+ "noResults": "No voices found",
+ "loadError": "Could not load available voices."
+ }
},
"general": {
"title": "Obecné",
@@ -189,14 +125,26 @@
"auto": "Auto"
}
},
+ "models": {
+ "title": "Modely přepisu",
+ "description": "Vyberte model přepisu nebo stáhněte další modely. Různé modely nabízejí různé úrovně přesnosti a rychlosti.",
+ "yourModels": "Stažené modely",
+ "availableModels": "Dostupné ke stažení",
+ "downloaded": "Staženo",
+ "available": "K dispozici ke stažení",
+ "deleteConfirm": "Opravdu chcete smazat {{modelName}}? Pro opětovné použití jej budete muset znovu stáhnout.",
+ "deleteActiveConfirm": "{{modelName}} je váš aktivní model. Jeho smazáním se zastaví přepisy, dokud nevyberete nový model. Opravdu chcete pokračovat?",
+ "deleteTitle": "Smazat model",
+ "filters": {
+ "all": "Vše",
+ "multiLanguage": "Vícejazyčný",
+ "translation": "Překlad",
+ "allLanguages": "Všechny jazyky"
+ },
+ "noModelsMatch": "Tomuto filtru neodpovídají žádné modely."
+ },
"sound": {
"title": "Zvuk",
- "microphone": {
- "title": "Mikrofon",
- "description": "Vyberte preferované zařízení mikrofonu",
- "placeholder": "Vyberte mikrofon...",
- "loading": "Načítání..."
- },
"audioFeedback": {
"label": "Zvuková odezva",
"description": "Přehrát zvuk při zahájení a ukončení nahrávání"
@@ -216,9 +164,23 @@
"title": "Pokročilé",
"groups": {
"app": "Aplikace",
+ "speech": "Speech",
"history": "Historie",
"experimental": "Experimentální"
},
+ "ttsWorkers": {
+ "title": "TTS Workers",
+ "description": "Number of parallel synthesis engines. Auto uses your CPU core count to decide.",
+ "auto": "Auto"
+ },
+ "ttsSpeed": {
+ "title": "Speech Speed",
+ "description": "Playback speed for text-to-speech output."
+ },
+ "shortenFirstChunk": {
+ "title": "Fast First Response",
+ "description": "Synthesize a shorter first chunk for faster time-to-speech, then use longer chunks."
+ },
"experimentalToggle": {
"label": "Experimentální funkce",
"description": "Povolit experimentální funkce, které jsou stále ve vývoji."
@@ -244,11 +206,6 @@
"top": "Nahoře"
}
},
- "translateToEnglish": {
- "label": "Překládat do angličtiny",
- "description": "Během přepisu automaticky překládat řeč z jiných jazyků do angličtiny.",
- "descriptionUnsupported": "Překlad není podporován modelem {{model}}."
- },
"modelUnload": {
"title": "Uvolnění modelu",
"description": "Automaticky uvolnit paměť GPU/CPU, když model nebyl použit po zadanou dobu",
@@ -308,22 +265,6 @@
"months3": "Po 3 měsících",
"placeholder": "Vyberte dobu uchování..."
},
- "alwaysOnMicrophone": {
- "label": "Vždy zapnutý mikrofon",
- "description": "Udržovat mikrofon aktivní pro rychlejší odezvu"
- },
- "clamshellMicrophone": {
- "title": "Mikrofon při zavřeném víku",
- "description": "Mikrofon, který se použije při zavřeném víku notebooku"
- },
- "muteWhileRecording": {
- "label": "Ztlumit při nahrávání",
- "description": "Ztlumit systémový zvuk během nahrávání"
- },
- "appendTrailingSpace": {
- "label": "Přidat koncovou mezeru",
- "description": "Přidat mezeru po vloženém přepisu"
- },
"keyboardImplementation": {
"title": "Keyboard Implementation",
"description": "Choose the keyboard shortcut backend.",
@@ -357,10 +298,10 @@
},
"acknowledgments": {
"title": "Poděkování",
- "whisper": {
- "title": "Whisper.cpp",
- "description": "Vysoce výkonné inferenční zpracování modelu automatického rozpoznávání řeči Whisper od OpenAI",
- "details": "Parrot používá Whisper.cpp pro rychlé lokální zpracování řeči na text. Díky skvělé práci Georgiho Gerganova a přispěvatelů."
+ "handy": {
+ "title": "Handy",
+ "description": "The original project that Parrot was forked from",
+ "details": "Parrot is a fork of Handy by CJ Pais. Thanks for building the foundation that made Parrot possible."
}
}
}
@@ -415,7 +356,8 @@
"description": "Změňte jazyk rozhraní Parrot"
},
"overlay": {
- "transcribing": "Přepisuji...",
- "processing": "Zpracovávám..."
+ "speaking": "Speaking...",
+ "processing": "Zpracovávám...",
+ "reading": "Reading:"
}
}
diff --git a/src/i18n/locales/de/translation.json b/src/i18n/locales/de/translation.json
index 8cd707f..4964dd2 100644
--- a/src/i18n/locales/de/translation.json
+++ b/src/i18n/locales/de/translation.json
@@ -25,56 +25,7 @@
"accuracy": "Genauigkeit",
"speed": "Geschwindigkeit"
},
- "models": {
- "small": {
- "name": "Whisper Small",
- "description": "Schnell und recht genau."
- },
- "medium": {
- "name": "Whisper Medium",
- "description": "Gute Genauigkeit, mittlere Geschwindigkeit"
- },
- "turbo": {
- "name": "Whisper Turbo",
- "description": "Ausgewogene Genauigkeit und Geschwindigkeit."
- },
- "large": {
- "name": "Whisper Large",
- "description": "Gute Genauigkeit, aber langsam."
- },
- "parakeet-tdt-0.6b-v2": {
- "name": "Parakeet V2",
- "description": "Nur Englisch. Das beste Modell für englischsprachige Nutzer."
- },
- "parakeet-tdt-0.6b-v3": {
- "name": "Parakeet V3",
- "description": "Schnell und genau"
- },
- "moonshine-base": {
- "name": "Moonshine Base",
- "description": "Sehr schnell, nur Englisch. Verarbeitet Akzente gut."
- },
- "moonshine-tiny-streaming-en": {
- "name": "Moonshine V2 Tiny",
- "description": "Ultraschnell, nur Englisch"
- },
- "moonshine-small-streaming-en": {
- "name": "Moonshine V2 Small",
- "description": "Schnell, nur Englisch. Gute Balance zwischen Geschwindigkeit und Genauigkeit."
- },
- "moonshine-medium-streaming-en": {
- "name": "Moonshine V2 Medium",
- "description": "Nur Englisch. Hohe Qualität."
- },
- "breeze-asr": {
- "name": "Breeze ASR",
- "description": "Optimiert für taiwanesisches Mandarin. Unterstützung für Code-Switching."
- },
- "sense-voice-int8": {
- "name": "SenseVoice",
- "description": "Sehr schnell. Chinesisch, Englisch, Japanisch, Koreanisch, Kantonesisch."
- }
- },
+ "models": {},
"errors": {
"loadModels": "Verfügbare Modelle konnten nicht geladen werden",
"downloadModel": "Modell konnte nicht heruntergeladen werden: {{error}}"
@@ -82,10 +33,6 @@
"permissions": {
"title": "Berechtigungen erforderlich",
"description": "Parrot benötigt einige Berechtigungen, um richtig zu funktionieren.",
- "microphone": {
- "title": "Mikrofonzugriff",
- "description": "Erforderlich, um Ihre Stimme für die Transkription zu hören."
- },
"accessibility": {
"title": "Bedienungshilfen-Zugriff",
"description": "Erforderlich, um transkribierten Text in Ihre Anwendungen einzugeben."
@@ -118,16 +65,14 @@
"noModelDownloadRequired": "Kein Modell - Download erforderlich",
"deleteModel": "{{modelName}} löschen",
"downloadSpeed": "{{speed}} MB/s",
+ "cancel": "Abbrechen",
+ "cancelDownload": "Download abbrechen",
"capabilities": {
"languageSelection": "Unterstützt mehrere Eingabesprachen",
- "multiLanguage": "Mehrsprachig",
- "translation": "Kann ins Englische übersetzen",
- "translate": "Ins Englische übersetzen",
"singleLanguage": "Unterstützt nur diese Sprache",
+ "multiLanguage": "Mehrsprachig",
"languageOnly": "Nur {{language}}"
- },
- "cancel": "Abbrechen",
- "cancelDownload": "Download abbrechen"
+ }
},
"settings": {
"howToUseTitle": "Anleitung",
@@ -135,25 +80,16 @@
"howToUseStep2": "
drücken zum Vorlesen",
"modelSettings": {
"title": "{{model}}-Einstellungen",
- "noSettingsNeeded": "Dieses Modell funktioniert automatisch ohne Konfiguration."
- },
- "models": {
- "title": "Transkriptionsmodelle",
- "description": "Wähle ein Transkriptionsmodell aus oder lade zusätzliche Modelle herunter. Verschiedene Modelle bieten unterschiedliche Genauigkeits- und Geschwindigkeitsstufen.",
- "downloaded": "Heruntergeladen",
- "available": "Zum Download verfügbar",
- "deleteConfirm": "Bist du sicher, dass du {{modelName}} löschen möchtest? Du musst es erneut herunterladen, um es zu verwenden.",
- "deleteActiveConfirm": "{{modelName}} ist dein aktives Modell. Das Löschen stoppt Transkriptionen, bis du ein neues Modell auswählst. Bist du sicher?",
- "deleteTitle": "Modell löschen",
- "filters": {
- "all": "Alle",
- "multiLanguage": "Mehrsprachig",
- "translation": "Übersetzung",
- "allLanguages": "Alle Sprachen"
- },
- "noModelsMatch": "Keine Modelle entsprechen diesem Filter.",
- "yourModels": "Heruntergeladene Modelle",
- "availableModels": "Zum Download verfügbar"
+ "noSettingsNeeded": "Dieses Modell funktioniert automatisch ohne Konfiguration.",
+ "kokoroVoice": {
+ "title": "Voice",
+ "description": "Select which Kokoro voice to use. Auto follows the language setting.",
+ "auto": "Auto (By Language)",
+ "searchPlaceholder": "Search voices...",
+ "loading": "Loading voices...",
+ "noResults": "No voices found",
+ "loadError": "Could not load available voices."
+ }
},
"general": {
"title": "Allgemein",
@@ -189,14 +125,26 @@
"auto": "Auto"
}
},
+ "models": {
+ "title": "Transkriptionsmodelle",
+ "description": "Wähle ein Transkriptionsmodell aus oder lade zusätzliche Modelle herunter. Verschiedene Modelle bieten unterschiedliche Genauigkeits- und Geschwindigkeitsstufen.",
+ "yourModels": "Heruntergeladene Modelle",
+ "availableModels": "Zum Download verfügbar",
+ "downloaded": "Heruntergeladen",
+ "available": "Zum Download verfügbar",
+ "deleteConfirm": "Bist du sicher, dass du {{modelName}} löschen möchtest? Du musst es erneut herunterladen, um es zu verwenden.",
+ "deleteActiveConfirm": "{{modelName}} ist dein aktives Modell. Das Löschen stoppt Transkriptionen, bis du ein neues Modell auswählst. Bist du sicher?",
+ "deleteTitle": "Modell löschen",
+ "filters": {
+ "all": "Alle",
+ "multiLanguage": "Mehrsprachig",
+ "translation": "Übersetzung",
+ "allLanguages": "Alle Sprachen"
+ },
+ "noModelsMatch": "Keine Modelle entsprechen diesem Filter."
+ },
"sound": {
"title": "Ton",
- "microphone": {
- "title": "Mikrofon",
- "description": "Bevorzugtes Mikrofon auswählen",
- "placeholder": "Mikrofon auswählen...",
- "loading": "Wird geladen..."
- },
"audioFeedback": {
"label": "Audio-Feedback",
"description": "Ton bei Start und Ende der Aufnahme abspielen"
@@ -216,9 +164,23 @@
"title": "Erweitert",
"groups": {
"app": "App",
+ "speech": "Speech",
"history": "Verlauf",
"experimental": "Experimentell"
},
+ "ttsWorkers": {
+ "title": "TTS Workers",
+ "description": "Number of parallel synthesis engines. Auto uses your CPU core count to decide.",
+ "auto": "Auto"
+ },
+ "ttsSpeed": {
+ "title": "Speech Speed",
+ "description": "Playback speed for text-to-speech output."
+ },
+ "shortenFirstChunk": {
+ "title": "Fast First Response",
+ "description": "Synthesize a shorter first chunk for faster time-to-speech, then use longer chunks."
+ },
"experimentalToggle": {
"label": "Experimentelle Funktionen",
"description": "Experimentelle Funktionen aktivieren, die sich noch in Entwicklung befinden."
@@ -244,11 +206,6 @@
"top": "Oben"
}
},
- "translateToEnglish": {
- "label": "Ins Englische übersetzen",
- "description": "Sprache aus anderen Sprachen automatisch während der Transkription ins Englische übersetzen.",
- "descriptionUnsupported": "Übersetzung wird vom {{model}}-Modell nicht unterstützt."
- },
"modelUnload": {
"title": "Modell entladen",
"description": "GPU/CPU-Speicher automatisch freigeben, wenn das Modell für die angegebene Zeit nicht verwendet wurde",
@@ -308,22 +265,6 @@
"months3": "Nach 3 Monaten",
"placeholder": "Aufbewahrungszeitraum auswählen..."
},
- "alwaysOnMicrophone": {
- "label": "Mikrofon immer aktiv",
- "description": "Mikrofon für schnellere Reaktion aktiv halten"
- },
- "clamshellMicrophone": {
- "title": "Clamshell-Mikrofon",
- "description": "Mikrofon bei geschlossenem Laptop-Deckel"
- },
- "muteWhileRecording": {
- "label": "Während Aufnahme stummschalten",
- "description": "Systemaudio während der Aufnahme stummschalten"
- },
- "appendTrailingSpace": {
- "label": "Leerzeichen anhängen",
- "description": "Leerzeichen nach eingefügter Transkription hinzufügen"
- },
"keyboardImplementation": {
"title": "Keyboard Implementation",
"description": "Choose the keyboard shortcut backend.",
@@ -357,10 +298,10 @@
},
"acknowledgments": {
"title": "Danksagungen",
- "whisper": {
- "title": "Whisper.cpp",
- "description": "Hochleistungs-Inferenz des Whisper-Spracherkennungsmodells von OpenAI",
- "details": "Parrot verwendet Whisper.cpp für schnelle, lokale Sprach-zu-Text-Verarbeitung. Dank an Georgi Gerganov und die Mitwirkenden für ihre großartige Arbeit."
+ "handy": {
+ "title": "Handy",
+ "description": "The original project that Parrot was forked from",
+ "details": "Parrot is a fork of Handy by CJ Pais. Thanks for building the foundation that made Parrot possible."
}
}
}
@@ -415,7 +356,8 @@
"description": "Sprache der Parrot-Oberfläche ändern"
},
"overlay": {
- "transcribing": "Transkribiere...",
- "processing": "Verarbeite..."
+ "speaking": "Speaking...",
+ "processing": "Verarbeite...",
+ "reading": "Reading:"
}
}
diff --git a/src/i18n/locales/es/translation.json b/src/i18n/locales/es/translation.json
index 2d0421b..c909071 100644
--- a/src/i18n/locales/es/translation.json
+++ b/src/i18n/locales/es/translation.json
@@ -65,14 +65,14 @@
"noModelDownloadRequired": "Sin Modelo - Descarga Requerida",
"deleteModel": "Eliminar {{modelName}}",
"downloadSpeed": "{{speed}} MB/s",
+ "cancel": "Cancelar",
+ "cancelDownload": "Cancelar descarga",
"capabilities": {
"languageSelection": "Soporta múltiples idiomas",
- "multiLanguage": "Multiidioma",
"singleLanguage": "Solo admite este idioma",
+ "multiLanguage": "Multiidioma",
"languageOnly": "Solo {{language}}"
- },
- "cancel": "Cancelar",
- "cancelDownload": "Cancelar descarga"
+ }
},
"settings": {
"howToUseTitle": "Cómo usar",
@@ -91,24 +91,6 @@
"loadError": "No se pudieron cargar las voces disponibles."
}
},
- "models": {
- "title": "Modelos TTS",
- "description": "Selecciona un modelo de texto a voz o descarga modelos adicionales.",
- "downloaded": "Descargados",
- "available": "Disponibles para Descargar",
- "deleteConfirm": "¿Estás seguro de que deseas eliminar {{modelName}}? Necesitarás descargarlo de nuevo para usarlo.",
- "deleteActiveConfirm": "{{modelName}} es tu modelo activo. Eliminarlo detendrá el habla hasta que selecciones un nuevo modelo. ¿Estás seguro?",
- "deleteTitle": "Eliminar modelo",
- "filters": {
- "all": "Todos",
- "multiLanguage": "Multiidioma",
- "translation": "Traducción",
- "allLanguages": "Todos los idiomas"
- },
- "noModelsMatch": "Ningún modelo coincide con este filtro.",
- "yourModels": "Modelos descargados",
- "availableModels": "Disponibles para descargar"
- },
"general": {
"title": "General",
"shortcut": {
@@ -143,6 +125,24 @@
"auto": "Auto"
}
},
+ "models": {
+ "title": "Modelos TTS",
+ "description": "Selecciona un modelo de texto a voz o descarga modelos adicionales.",
+ "yourModels": "Modelos descargados",
+ "availableModels": "Disponibles para descargar",
+ "downloaded": "Descargados",
+ "available": "Disponibles para Descargar",
+ "deleteConfirm": "¿Estás seguro de que deseas eliminar {{modelName}}? Necesitarás descargarlo de nuevo para usarlo.",
+ "deleteActiveConfirm": "{{modelName}} es tu modelo activo. Eliminarlo detendrá el habla hasta que selecciones un nuevo modelo. ¿Estás seguro?",
+ "deleteTitle": "Eliminar modelo",
+ "filters": {
+ "all": "Todos",
+ "multiLanguage": "Multiidioma",
+ "translation": "Traducción",
+ "allLanguages": "Todos los idiomas"
+ },
+ "noModelsMatch": "Ningún modelo coincide con este filtro."
+ },
"sound": {
"title": "Sonido",
"audioFeedback": {
@@ -164,9 +164,23 @@
"title": "Avanzado",
"groups": {
"app": "Aplicación",
+ "speech": "Speech",
"history": "Historial",
"experimental": "Experimental"
},
+ "ttsWorkers": {
+ "title": "TTS Workers",
+ "description": "Number of parallel synthesis engines. Auto uses your CPU core count to decide.",
+ "auto": "Auto"
+ },
+ "ttsSpeed": {
+ "title": "Speech Speed",
+ "description": "Playback speed for text-to-speech output."
+ },
+ "shortenFirstChunk": {
+ "title": "Fast First Response",
+ "description": "Synthesize a shorter first chunk for faster time-to-speech, then use longer chunks."
+ },
"experimentalToggle": {
"label": "Funciones Experimentales",
"description": "Habilitar funciones experimentales que aún están en desarrollo."
@@ -343,6 +357,7 @@
},
"overlay": {
"speaking": "Hablando...",
- "processing": "Procesando..."
+ "processing": "Procesando...",
+ "reading": "Reading:"
}
}
diff --git a/src/i18n/locales/fr/translation.json b/src/i18n/locales/fr/translation.json
index f5c00ca..ca7c3fb 100644
--- a/src/i18n/locales/fr/translation.json
+++ b/src/i18n/locales/fr/translation.json
@@ -65,14 +65,14 @@
"noModelDownloadRequired": "Aucun Modèle - Téléchargement Requis",
"deleteModel": "Supprimer {{modelName}}",
"downloadSpeed": "{{speed}} Mo/s",
+ "cancel": "Annuler",
+ "cancelDownload": "Annuler le téléchargement",
"capabilities": {
"languageSelection": "Prend en charge plusieurs langues",
- "multiLanguage": "Multilingue",
"singleLanguage": "Prend en charge uniquement cette langue",
+ "multiLanguage": "Multilingue",
"languageOnly": "{{language}} uniquement"
- },
- "cancel": "Annuler",
- "cancelDownload": "Annuler le téléchargement"
+ }
},
"settings": {
"howToUseTitle": "Comment utiliser",
@@ -91,24 +91,6 @@
"loadError": "Impossible de charger les voix disponibles."
}
},
- "models": {
- "title": "Modèles TTS",
- "description": "Sélectionnez un modèle de synthèse vocale ou téléchargez des modèles supplémentaires.",
- "downloaded": "Téléchargés",
- "available": "Disponibles au Téléchargement",
- "deleteConfirm": "Êtes-vous sûr de vouloir supprimer {{modelName}} ? Vous devrez le télécharger à nouveau pour l'utiliser.",
- "deleteActiveConfirm": "{{modelName}} est votre modèle actif. Le supprimer arrêtera la synthèse vocale jusqu'à ce que vous sélectionniez un nouveau modèle. Êtes-vous sûr ?",
- "deleteTitle": "Supprimer le modèle",
- "filters": {
- "all": "Tous",
- "multiLanguage": "Multilingue",
- "translation": "Traduction",
- "allLanguages": "Toutes les langues"
- },
- "noModelsMatch": "Aucun modèle ne correspond à ce filtre.",
- "yourModels": "Modèles téléchargés",
- "availableModels": "Disponibles au téléchargement"
- },
"general": {
"title": "Général",
"shortcut": {
@@ -143,6 +125,24 @@
"auto": "Auto"
}
},
+ "models": {
+ "title": "Modèles TTS",
+ "description": "Sélectionnez un modèle de synthèse vocale ou téléchargez des modèles supplémentaires.",
+ "yourModels": "Modèles téléchargés",
+ "availableModels": "Disponibles au téléchargement",
+ "downloaded": "Téléchargés",
+ "available": "Disponibles au Téléchargement",
+ "deleteConfirm": "Êtes-vous sûr de vouloir supprimer {{modelName}} ? Vous devrez le télécharger à nouveau pour l'utiliser.",
+ "deleteActiveConfirm": "{{modelName}} est votre modèle actif. Le supprimer arrêtera la synthèse vocale jusqu'à ce que vous sélectionniez un nouveau modèle. Êtes-vous sûr ?",
+ "deleteTitle": "Supprimer le modèle",
+ "filters": {
+ "all": "Tous",
+ "multiLanguage": "Multilingue",
+ "translation": "Traduction",
+ "allLanguages": "Toutes les langues"
+ },
+ "noModelsMatch": "Aucun modèle ne correspond à ce filtre."
+ },
"sound": {
"title": "Son",
"audioFeedback": {
@@ -164,9 +164,23 @@
"title": "Avancé",
"groups": {
"app": "Application",
+ "speech": "Speech",
"history": "Historique",
"experimental": "Expérimental"
},
+ "ttsWorkers": {
+ "title": "TTS Workers",
+ "description": "Number of parallel synthesis engines. Auto uses your CPU core count to decide.",
+ "auto": "Auto"
+ },
+ "ttsSpeed": {
+ "title": "Speech Speed",
+ "description": "Playback speed for text-to-speech output."
+ },
+ "shortenFirstChunk": {
+ "title": "Fast First Response",
+ "description": "Synthesize a shorter first chunk for faster time-to-speech, then use longer chunks."
+ },
"experimentalToggle": {
"label": "Fonctionnalités Expérimentales",
"description": "Activer les fonctionnalités expérimentales encore en développement."
@@ -343,6 +357,7 @@
},
"overlay": {
"speaking": "Lecture en cours...",
- "processing": "Traitement..."
+ "processing": "Traitement...",
+ "reading": "Reading:"
}
}
diff --git a/src/i18n/locales/it/translation.json b/src/i18n/locales/it/translation.json
index 84f5e06..a547f48 100644
--- a/src/i18n/locales/it/translation.json
+++ b/src/i18n/locales/it/translation.json
@@ -25,56 +25,7 @@
"accuracy": "accuratezza",
"speed": "velocità"
},
- "models": {
- "small": {
- "name": "Whisper Small",
- "description": "Veloce e abbastanza accurato."
- },
- "medium": {
- "name": "Whisper Medium",
- "description": "Buona accuratezza, velocità nella media"
- },
- "turbo": {
- "name": "Whisper Turbo",
- "description": "Bilanciato fra accuratezza e velocità."
- },
- "large": {
- "name": "Whisper Large",
- "description": "Buona accuratezza, ma lento."
- },
- "parakeet-tdt-0.6b-v2": {
- "name": "Parakeet V2",
- "description": "Solo inglese. Il miglior modello per chi parla inglese."
- },
- "parakeet-tdt-0.6b-v3": {
- "name": "Parakeet V3",
- "description": "Veloce e accurato"
- },
- "moonshine-base": {
- "name": "Moonshine Base",
- "description": "Molto veloce, solo inglese. Gestisce bene gli accenti."
- },
- "moonshine-tiny-streaming-en": {
- "name": "Moonshine V2 Tiny",
- "description": "Ultra-veloce, solo inglese"
- },
- "moonshine-small-streaming-en": {
- "name": "Moonshine V2 Small",
- "description": "Veloce, solo inglese. Buon equilibrio tra velocità e precisione."
- },
- "moonshine-medium-streaming-en": {
- "name": "Moonshine V2 Medium",
- "description": "Solo inglese. Alta qualità."
- },
- "breeze-asr": {
- "name": "Breeze ASR",
- "description": "Ottimizzato per il mandarino taiwanese. Supporto per il code-switching."
- },
- "sense-voice-int8": {
- "name": "SenseVoice",
- "description": "Molto veloce. Cinese, inglese, giapponese, coreano, cantonese."
- }
- },
+ "models": {},
"errors": {
"loadModels": "Errore di caricamento dei modelli disponibili",
"downloadModel": "Errore nel download del modello: {{error}}"
@@ -82,10 +33,6 @@
"permissions": {
"title": "Permessi Richiesti",
"description": "Parrot ha bisogno di alcuni permessi per funzionare correttamente.",
- "microphone": {
- "title": "Accesso al Microfono",
- "description": "Necessario per sentire la tua voce per la trascrizione."
- },
"accessibility": {
"title": "Accesso all'Accessibilità",
"description": "Necessario per digitare il testo trascritto nelle tue applicazioni."
@@ -118,16 +65,14 @@
"noModelDownloadRequired": "Nessun Modello - Download Richiesto",
"deleteModel": "Elimina {{modelName}}",
"downloadSpeed": "{{speed}} MB/s",
+ "cancel": "Annulla",
+ "cancelDownload": "Annulla download",
"capabilities": {
"languageSelection": "Supporta più lingue di input",
- "multiLanguage": "Multilingua",
- "translation": "Può tradurre in inglese",
- "translate": "Traduci in inglese",
"singleLanguage": "Supporta solo questa lingua",
+ "multiLanguage": "Multilingua",
"languageOnly": "Solo {{language}}"
- },
- "cancel": "Annulla",
- "cancelDownload": "Annulla download"
+ }
},
"settings": {
"howToUseTitle": "Come usare",
@@ -135,25 +80,16 @@
"howToUseStep2": "Premi
per leggere ad alta voce",
"modelSettings": {
"title": "Impostazioni di {{model}}",
- "noSettingsNeeded": "Questo modello funziona automaticamente senza bisogno di configurazione."
- },
- "models": {
- "title": "Modelli di Trascrizione",
- "description": "Seleziona un modello di trascrizione o scarica modelli aggiuntivi. Diversi modelli offrono diversi livelli di accuratezza e velocità.",
- "downloaded": "Scaricati",
- "available": "Disponibili per il Download",
- "deleteConfirm": "Sei sicuro di voler eliminare {{modelName}}? Dovrai scaricarlo di nuovo per usarlo.",
- "deleteActiveConfirm": "{{modelName}} è il tuo modello attivo. Eliminarlo interromperà le trascrizioni fino a quando non selezionerai un nuovo modello. Sei sicuro?",
- "deleteTitle": "Elimina modello",
- "filters": {
- "all": "Tutti",
- "multiLanguage": "Multilingua",
- "translation": "Traduzione",
- "allLanguages": "Tutte le lingue"
- },
- "noModelsMatch": "Nessun modello corrisponde a questo filtro.",
- "yourModels": "Modelli scaricati",
- "availableModels": "Disponibili per il download"
+ "noSettingsNeeded": "Questo modello funziona automaticamente senza bisogno di configurazione.",
+ "kokoroVoice": {
+ "title": "Voice",
+ "description": "Select which Kokoro voice to use. Auto follows the language setting.",
+ "auto": "Auto (By Language)",
+ "searchPlaceholder": "Search voices...",
+ "loading": "Loading voices...",
+ "noResults": "No voices found",
+ "loadError": "Could not load available voices."
+ }
},
"general": {
"title": "Generale",
@@ -189,14 +125,26 @@
"auto": "Auto"
}
},
+ "models": {
+ "title": "Modelli di Trascrizione",
+ "description": "Seleziona un modello di trascrizione o scarica modelli aggiuntivi. Diversi modelli offrono diversi livelli di accuratezza e velocità.",
+ "yourModels": "Modelli scaricati",
+ "availableModels": "Disponibili per il download",
+ "downloaded": "Scaricati",
+ "available": "Disponibili per il Download",
+ "deleteConfirm": "Sei sicuro di voler eliminare {{modelName}}? Dovrai scaricarlo di nuovo per usarlo.",
+ "deleteActiveConfirm": "{{modelName}} è il tuo modello attivo. Eliminarlo interromperà le trascrizioni fino a quando non selezionerai un nuovo modello. Sei sicuro?",
+ "deleteTitle": "Elimina modello",
+ "filters": {
+ "all": "Tutti",
+ "multiLanguage": "Multilingua",
+ "translation": "Traduzione",
+ "allLanguages": "Tutte le lingue"
+ },
+ "noModelsMatch": "Nessun modello corrisponde a questo filtro."
+ },
"sound": {
"title": "Suono",
- "microphone": {
- "title": "Microfono",
- "description": "Scegli il microfono preferito",
- "placeholder": "Scegli microfono...",
- "loading": "Caricamento..."
- },
"audioFeedback": {
"label": "Feedback Audio",
"description": "Riproduci un suono quando la registrazione inizia e finisce"
@@ -216,9 +164,23 @@
"title": "Avanzate",
"groups": {
"app": "App",
+ "speech": "Speech",
"history": "Cronologia",
"experimental": "Sperimentale"
},
+ "ttsWorkers": {
+ "title": "TTS Workers",
+ "description": "Number of parallel synthesis engines. Auto uses your CPU core count to decide.",
+ "auto": "Auto"
+ },
+ "ttsSpeed": {
+ "title": "Speech Speed",
+ "description": "Playback speed for text-to-speech output."
+ },
+ "shortenFirstChunk": {
+ "title": "Fast First Response",
+ "description": "Synthesize a shorter first chunk for faster time-to-speech, then use longer chunks."
+ },
"experimentalToggle": {
"label": "Funzionalità Sperimentali",
"description": "Abilita le funzionalità sperimentali ancora in fase di sviluppo."
@@ -244,11 +206,6 @@
"top": "In alto"
}
},
- "translateToEnglish": {
- "label": "Traduci in inglese",
- "description": "Traduci automaticamente in inglese la voce in altre lingue durante la trascrizione.",
- "descriptionUnsupported": "La traduzione non è supportata dal modello {{model}}."
- },
"modelUnload": {
"title": "Disattiva Model",
"description": "Libera automaticamente la memoria della GPU/CPU quando il modello non viene utilizzato per un certo periodo.",
@@ -308,22 +265,6 @@
"months3": "Dopo 3 Mesi",
"placeholder": "Seleziona periodo di salvataggio..."
},
- "alwaysOnMicrophone": {
- "label": "Microfono Sempre Attivo",
- "description": "Tieni il microfono attivo per una risposta più rapida"
- },
- "clamshellMicrophone": {
- "title": "Microfono a portatile chiuso",
- "description": "Microfono da usare quando il portatile è chiuso"
- },
- "muteWhileRecording": {
- "label": "Silenzia durante la registrazione",
- "description": "Silenzia l'audio di sistema durante la registrazione"
- },
- "appendTrailingSpace": {
- "label": "Aggiungi Spazio Finale",
- "description": "Aggiungi uno spazio dopo la trascrizione incollata"
- },
"keyboardImplementation": {
"title": "Keyboard Implementation",
"description": "Choose the keyboard shortcut backend.",
@@ -357,10 +298,10 @@
},
"acknowledgments": {
"title": "Ringraziamenti",
- "whisper": {
- "title": "Whisper.cpp",
- "description": "Inferenza ad alte prestazioni del modello di riconoscimento vocale automatico Whisper di OpenAI",
- "details": "Parrot usa Whisper.cpp per il riconoscimento vocale veloce in locale. Grazie a Georgi Gerganov e collaboratori per il fantastico lavoro."
+ "handy": {
+ "title": "Handy",
+ "description": "The original project that Parrot was forked from",
+ "details": "Parrot is a fork of Handy by CJ Pais. Thanks for building the foundation that made Parrot possible."
}
}
}
@@ -415,7 +356,8 @@
"description": "Cambia la lingua dell'interfaccia di Parrot"
},
"overlay": {
- "transcribing": "Trascrizione...",
- "processing": "Elaborazione..."
+ "speaking": "Speaking...",
+ "processing": "Elaborazione...",
+ "reading": "Reading:"
}
}
diff --git a/src/i18n/locales/ja/translation.json b/src/i18n/locales/ja/translation.json
index 81e684a..c2973bf 100644
--- a/src/i18n/locales/ja/translation.json
+++ b/src/i18n/locales/ja/translation.json
@@ -25,56 +25,7 @@
"accuracy": "精度",
"speed": "速度"
},
- "models": {
- "small": {
- "name": "Whisper Small",
- "description": "高速でそこそこ正確。"
- },
- "medium": {
- "name": "Whisper Medium",
- "description": "良好な精度、中程度の速度"
- },
- "turbo": {
- "name": "Whisper Turbo",
- "description": "精度と速度のバランスが良い。"
- },
- "large": {
- "name": "Whisper Large",
- "description": "良好な精度、ただし低速。"
- },
- "parakeet-tdt-0.6b-v2": {
- "name": "Parakeet V2",
- "description": "英語のみ。英語話者に最適なモデル。"
- },
- "parakeet-tdt-0.6b-v3": {
- "name": "Parakeet V3",
- "description": "高速で正確"
- },
- "moonshine-base": {
- "name": "Moonshine Base",
- "description": "非常に高速、英語のみ。アクセントにも対応。"
- },
- "moonshine-tiny-streaming-en": {
- "name": "Moonshine V2 Tiny",
- "description": "超高速、英語のみ"
- },
- "moonshine-small-streaming-en": {
- "name": "Moonshine V2 Small",
- "description": "高速、英語のみ。速度と精度のバランスが良い。"
- },
- "moonshine-medium-streaming-en": {
- "name": "Moonshine V2 Medium",
- "description": "英語のみ。高品質。"
- },
- "breeze-asr": {
- "name": "Breeze ASR",
- "description": "台湾華語に最適化。コードスイッチングに対応。"
- },
- "sense-voice-int8": {
- "name": "SenseVoice",
- "description": "非常に高速。中国語、英語、日本語、韓国語、広東語。"
- }
- },
+ "models": {},
"errors": {
"loadModels": "利用可能なモデルの読み込みに失敗しました",
"downloadModel": "モデルのダウンロードに失敗しました: {{error}}"
@@ -82,10 +33,6 @@
"permissions": {
"title": "権限が必要です",
"description": "Parrotが正常に動作するにはいくつかの権限が必要です。",
- "microphone": {
- "title": "マイクへのアクセス",
- "description": "文字起こしのためにあなたの声を聞くために必要です。"
- },
"accessibility": {
"title": "アクセシビリティへのアクセス",
"description": "アプリケーションに文字起こしテキストを入力するために必要です。"
@@ -118,16 +65,14 @@
"noModelDownloadRequired": "モデルなし - ダウンロードが必要",
"deleteModel": "{{modelName}}を削除",
"downloadSpeed": "{{speed}} MB/s",
+ "cancel": "キャンセル",
+ "cancelDownload": "ダウンロードをキャンセル",
"capabilities": {
"languageSelection": "複数の入力言語をサポート",
- "multiLanguage": "多言語",
- "translation": "英語への翻訳が可能",
- "translate": "英語に翻訳",
"singleLanguage": "この言語のみ対応",
+ "multiLanguage": "多言語",
"languageOnly": "{{language}}のみ"
- },
- "cancel": "キャンセル",
- "cancelDownload": "ダウンロードをキャンセル"
+ }
},
"settings": {
"howToUseTitle": "使い方",
@@ -135,25 +80,16 @@
"howToUseStep2": "
を押して読み上げ",
"modelSettings": {
"title": "{{model}} 設定",
- "noSettingsNeeded": "このモデルは設定不要で自動的に動作します。"
- },
- "models": {
- "title": "転写モデル",
- "description": "転写モデルを選択するか、追加のモデルをダウンロードします。異なるモデルは精度と速度のレベルが異なります。",
- "downloaded": "ダウンロード済み",
- "available": "ダウンロード可能",
- "deleteConfirm": "{{modelName}}を削除してもよろしいですか?再度使用するにはダウンロードが必要です。",
- "deleteActiveConfirm": "{{modelName}}は現在使用中のモデルです。削除すると、新しいモデルを選択するまで文字起こしが停止します。本当に削除しますか?",
- "deleteTitle": "モデルを削除",
- "filters": {
- "all": "すべて",
- "multiLanguage": "多言語",
- "translation": "翻訳",
- "allLanguages": "すべての言語"
- },
- "noModelsMatch": "このフィルターに一致するモデルがありません。",
- "yourModels": "ダウンロード済みモデル",
- "availableModels": "ダウンロード可能"
+ "noSettingsNeeded": "このモデルは設定不要で自動的に動作します。",
+ "kokoroVoice": {
+ "title": "Voice",
+ "description": "Select which Kokoro voice to use. Auto follows the language setting.",
+ "auto": "Auto (By Language)",
+ "searchPlaceholder": "Search voices...",
+ "loading": "Loading voices...",
+ "noResults": "No voices found",
+ "loadError": "Could not load available voices."
+ }
},
"general": {
"title": "一般",
@@ -189,14 +125,26 @@
"auto": "自動"
}
},
+ "models": {
+ "title": "転写モデル",
+ "description": "転写モデルを選択するか、追加のモデルをダウンロードします。異なるモデルは精度と速度のレベルが異なります。",
+ "yourModels": "ダウンロード済みモデル",
+ "availableModels": "ダウンロード可能",
+ "downloaded": "ダウンロード済み",
+ "available": "ダウンロード可能",
+ "deleteConfirm": "{{modelName}}を削除してもよろしいですか?再度使用するにはダウンロードが必要です。",
+ "deleteActiveConfirm": "{{modelName}}は現在使用中のモデルです。削除すると、新しいモデルを選択するまで文字起こしが停止します。本当に削除しますか?",
+ "deleteTitle": "モデルを削除",
+ "filters": {
+ "all": "すべて",
+ "multiLanguage": "多言語",
+ "translation": "翻訳",
+ "allLanguages": "すべての言語"
+ },
+ "noModelsMatch": "このフィルターに一致するモデルがありません。"
+ },
"sound": {
"title": "サウンド",
- "microphone": {
- "title": "マイク",
- "description": "使用するマイクデバイスを選択",
- "placeholder": "マイクを選択...",
- "loading": "読み込み中..."
- },
"audioFeedback": {
"label": "音声フィードバック",
"description": "録音の開始と停止時にサウンドを再生"
@@ -216,9 +164,23 @@
"title": "詳細設定",
"groups": {
"app": "アプリ",
+ "speech": "Speech",
"history": "履歴",
"experimental": "実験的"
},
+ "ttsWorkers": {
+ "title": "TTS Workers",
+ "description": "Number of parallel synthesis engines. Auto uses your CPU core count to decide.",
+ "auto": "Auto"
+ },
+ "ttsSpeed": {
+ "title": "Speech Speed",
+ "description": "Playback speed for text-to-speech output."
+ },
+ "shortenFirstChunk": {
+ "title": "Fast First Response",
+ "description": "Synthesize a shorter first chunk for faster time-to-speech, then use longer chunks."
+ },
"experimentalToggle": {
"label": "実験的機能",
"description": "まだ開発中の実験的機能を有効にします。"
@@ -244,11 +206,6 @@
"top": "上"
}
},
- "translateToEnglish": {
- "label": "英語に翻訳",
- "description": "文字起こし中に他の言語から英語に自動的に翻訳。",
- "descriptionUnsupported": "翻訳は{{model}}モデルではサポートされていません。"
- },
"modelUnload": {
"title": "モデルのアンロード",
"description": "指定時間モデルが使用されていない場合、GPU/CPUメモリを自動的に解放",
@@ -308,22 +265,6 @@
"months3": "3ヶ月後",
"placeholder": "保持期間を選択..."
},
- "alwaysOnMicrophone": {
- "label": "マイク常時オン",
- "description": "より速い応答のためにマイクをアクティブに保つ"
- },
- "clamshellMicrophone": {
- "title": "クラムシェルマイク",
- "description": "ノートパソコンの蓋を閉じたときに使用するマイク"
- },
- "muteWhileRecording": {
- "label": "録音中にミュート",
- "description": "録音中にシステムオーディオをミュート"
- },
- "appendTrailingSpace": {
- "label": "末尾にスペースを追加",
- "description": "貼り付けた文字起こしの後にスペースを追加"
- },
"keyboardImplementation": {
"title": "Keyboard Implementation",
"description": "Choose the keyboard shortcut backend.",
@@ -357,10 +298,10 @@
},
"acknowledgments": {
"title": "謝辞",
- "whisper": {
- "title": "Whisper.cpp",
- "description": "OpenAIのWhisper自動音声認識モデルの高性能推論",
- "details": "Parrotは高速でローカルな音声からテキストへの変換にWhisper.cppを使用しています。Georgi Gerganov氏と貢献者の皆様の素晴らしい仕事に感謝します。"
+ "handy": {
+ "title": "Handy",
+ "description": "The original project that Parrot was forked from",
+ "details": "Parrot is a fork of Handy by CJ Pais. Thanks for building the foundation that made Parrot possible."
}
}
}
@@ -415,7 +356,8 @@
"description": "Parrotインターフェースの言語を変更"
},
"overlay": {
- "transcribing": "文字起こし中...",
- "processing": "処理中..."
+ "speaking": "Speaking...",
+ "processing": "処理中...",
+ "reading": "Reading:"
}
}
diff --git a/src/i18n/locales/ko/translation.json b/src/i18n/locales/ko/translation.json
index 81ee784..b89193f 100644
--- a/src/i18n/locales/ko/translation.json
+++ b/src/i18n/locales/ko/translation.json
@@ -25,56 +25,7 @@
"accuracy": "정확도",
"speed": "속도"
},
- "models": {
- "small": {
- "name": "Whisper Small",
- "description": "빠르고 상당히 정확합니다."
- },
- "medium": {
- "name": "Whisper Medium",
- "description": "좋은 정확도, 중간 속도"
- },
- "turbo": {
- "name": "Whisper Turbo",
- "description": "정확도와 속도의 균형."
- },
- "large": {
- "name": "Whisper Large",
- "description": "좋은 정확도지만 느립니다."
- },
- "parakeet-tdt-0.6b-v2": {
- "name": "Parakeet V2",
- "description": "영어 전용. 영어 사용자를 위한 최고의 모델."
- },
- "parakeet-tdt-0.6b-v3": {
- "name": "Parakeet V3",
- "description": "빠르고 정확함"
- },
- "moonshine-base": {
- "name": "Moonshine Base",
- "description": "매우 빠름, 영어 전용. 억양을 잘 처리합니다."
- },
- "moonshine-tiny-streaming-en": {
- "name": "Moonshine V2 Tiny",
- "description": "초고속, 영어 전용"
- },
- "moonshine-small-streaming-en": {
- "name": "Moonshine V2 Small",
- "description": "빠름, 영어 전용. 속도와 정확도의 균형이 좋음."
- },
- "moonshine-medium-streaming-en": {
- "name": "Moonshine V2 Medium",
- "description": "영어 전용. 높은 품질."
- },
- "breeze-asr": {
- "name": "Breeze ASR",
- "description": "대만 만다린에 최적화. 코드 스위칭 지원."
- },
- "sense-voice-int8": {
- "name": "SenseVoice",
- "description": "매우 빠름. 중국어, 영어, 일본어, 한국어, 광둥어."
- }
- },
+ "models": {},
"errors": {
"loadModels": "사용 가능한 모델을 불러오는데 실패했습니다",
"downloadModel": "모델 다운로드 실패: {{error}}"
@@ -82,10 +33,6 @@
"permissions": {
"title": "권한 필요",
"description": "Parrot가 제대로 작동하려면 몇 가지 권한이 필요합니다.",
- "microphone": {
- "title": "마이크 접근",
- "description": "음성 인식을 위해 마이크 접근 권한이 필요합니다."
- },
"accessibility": {
"title": "접근성 권한",
"description": "녹음된 텍스트를 애플리케이션에 입력하기 위해 필요합니다."
@@ -124,9 +71,7 @@
"languageSelection": "여러 입력 언어를 지원합니다",
"singleLanguage": "이 언어만 지원합니다",
"multiLanguage": "다국어",
- "languageOnly": "{{language}} 전용",
- "translation": "영어로 번역 가능",
- "translate": "영어로 번역"
+ "languageOnly": "{{language}} 전용"
}
},
"settings": {
@@ -135,7 +80,16 @@
"howToUseStep2": "
을 눌러 소리 내어 읽기",
"modelSettings": {
"title": "{{model}} 설정",
- "noSettingsNeeded": "이 모델은 별도의 설정 없이 자동으로 작동합니다."
+ "noSettingsNeeded": "이 모델은 별도의 설정 없이 자동으로 작동합니다.",
+ "kokoroVoice": {
+ "title": "Voice",
+ "description": "Select which Kokoro voice to use. Auto follows the language setting.",
+ "auto": "Auto (By Language)",
+ "searchPlaceholder": "Search voices...",
+ "loading": "Loading voices...",
+ "noResults": "No voices found",
+ "loadError": "Could not load available voices."
+ }
},
"general": {
"title": "일반",
@@ -171,29 +125,6 @@
"auto": "자동"
}
},
- "sound": {
- "title": "사운드",
- "microphone": {
- "title": "마이크",
- "description": "선호하는 마이크 장치를 선택하세요",
- "placeholder": "마이크 선택...",
- "loading": "로딩 중..."
- },
- "audioFeedback": {
- "label": "오디오 피드백",
- "description": "녹음 시작 및 정지 시 소리 재생"
- },
- "outputDevice": {
- "title": "출력 장치",
- "description": "피드백 사운드를 위한 오디오 출력 장치를 선택하세요",
- "placeholder": "출력 장치 선택...",
- "loading": "로딩 중..."
- },
- "volume": {
- "title": "볼륨",
- "description": "오디오 피드백 사운드의 볼륨 조절"
- }
- },
"models": {
"title": "음성 인식 모델",
"description": "음성 인식 모델을 선택하거나 추가 모델을 다운로드하세요. 모델마다 정확도와 속도가 다릅니다.",
@@ -212,13 +143,44 @@
},
"noModelsMatch": "이 필터에 맞는 모델이 없습니다."
},
+ "sound": {
+ "title": "사운드",
+ "audioFeedback": {
+ "label": "오디오 피드백",
+ "description": "녹음 시작 및 정지 시 소리 재생"
+ },
+ "outputDevice": {
+ "title": "출력 장치",
+ "description": "피드백 사운드를 위한 오디오 출력 장치를 선택하세요",
+ "placeholder": "출력 장치 선택...",
+ "loading": "로딩 중..."
+ },
+ "volume": {
+ "title": "볼륨",
+ "description": "오디오 피드백 사운드의 볼륨 조절"
+ }
+ },
"advanced": {
"title": "고급",
"groups": {
"app": "앱",
+ "speech": "Speech",
"history": "히스토리",
"experimental": "실험적"
},
+ "ttsWorkers": {
+ "title": "TTS Workers",
+ "description": "Number of parallel synthesis engines. Auto uses your CPU core count to decide.",
+ "auto": "Auto"
+ },
+ "ttsSpeed": {
+ "title": "Speech Speed",
+ "description": "Playback speed for text-to-speech output."
+ },
+ "shortenFirstChunk": {
+ "title": "Fast First Response",
+ "description": "Synthesize a shorter first chunk for faster time-to-speech, then use longer chunks."
+ },
"experimentalToggle": {
"label": "실험적 기능",
"description": "개발 중인 실험적 기능을 활성화합니다."
@@ -244,11 +206,6 @@
"top": "상단"
}
},
- "translateToEnglish": {
- "label": "영어로 번역",
- "description": "텍스트로 변환시 다른 언어의 음성을 자동으로 영어로 번역합니다.",
- "descriptionUnsupported": "번역은 {{model}} 모델에서 지원되지 않습니다."
- },
"modelUnload": {
"title": "모델 언로드",
"description": "모델을 지정된 시간 동안 사용하지 않으면 자동으로 GPU/CPU 메모리를 해제합니다",
@@ -308,22 +265,6 @@
"months3": "3개월 후",
"placeholder": "보관 기간 선택..."
},
- "alwaysOnMicrophone": {
- "label": "항상 켜진 마이크",
- "description": "더 빠른 응답을 위해 마이크를 활성 상태로 유지"
- },
- "clamshellMicrophone": {
- "title": "클램셸 마이크",
- "description": "노트북 덮개가 닫혀 있을 때 사용할 마이크"
- },
- "muteWhileRecording": {
- "label": "녹음 중 음소거",
- "description": "녹음 중 시스템 오디오 음소거"
- },
- "appendTrailingSpace": {
- "label": "끝 공백 추가",
- "description": "붙여넣은 텍스트 끝에 공백 추가"
- },
"keyboardImplementation": {
"title": "키보드 구현",
"description": "키보드 단축키 백엔드를 선택하세요.",
@@ -357,10 +298,10 @@
},
"acknowledgments": {
"title": "감사의 말",
- "whisper": {
- "title": "Whisper.cpp",
- "description": "OpenAI의 Whisper 자동 음성 인식 모델의 고성능 추론",
- "details": "Parrot는 빠르고 로컬 음성-텍스트 처리를 위해 Whisper.cpp를 사용합니다. Georgi Gerganov와 기여자들의 놀라운 작업에 감사드립니다."
+ "handy": {
+ "title": "Handy",
+ "description": "The original project that Parrot was forked from",
+ "details": "Parrot is a fork of Handy by CJ Pais. Thanks for building the foundation that made Parrot possible."
}
}
}
@@ -415,7 +356,8 @@
"description": "Parrot 인터페이스의 언어를 변경하세요"
},
"overlay": {
- "transcribing": "텍스트로 변환 중...",
- "processing": "처리 중..."
+ "speaking": "Speaking...",
+ "processing": "처리 중...",
+ "reading": "Reading:"
}
}
diff --git a/src/i18n/locales/pl/translation.json b/src/i18n/locales/pl/translation.json
index 2949d25..7f1103f 100644
--- a/src/i18n/locales/pl/translation.json
+++ b/src/i18n/locales/pl/translation.json
@@ -25,56 +25,7 @@
"accuracy": "dokładność",
"speed": "szybkość"
},
- "models": {
- "small": {
- "name": "Whisper Small",
- "description": "Szybki i dość dokładny."
- },
- "medium": {
- "name": "Whisper Medium",
- "description": "Dobra dokładność, średnia szybkość"
- },
- "turbo": {
- "name": "Whisper Turbo",
- "description": "Zrównoważona dokładność i szybkość."
- },
- "large": {
- "name": "Whisper Large",
- "description": "Dobra dokładność, ale wolny."
- },
- "parakeet-tdt-0.6b-v2": {
- "name": "Parakeet V2",
- "description": "Tylko angielski. Najlepszy model dla osób mówiących po angielsku."
- },
- "parakeet-tdt-0.6b-v3": {
- "name": "Parakeet V3",
- "description": "Szybki i dokładny"
- },
- "moonshine-base": {
- "name": "Moonshine Base",
- "description": "Bardzo szybki, tylko angielski. Dobrze radzi sobie z akcentami."
- },
- "moonshine-tiny-streaming-en": {
- "name": "Moonshine V2 Tiny",
- "description": "Ultraszybki, tylko angielski"
- },
- "moonshine-small-streaming-en": {
- "name": "Moonshine V2 Small",
- "description": "Szybki, tylko angielski. Dobra równowaga między szybkością a dokładnością."
- },
- "moonshine-medium-streaming-en": {
- "name": "Moonshine V2 Medium",
- "description": "Tylko angielski. Wysoka jakość."
- },
- "breeze-asr": {
- "name": "Breeze ASR",
- "description": "Zoptymalizowany dla tajwańskiego mandaryńskiego. Obsługa przełączania języków."
- },
- "sense-voice-int8": {
- "name": "SenseVoice",
- "description": "Bardzo szybki. Chiński, angielski, japoński, koreański, kantoński."
- }
- },
+ "models": {},
"errors": {
"loadModels": "Nie udało się wczytać dostępnych modeli",
"downloadModel": "Nie udało się pobrać modelu: {{error}}"
@@ -82,10 +33,6 @@
"permissions": {
"title": "Wymagane uprawnienia",
"description": "Parrot potrzebuje kilku uprawnień, aby działać poprawnie.",
- "microphone": {
- "title": "Dostęp do mikrofonu",
- "description": "Wymagany do słyszenia Twojego głosu w celu transkrypcji."
- },
"accessibility": {
"title": "Dostęp do dostępności",
"description": "Wymagany do wpisywania transkrybowanego tekstu w Twoich aplikacjach."
@@ -118,16 +65,14 @@
"noModelDownloadRequired": "Brak modelu – wymagane pobranie",
"deleteModel": "Usuń {{modelName}}",
"downloadSpeed": "{{speed}} MB/s",
+ "cancel": "Anuluj",
+ "cancelDownload": "Anuluj pobieranie",
"capabilities": {
"languageSelection": "Obsługuje wiele języków wejściowych",
- "multiLanguage": "Wielojęzyczny",
- "translation": "Może tłumaczyć na angielski",
- "translate": "Tłumacz na angielski",
"singleLanguage": "Obsługuje tylko ten język",
+ "multiLanguage": "Wielojęzyczny",
"languageOnly": "Tylko {{language}}"
- },
- "cancel": "Anuluj",
- "cancelDownload": "Anuluj pobieranie"
+ }
},
"settings": {
"howToUseTitle": "Jak używać",
@@ -135,25 +80,16 @@
"howToUseStep2": "Naciśnij
, aby odczytać na głos",
"modelSettings": {
"title": "Ustawienia {{model}}",
- "noSettingsNeeded": "Ten model działa automatycznie bez konieczności konfiguracji."
- },
- "models": {
- "title": "Modele transkrypcji",
- "description": "Wybierz model transkrypcji lub pobierz dodatkowe modele. Różne modele oferują różne poziomy dokładności i szybkości.",
- "downloaded": "Pobrane",
- "available": "Dostępne do pobrania",
- "deleteConfirm": "Czy na pewno chcesz usunąć {{modelName}}? Będziesz musiał pobrać go ponownie, aby go użyć.",
- "deleteActiveConfirm": "{{modelName}} jest Twoim aktywnym modelem. Usunięcie go zatrzyma transkrypcje, dopóki nie wybierzesz nowego modelu. Czy na pewno chcesz kontynuować?",
- "deleteTitle": "Usuń model",
- "filters": {
- "all": "Wszystkie",
- "multiLanguage": "Wielojęzyczne",
- "translation": "Tłumaczenie",
- "allLanguages": "Wszystkie języki"
- },
- "noModelsMatch": "Żadne modele nie pasują do tego filtra.",
- "yourModels": "Pobrane modele",
- "availableModels": "Dostępne do pobrania"
+ "noSettingsNeeded": "Ten model działa automatycznie bez konieczności konfiguracji.",
+ "kokoroVoice": {
+ "title": "Voice",
+ "description": "Select which Kokoro voice to use. Auto follows the language setting.",
+ "auto": "Auto (By Language)",
+ "searchPlaceholder": "Search voices...",
+ "loading": "Loading voices...",
+ "noResults": "No voices found",
+ "loadError": "Could not load available voices."
+ }
},
"general": {
"title": "Ogólne",
@@ -189,14 +125,26 @@
"auto": "Auto"
}
},
+ "models": {
+ "title": "Modele transkrypcji",
+ "description": "Wybierz model transkrypcji lub pobierz dodatkowe modele. Różne modele oferują różne poziomy dokładności i szybkości.",
+ "yourModels": "Pobrane modele",
+ "availableModels": "Dostępne do pobrania",
+ "downloaded": "Pobrane",
+ "available": "Dostępne do pobrania",
+ "deleteConfirm": "Czy na pewno chcesz usunąć {{modelName}}? Będziesz musiał pobrać go ponownie, aby go użyć.",
+ "deleteActiveConfirm": "{{modelName}} jest Twoim aktywnym modelem. Usunięcie go zatrzyma transkrypcje, dopóki nie wybierzesz nowego modelu. Czy na pewno chcesz kontynuować?",
+ "deleteTitle": "Usuń model",
+ "filters": {
+ "all": "Wszystkie",
+ "multiLanguage": "Wielojęzyczne",
+ "translation": "Tłumaczenie",
+ "allLanguages": "Wszystkie języki"
+ },
+ "noModelsMatch": "Żadne modele nie pasują do tego filtra."
+ },
"sound": {
"title": "Dźwięk",
- "microphone": {
- "title": "Mikrofon",
- "description": "Wybierz preferowane urządzenie mikrofonowe",
- "placeholder": "Wybierz mikrofon...",
- "loading": "Wczytywanie..."
- },
"audioFeedback": {
"label": "Informacja dźwiękowa",
"description": "Odtwarzaj dźwięk przy rozpoczęciu i zakończeniu nagrywania"
@@ -216,9 +164,23 @@
"title": "Zaawansowane",
"groups": {
"app": "Aplikacja",
+ "speech": "Speech",
"history": "Historia",
"experimental": "Eksperymentalne"
},
+ "ttsWorkers": {
+ "title": "TTS Workers",
+ "description": "Number of parallel synthesis engines. Auto uses your CPU core count to decide.",
+ "auto": "Auto"
+ },
+ "ttsSpeed": {
+ "title": "Speech Speed",
+ "description": "Playback speed for text-to-speech output."
+ },
+ "shortenFirstChunk": {
+ "title": "Fast First Response",
+ "description": "Synthesize a shorter first chunk for faster time-to-speech, then use longer chunks."
+ },
"experimentalToggle": {
"label": "Funkcje Eksperymentalne",
"description": "Włącz funkcje eksperymentalne, które są jeszcze w fazie rozwoju."
@@ -244,11 +206,6 @@
"top": "Góra"
}
},
- "translateToEnglish": {
- "label": "Tłumacz na angielski",
- "description": "Automatycznie tłumacz mowę z innych języków na angielski podczas transkrypcji.",
- "descriptionUnsupported": "Tłumaczenie nie jest obsługiwane przez model {{model}}."
- },
"modelUnload": {
"title": "Wyładowanie modelu",
"description": "Automatycznie zwalnia pamięć GPU/CPU po określonym czasie nieużywania",
@@ -308,22 +265,6 @@
"months3": "Po 3 miesiącach",
"placeholder": "Wybierz okres retencji..."
},
- "alwaysOnMicrophone": {
- "label": "Mikrofon zawsze aktywny",
- "description": "Utrzymuj mikrofon aktywny dla szybszej reakcji"
- },
- "clamshellMicrophone": {
- "title": "Mikrofon przy zamkniętej pokrywie",
- "description": "Mikrofon używany, gdy pokrywa laptopa jest zamknięta"
- },
- "muteWhileRecording": {
- "label": "Wycisz podczas nagrywania",
- "description": "Wycisz dźwięk systemu podczas nagrywania"
- },
- "appendTrailingSpace": {
- "label": "Dodaj spację na końcu",
- "description": "Dodaj spację po wklejonej transkrypcji"
- },
"keyboardImplementation": {
"title": "Keyboard Implementation",
"description": "Choose the keyboard shortcut backend.",
@@ -357,10 +298,10 @@
},
"acknowledgments": {
"title": "Podziękowania",
- "whisper": {
- "title": "Whisper.cpp",
- "description": "Wydajne wykonywanie modelu rozpoznawania mowy Whisper od OpenAI",
- "details": "Parrot używa Whisper.cpp do szybkiego, lokalnego przetwarzania mowy na tekst. Dzięki niesamowitej pracy Georgi Gerganova i współtwórców."
+ "handy": {
+ "title": "Handy",
+ "description": "The original project that Parrot was forked from",
+ "details": "Parrot is a fork of Handy by CJ Pais. Thanks for building the foundation that made Parrot possible."
}
}
}
@@ -415,7 +356,8 @@
"description": "Zmień język interfejsu Parrot"
},
"overlay": {
- "transcribing": "Transkrypcja...",
- "processing": "Przetwarzanie..."
+ "speaking": "Speaking...",
+ "processing": "Przetwarzanie...",
+ "reading": "Reading:"
}
}
diff --git a/src/i18n/locales/pt/translation.json b/src/i18n/locales/pt/translation.json
index ec676b4..da147a6 100644
--- a/src/i18n/locales/pt/translation.json
+++ b/src/i18n/locales/pt/translation.json
@@ -25,56 +25,7 @@
"accuracy": "precisão",
"speed": "velocidade"
},
- "models": {
- "small": {
- "name": "Whisper Small",
- "description": "Rápido e razoavelmente preciso."
- },
- "medium": {
- "name": "Whisper Medium",
- "description": "Boa precisão, velocidade média"
- },
- "turbo": {
- "name": "Whisper Turbo",
- "description": "Precisão e velocidade balanceadas."
- },
- "large": {
- "name": "Whisper Large",
- "description": "Boa precisão, mas lento."
- },
- "parakeet-tdt-0.6b-v2": {
- "name": "Parakeet V2",
- "description": "Apenas inglês. O melhor modelo para falantes de inglês."
- },
- "parakeet-tdt-0.6b-v3": {
- "name": "Parakeet V3",
- "description": "Rápido e preciso"
- },
- "moonshine-base": {
- "name": "Moonshine Base",
- "description": "Muito rápido, apenas inglês. Lida bem com sotaques."
- },
- "moonshine-tiny-streaming-en": {
- "name": "Moonshine V2 Tiny",
- "description": "Ultrarrápido, apenas inglês"
- },
- "moonshine-small-streaming-en": {
- "name": "Moonshine V2 Small",
- "description": "Rápido, apenas inglês. Bom equilíbrio entre velocidade e precisão."
- },
- "moonshine-medium-streaming-en": {
- "name": "Moonshine V2 Medium",
- "description": "Apenas inglês. Alta qualidade."
- },
- "breeze-asr": {
- "name": "Breeze ASR",
- "description": "Otimizado para mandarim taiwanês. Suporte para alternância de código."
- },
- "sense-voice-int8": {
- "name": "SenseVoice",
- "description": "Muito rápido. Chinês, inglês, japonês, coreano, cantonês."
- }
- },
+ "models": {},
"errors": {
"loadModels": "Falha ao carregar modelos disponíveis",
"downloadModel": "Falha ao baixar modelo: {{error}}"
@@ -82,10 +33,6 @@
"permissions": {
"title": "Permissões Necessárias",
"description": "O Parrot precisa de algumas permissões para funcionar corretamente.",
- "microphone": {
- "title": "Acesso ao Microfone",
- "description": "Necessário para ouvir sua voz para transcrição."
- },
"accessibility": {
"title": "Acesso à Acessibilidade",
"description": "Necessário para digitar o texto transcrito em seus aplicativos."
@@ -103,6 +50,7 @@
"modelSelector": {
"custom": "Personalizado",
"active": "Ativo",
+ "switching": "Alternando...",
"noModelsAvailable": "Nenhum modelo disponível",
"extracting": "Extraindo {{modelName}}...",
"extractingMultiple": "Extraindo {{count}} modelos...",
@@ -116,18 +64,15 @@
"modelUnloaded": "Modelo Descarregado",
"noModelDownloadRequired": "Sem Modelo - Download Necessário",
"deleteModel": "Excluir {{modelName}}",
- "switching": "Alternando...",
"downloadSpeed": "{{speed}} MB/s",
+ "cancel": "Cancelar",
+ "cancelDownload": "Cancelar download",
"capabilities": {
"languageSelection": "Suporta vários idiomas de entrada",
- "multiLanguage": "Multi-idioma",
- "translation": "Pode traduzir para inglês",
- "translate": "Traduzir para inglês",
"singleLanguage": "Suporta apenas este idioma",
+ "multiLanguage": "Multi-idioma",
"languageOnly": "Apenas {{language}}"
- },
- "cancel": "Cancelar",
- "cancelDownload": "Cancelar download"
+ }
},
"settings": {
"howToUseTitle": "Como usar",
@@ -135,7 +80,16 @@
"howToUseStep2": "Pressione
para ler em voz alta",
"modelSettings": {
"title": "Configurações de {{model}}",
- "noSettingsNeeded": "Este modelo funciona automaticamente sem necessidade de configuração."
+ "noSettingsNeeded": "Este modelo funciona automaticamente sem necessidade de configuração.",
+ "kokoroVoice": {
+ "title": "Voice",
+ "description": "Select which Kokoro voice to use. Auto follows the language setting.",
+ "auto": "Auto (By Language)",
+ "searchPlaceholder": "Search voices...",
+ "loading": "Loading voices...",
+ "noResults": "No voices found",
+ "loadError": "Could not load available voices."
+ }
},
"general": {
"title": "Geral",
@@ -174,6 +128,8 @@
"models": {
"title": "Modelos de Transcrição",
"description": "Selecione um modelo de transcrição ou baixe modelos adicionais. Diferentes modelos oferecem diferentes níveis de precisão e velocidade.",
+ "yourModels": "Modelos baixados",
+ "availableModels": "Disponíveis para download",
"downloaded": "Baixados",
"available": "Disponíveis para Download",
"deleteConfirm": "Tem certeza de que deseja excluir {{modelName}}? Você precisará baixá-lo novamente para usá-lo.",
@@ -185,18 +141,10 @@
"translation": "Tradução",
"allLanguages": "Todos os Idiomas"
},
- "noModelsMatch": "Nenhum modelo corresponde a este filtro.",
- "yourModels": "Modelos baixados",
- "availableModels": "Disponíveis para download"
+ "noModelsMatch": "Nenhum modelo corresponde a este filtro."
},
"sound": {
"title": "Som",
- "microphone": {
- "title": "Microfone",
- "description": "Selecione seu dispositivo de microfone preferido",
- "placeholder": "Selecionar microfone...",
- "loading": "Carregando..."
- },
"audioFeedback": {
"label": "Feedback de Áudio",
"description": "Reproduzir som quando a gravação iniciar e parar"
@@ -216,9 +164,23 @@
"title": "Avançado",
"groups": {
"app": "Aplicativo",
+ "speech": "Speech",
"history": "Histórico",
"experimental": "Experimental"
},
+ "ttsWorkers": {
+ "title": "TTS Workers",
+ "description": "Number of parallel synthesis engines. Auto uses your CPU core count to decide.",
+ "auto": "Auto"
+ },
+ "ttsSpeed": {
+ "title": "Speech Speed",
+ "description": "Playback speed for text-to-speech output."
+ },
+ "shortenFirstChunk": {
+ "title": "Fast First Response",
+ "description": "Synthesize a shorter first chunk for faster time-to-speech, then use longer chunks."
+ },
"experimentalToggle": {
"label": "Recursos Experimentais",
"description": "Ativar recursos experimentais que ainda estão em desenvolvimento."
@@ -244,11 +206,6 @@
"top": "Superior"
}
},
- "translateToEnglish": {
- "label": "Traduzir para Inglês",
- "description": "Traduzir automaticamente fala de outros idiomas para inglês durante a transcrição.",
- "descriptionUnsupported": "Tradução não é suportada pelo modelo {{model}}."
- },
"modelUnload": {
"title": "Descarregar Modelo",
"description": "Liberar automaticamente memória GPU/CPU quando o modelo não for usado pelo tempo especificado",
@@ -308,22 +265,6 @@
"months3": "Após 3 meses",
"placeholder": "Selecionar período de retenção..."
},
- "alwaysOnMicrophone": {
- "label": "Microfone Sempre Ativo",
- "description": "Manter microfone ativo para resposta mais rápida"
- },
- "clamshellMicrophone": {
- "title": "Microfone em Modo Fechado",
- "description": "Microfone a usar quando a tampa do laptop está fechada"
- },
- "muteWhileRecording": {
- "label": "Silenciar Durante Gravação",
- "description": "Silenciar áudio do sistema durante a gravação"
- },
- "appendTrailingSpace": {
- "label": "Adicionar Espaço Final",
- "description": "Adicionar um espaço após a transcrição colada"
- },
"keyboardImplementation": {
"title": "Keyboard Implementation",
"description": "Choose the keyboard shortcut backend.",
@@ -357,10 +298,10 @@
},
"acknowledgments": {
"title": "Agradecimentos",
- "whisper": {
- "title": "Whisper.cpp",
- "description": "Inferência de alto desempenho do modelo de reconhecimento automático de fala Whisper da OpenAI",
- "details": "O Parrot usa Whisper.cpp para processamento rápido e local de fala para texto. Agradecemos ao incrível trabalho de Georgi Gerganov e colaboradores."
+ "handy": {
+ "title": "Handy",
+ "description": "The original project that Parrot was forked from",
+ "details": "Parrot is a fork of Handy by CJ Pais. Thanks for building the foundation that made Parrot possible."
}
}
}
@@ -415,7 +356,8 @@
"description": "Alterar o idioma da interface do Parrot"
},
"overlay": {
- "transcribing": "Transcrevendo...",
- "processing": "Processando..."
+ "speaking": "Speaking...",
+ "processing": "Processando...",
+ "reading": "Reading:"
}
}
diff --git a/src/i18n/locales/ru/translation.json b/src/i18n/locales/ru/translation.json
index 8e07526..6ad7aa8 100644
--- a/src/i18n/locales/ru/translation.json
+++ b/src/i18n/locales/ru/translation.json
@@ -25,56 +25,7 @@
"accuracy": "точность",
"speed": "скорость"
},
- "models": {
- "small": {
- "name": "Whisper Small",
- "description": "Быстро и достаточно точно."
- },
- "medium": {
- "name": "Whisper Medium",
- "description": "Хорошая точность, средняя скорость."
- },
- "turbo": {
- "name": "Whisper Turbo",
- "description": "Сбалансированная точность и скорость."
- },
- "large": {
- "name": "Whisper Large",
- "description": "Хорошая точность, но медленная."
- },
- "parakeet-tdt-0.6b-v2": {
- "name": "Parakeet V2",
- "description": "Только английский. Лучшая модель для англоговорящих."
- },
- "parakeet-tdt-0.6b-v3": {
- "name": "Parakeet V3",
- "description": "Быстро и точно"
- },
- "moonshine-base": {
- "name": "Moonshine Base",
- "description": "Очень быстрый, только английский. Хорошо справляется с акцентами."
- },
- "moonshine-tiny-streaming-en": {
- "name": "Moonshine V2 Tiny",
- "description": "Сверхбыстрый, только английский"
- },
- "moonshine-small-streaming-en": {
- "name": "Moonshine V2 Small",
- "description": "Быстрый, только английский. Хороший баланс скорости и точности."
- },
- "moonshine-medium-streaming-en": {
- "name": "Moonshine V2 Medium",
- "description": "Только английский. Высокое качество."
- },
- "breeze-asr": {
- "name": "Breeze ASR",
- "description": "Оптимизирован для тайваньского мандаринского. Поддержка переключения языков."
- },
- "sense-voice-int8": {
- "name": "SenseVoice",
- "description": "Очень быстрый. Китайский, английский, японский, корейский, кантонский."
- }
- },
+ "models": {},
"errors": {
"loadModels": "Не удалось загрузить доступные модели.",
"downloadModel": "Не удалось загрузить модель: {{error}}."
@@ -82,10 +33,6 @@
"permissions": {
"title": "Требуются разрешения",
"description": "Parrot требуются некоторые разрешения для корректной работы.",
- "microphone": {
- "title": "Доступ к микрофону",
- "description": "Необходим для прослушивания вашего голоса для транскрипции."
- },
"accessibility": {
"title": "Доступ к универсальному доступу",
"description": "Необходим для ввода расшифрованного текста в ваши приложения."
@@ -118,16 +65,14 @@
"noModelDownloadRequired": "Нет модели – требуется загрузка",
"deleteModel": "Удалить {{modelName}}",
"downloadSpeed": "{{speed}} МБ/с",
+ "cancel": "Отмена",
+ "cancelDownload": "Отменить загрузку",
"capabilities": {
"languageSelection": "Поддерживает несколько языков ввода",
- "multiLanguage": "Многоязычный",
- "translation": "Может переводить на английский",
- "translate": "Перевести на английский",
"singleLanguage": "Поддерживает только этот язык",
+ "multiLanguage": "Многоязычный",
"languageOnly": "Только {{language}}"
- },
- "cancel": "Отмена",
- "cancelDownload": "Отменить загрузку"
+ }
},
"settings": {
"howToUseTitle": "Как использовать",
@@ -135,25 +80,16 @@
"howToUseStep2": "Нажмите
, чтобы прочитать вслух",
"modelSettings": {
"title": "Настройки {{model}}",
- "noSettingsNeeded": "Эта модель работает автоматически без необходимости настройки."
- },
- "models": {
- "title": "Модели транскрипции",
- "description": "Выберите модель транскрипции или загрузите дополнительные модели. Разные модели предлагают разные уровни точности и скорости.",
- "downloaded": "Загружено",
- "available": "Доступно для загрузки",
- "deleteConfirm": "Вы уверены, что хотите удалить {{modelName}}? Вам нужно будет загрузить её снова, чтобы использовать.",
- "deleteActiveConfirm": "{{modelName}} — ваша активная модель. Удаление остановит транскрипцию, пока вы не выберете новую модель. Вы уверены?",
- "deleteTitle": "Удалить модель",
- "filters": {
- "all": "Все",
- "multiLanguage": "Многоязычные",
- "translation": "Перевод",
- "allLanguages": "Все языки"
- },
- "noModelsMatch": "Нет моделей, соответствующих этому фильтру.",
- "yourModels": "Загруженные модели",
- "availableModels": "Доступны для загрузки"
+ "noSettingsNeeded": "Эта модель работает автоматически без необходимости настройки.",
+ "kokoroVoice": {
+ "title": "Voice",
+ "description": "Select which Kokoro voice to use. Auto follows the language setting.",
+ "auto": "Auto (By Language)",
+ "searchPlaceholder": "Search voices...",
+ "loading": "Loading voices...",
+ "noResults": "No voices found",
+ "loadError": "Could not load available voices."
+ }
},
"general": {
"title": "Общие",
@@ -189,14 +125,26 @@
"auto": "Авто"
}
},
+ "models": {
+ "title": "Модели транскрипции",
+ "description": "Выберите модель транскрипции или загрузите дополнительные модели. Разные модели предлагают разные уровни точности и скорости.",
+ "yourModels": "Загруженные модели",
+ "availableModels": "Доступны для загрузки",
+ "downloaded": "Загружено",
+ "available": "Доступно для загрузки",
+ "deleteConfirm": "Вы уверены, что хотите удалить {{modelName}}? Вам нужно будет загрузить её снова, чтобы использовать.",
+ "deleteActiveConfirm": "{{modelName}} — ваша активная модель. Удаление остановит транскрипцию, пока вы не выберете новую модель. Вы уверены?",
+ "deleteTitle": "Удалить модель",
+ "filters": {
+ "all": "Все",
+ "multiLanguage": "Многоязычные",
+ "translation": "Перевод",
+ "allLanguages": "Все языки"
+ },
+ "noModelsMatch": "Нет моделей, соответствующих этому фильтру."
+ },
"sound": {
"title": "Звук",
- "microphone": {
- "title": "Микрофон",
- "description": "Выберите предпочитаемое микрофонное устройство",
- "placeholder": "Выбрать микрофон...",
- "loading": "Загрузка..."
- },
"audioFeedback": {
"label": "Аудио обратная связь",
"description": "Воспроизведение звука при запуске и остановке записи"
@@ -216,9 +164,23 @@
"title": "Продвинутые",
"groups": {
"app": "Приложение",
+ "speech": "Speech",
"history": "История",
"experimental": "Экспериментальное"
},
+ "ttsWorkers": {
+ "title": "TTS Workers",
+ "description": "Number of parallel synthesis engines. Auto uses your CPU core count to decide.",
+ "auto": "Auto"
+ },
+ "ttsSpeed": {
+ "title": "Speech Speed",
+ "description": "Playback speed for text-to-speech output."
+ },
+ "shortenFirstChunk": {
+ "title": "Fast First Response",
+ "description": "Synthesize a shorter first chunk for faster time-to-speech, then use longer chunks."
+ },
"experimentalToggle": {
"label": "Экспериментальные функции",
"description": "Включить экспериментальные функции, которые находятся в разработке."
@@ -244,11 +206,6 @@
"top": "Сверху"
}
},
- "translateToEnglish": {
- "label": "Перевести на английский",
- "description": "Автоматически переводить речь с других языков на английский во время транскрипции.",
- "descriptionUnsupported": "Перевод не поддерживается моделью {{model}}."
- },
"modelUnload": {
"title": "Выгрузить модель",
"description": "Автоматически освобождать память графического процессора/процессора, если модель не использовалась в течение указанного времени.",
@@ -308,22 +265,6 @@
"months3": "Через 3 месяца",
"placeholder": "Выберите срок хранения..."
},
- "alwaysOnMicrophone": {
- "label": "Всегда включенный микрофон",
- "description": "Держите микрофон активным для более быстрого ответа"
- },
- "clamshellMicrophone": {
- "title": "Раскладной микрофон",
- "description": "Микрофон для использования при закрытой крышке ноутбука"
- },
- "muteWhileRecording": {
- "label": "Отключить звук во время записи",
- "description": "Отключение звука системы во время записи"
- },
- "appendTrailingSpace": {
- "label": "Добавить конечный пробел",
- "description": "Добавить пробел после вставленной транскрипции"
- },
"keyboardImplementation": {
"title": "Keyboard Implementation",
"description": "Choose the keyboard shortcut backend.",
@@ -357,10 +298,10 @@
},
"acknowledgments": {
"title": "Благодарности",
- "whisper": {
- "title": "Whisper.cpp",
- "description": "Высокопроизводительный вывод модели автоматического распознавания речи OpenAI Whisper",
- "details": "Parrot использует Whisper.cpp для быстрой локальной обработки речи в текст. Спасибо великолепной работе Георгия Герганова и его участников."
+ "handy": {
+ "title": "Handy",
+ "description": "The original project that Parrot was forked from",
+ "details": "Parrot is a fork of Handy by CJ Pais. Thanks for building the foundation that made Parrot possible."
}
}
}
@@ -415,7 +356,8 @@
"description": "Изменить языка интерфейса Parrot"
},
"overlay": {
- "transcribing": "Расшифровка...",
- "processing": "Обработка..."
+ "speaking": "Speaking...",
+ "processing": "Обработка...",
+ "reading": "Reading:"
}
}
diff --git a/src/i18n/locales/tr/translation.json b/src/i18n/locales/tr/translation.json
index 894b4c7..7b6a098 100644
--- a/src/i18n/locales/tr/translation.json
+++ b/src/i18n/locales/tr/translation.json
@@ -25,56 +25,7 @@
"accuracy": "doğruluk",
"speed": "hız"
},
- "models": {
- "small": {
- "name": "Whisper Small",
- "description": "Hızlı ve oldukça doğru."
- },
- "medium": {
- "name": "Whisper Medium",
- "description": "İyi doğruluk, orta hız."
- },
- "turbo": {
- "name": "Whisper Turbo",
- "description": "Dengeli doğruluk ve hız."
- },
- "large": {
- "name": "Whisper Large",
- "description": "İyi doğruluk, ancak yavaş."
- },
- "parakeet-tdt-0.6b-v2": {
- "name": "Parakeet V2",
- "description": "Yalnızca İngilizce. İngilizce konuşanlar için en iyi model."
- },
- "parakeet-tdt-0.6b-v3": {
- "name": "Parakeet V3",
- "description": "Hızlı ve doğru."
- },
- "moonshine-base": {
- "name": "Moonshine Base",
- "description": "Çok hızlı, yalnızca İngilizce. Aksanları iyi işler."
- },
- "moonshine-tiny-streaming-en": {
- "name": "Moonshine V2 Tiny",
- "description": "Ultra hızlı, yalnızca İngilizce"
- },
- "moonshine-small-streaming-en": {
- "name": "Moonshine V2 Small",
- "description": "Hızlı, yalnızca İngilizce. Hız ve doğruluk arasında iyi denge."
- },
- "moonshine-medium-streaming-en": {
- "name": "Moonshine V2 Medium",
- "description": "Yalnızca İngilizce. Yüksek kalite."
- },
- "breeze-asr": {
- "name": "Breeze ASR",
- "description": "Tayvan Mandarin Çincesi için optimize edilmiş. Dil değiştirme desteği."
- },
- "sense-voice-int8": {
- "name": "SenseVoice",
- "description": "Çok hızlı. Çince, İngilizce, Japonca, Korece, Kantonca."
- }
- },
+ "models": {},
"errors": {
"loadModels": "Mevcut modeller yüklenemedi",
"downloadModel": "Model indirilemedi: {{error}}"
@@ -82,10 +33,6 @@
"permissions": {
"title": "İzinler Gerekli",
"description": "Parrot'nin düzgün çalışabilmesi için birkaç izne ihtiyacı var.",
- "microphone": {
- "title": "Mikrofon Erişimi",
- "description": "Sesinizi transkripsiyon için alabilmek için gereklidir."
- },
"accessibility": {
"title": "Erişilebilirlik Erişimi",
"description": "Transkribe edilen metni uygulamalarınıza yazabilmek için gereklidir."
@@ -103,6 +50,7 @@
"modelSelector": {
"custom": "Özel",
"active": "Aktif",
+ "switching": "Değiştiriliyor...",
"noModelsAvailable": "Kullanılabilir model yok",
"extracting": "{{modelName}} çıkarılıyor...",
"extractingMultiple": "{{count}} model çıkarılıyor...",
@@ -116,18 +64,15 @@
"modelUnloaded": "Model Boşaltıldı",
"noModelDownloadRequired": "Model Yok – İndirme Gerekli",
"deleteModel": "{{modelName}} Sil",
- "switching": "Değiştiriliyor...",
"downloadSpeed": "{{speed}} MB/s",
+ "cancel": "İptal",
+ "cancelDownload": "İndirmeyi iptal et",
"capabilities": {
"languageSelection": "Birden fazla giriş dilini destekler",
- "multiLanguage": "Çok dilli",
- "translation": "İngilizce'ye çevirebilir",
- "translate": "İngilizce'ye çevir",
"singleLanguage": "Yalnızca bu dili destekler",
+ "multiLanguage": "Çok dilli",
"languageOnly": "Yalnızca {{language}}"
- },
- "cancel": "İptal",
- "cancelDownload": "İndirmeyi iptal et"
+ }
},
"settings": {
"howToUseTitle": "Nasıl kullanılır",
@@ -135,25 +80,16 @@
"howToUseStep2": "Sesli okumak için
tuşuna basın",
"modelSettings": {
"title": "{{model}} Ayarları",
- "noSettingsNeeded": "Bu model yapılandırma gerektirmeden otomatik olarak çalışır."
- },
- "models": {
- "title": "Transkripsiyon Modelleri",
- "description": "Bir transkripsiyon modeli seçin veya ek modeller indirin. Farklı modeller değişen doğruluk ve hız seviyeleri sunar.",
- "downloaded": "İndirildi",
- "available": "İndirilebilir",
- "deleteConfirm": "{{modelName}} modelini silmek istediğinizden emin misiniz? Kullanmak için tekrar indirmeniz gerekecek.",
- "deleteActiveConfirm": "{{modelName}} aktif modelinizdir. Silmek, yeni bir model seçene kadar transkripsiyonları durduracaktır. Emin misiniz?",
- "deleteTitle": "Modeli Sil",
- "filters": {
- "all": "Tümü",
- "multiLanguage": "Çok dilli",
- "translation": "Çeviri",
- "allLanguages": "Tüm Diller"
- },
- "noModelsMatch": "Bu filtreyle eşleşen model yok.",
- "yourModels": "İndirilen modeller",
- "availableModels": "İndirilebilir"
+ "noSettingsNeeded": "Bu model yapılandırma gerektirmeden otomatik olarak çalışır.",
+ "kokoroVoice": {
+ "title": "Voice",
+ "description": "Select which Kokoro voice to use. Auto follows the language setting.",
+ "auto": "Auto (By Language)",
+ "searchPlaceholder": "Search voices...",
+ "loading": "Loading voices...",
+ "noResults": "No voices found",
+ "loadError": "Could not load available voices."
+ }
},
"general": {
"title": "Genel",
@@ -189,14 +125,26 @@
"auto": "Otomatik"
}
},
+ "models": {
+ "title": "Transkripsiyon Modelleri",
+ "description": "Bir transkripsiyon modeli seçin veya ek modeller indirin. Farklı modeller değişen doğruluk ve hız seviyeleri sunar.",
+ "yourModels": "İndirilen modeller",
+ "availableModels": "İndirilebilir",
+ "downloaded": "İndirildi",
+ "available": "İndirilebilir",
+ "deleteConfirm": "{{modelName}} modelini silmek istediğinizden emin misiniz? Kullanmak için tekrar indirmeniz gerekecek.",
+ "deleteActiveConfirm": "{{modelName}} aktif modelinizdir. Silmek, yeni bir model seçene kadar transkripsiyonları durduracaktır. Emin misiniz?",
+ "deleteTitle": "Modeli Sil",
+ "filters": {
+ "all": "Tümü",
+ "multiLanguage": "Çok dilli",
+ "translation": "Çeviri",
+ "allLanguages": "Tüm Diller"
+ },
+ "noModelsMatch": "Bu filtreyle eşleşen model yok."
+ },
"sound": {
"title": "Ses",
- "microphone": {
- "title": "Mikrofon",
- "description": "Tercih ettiğiniz mikrofon cihazını seçin",
- "placeholder": "Mikrofon seçin...",
- "loading": "Yükleniyor..."
- },
"audioFeedback": {
"label": "Sesli Geri Bildirim",
"description": "Kayıt başladığında ve bittiğinde ses çalar"
@@ -216,9 +164,23 @@
"title": "Gelişmiş",
"groups": {
"app": "Uygulama",
+ "speech": "Speech",
"history": "Geçmiş",
"experimental": "Deneysel"
},
+ "ttsWorkers": {
+ "title": "TTS Workers",
+ "description": "Number of parallel synthesis engines. Auto uses your CPU core count to decide.",
+ "auto": "Auto"
+ },
+ "ttsSpeed": {
+ "title": "Speech Speed",
+ "description": "Playback speed for text-to-speech output."
+ },
+ "shortenFirstChunk": {
+ "title": "Fast First Response",
+ "description": "Synthesize a shorter first chunk for faster time-to-speech, then use longer chunks."
+ },
"experimentalToggle": {
"label": "Deneysel Özellikler",
"description": "Hala geliştirme aşamasında olan deneysel özellikleri etkinleştir."
@@ -244,11 +206,6 @@
"top": "Üst"
}
},
- "translateToEnglish": {
- "label": "İngilizceye Çevir",
- "description": "Transkripsiyon sırasında diğer dillerden İngilizceye otomatik olarak çevirir.",
- "descriptionUnsupported": "Çeviri {{model}} modeli tarafından desteklenmiyor."
- },
"modelUnload": {
"title": "Modeli Boşalt",
"description": "Belirtilen süre boyunca kullanılmadığında modelin GPU/CPU belleğini otomatik olarak serbest bırakır.",
@@ -308,22 +265,6 @@
"months3": "3 ay sonra",
"placeholder": "Saklama süresi seçin..."
},
- "alwaysOnMicrophone": {
- "label": "Mikrofon Her Zaman Açık",
- "description": "Daha hızlı yanıt için mikrofonu aktif tutar"
- },
- "clamshellMicrophone": {
- "title": "Kapalı Kapak Mikrofonu",
- "description": "Dizüstü bilgisayar kapağı kapalıyken kullanılacak mikrofon"
- },
- "muteWhileRecording": {
- "label": "Kayıt Sırasında Sessize Al",
- "description": "Kayıt sırasında sistem sesini kapatır"
- },
- "appendTrailingSpace": {
- "label": "Sonuna Boşluk Ekle",
- "description": "Yapıştırılan transkripsiyondan sonra boşluk ekler"
- },
"keyboardImplementation": {
"title": "Keyboard Implementation",
"description": "Choose the keyboard shortcut backend.",
@@ -357,10 +298,10 @@
},
"acknowledgments": {
"title": "Teşekkürler",
- "whisper": {
- "title": "Whisper.cpp",
- "description": "OpenAI'nin Whisper otomatik konuşma tanıma modelinin yüksek performanslı çıkarımı",
- "details": "Parrot, hızlı ve yerel konuşmadan metne dönüştürme için Whisper.cpp kullanır. Georgi Gerganov ve katkıda bulunanların harika çalışmaları için teşekkür ederiz."
+ "handy": {
+ "title": "Handy",
+ "description": "The original project that Parrot was forked from",
+ "details": "Parrot is a fork of Handy by CJ Pais. Thanks for building the foundation that made Parrot possible."
}
}
}
@@ -415,7 +356,8 @@
"description": "Parrot arayüzünün dilini değiştirin"
},
"overlay": {
- "transcribing": "Transkribe ediliyor...",
- "processing": "İşleniyor..."
+ "speaking": "Speaking...",
+ "processing": "İşleniyor...",
+ "reading": "Reading:"
}
}
diff --git a/src/i18n/locales/uk/translation.json b/src/i18n/locales/uk/translation.json
index 14f224c..df37c21 100644
--- a/src/i18n/locales/uk/translation.json
+++ b/src/i18n/locales/uk/translation.json
@@ -25,56 +25,7 @@
"accuracy": "точність",
"speed": "швидкість"
},
- "models": {
- "small": {
- "name": "Whisper Small",
- "description": "Швидка та досить точна"
- },
- "medium": {
- "name": "Whisper Medium",
- "description": "Хороша точність, середня швидкість"
- },
- "turbo": {
- "name": "Whisper Turbo",
- "description": "Збалансована точність та швидкість"
- },
- "large": {
- "name": "Whisper Large",
- "description": "Хороша точність, але повільна"
- },
- "parakeet-tdt-0.6b-v2": {
- "name": "Parakeet V2",
- "description": "Лише англійська. Найкраща модель для англомовних"
- },
- "parakeet-tdt-0.6b-v3": {
- "name": "Parakeet V3",
- "description": "Швидка та точна"
- },
- "moonshine-base": {
- "name": "Moonshine Base",
- "description": "Дуже швидкий, лише англійська. Добре справляється з акцентами."
- },
- "moonshine-tiny-streaming-en": {
- "name": "Moonshine V2 Tiny",
- "description": "Надшвидкий, лише англійська"
- },
- "moonshine-small-streaming-en": {
- "name": "Moonshine V2 Small",
- "description": "Швидкий, лише англійська. Добрий баланс швидкості та точності."
- },
- "moonshine-medium-streaming-en": {
- "name": "Moonshine V2 Medium",
- "description": "Лише англійська. Висока якість."
- },
- "breeze-asr": {
- "name": "Breeze ASR",
- "description": "Оптимізовано для тайванської мандаринської. Підтримка перемикання мов."
- },
- "sense-voice-int8": {
- "name": "SenseVoice",
- "description": "Дуже швидкий. Китайська, англійська, японська, корейська, кантонська."
- }
- },
+ "models": {},
"errors": {
"loadModels": "Не вдалося завантажити доступні моделі",
"downloadModel": "Не вдалося завантажити модель: {{error}}"
@@ -82,10 +33,6 @@
"permissions": {
"title": "Потрібні дозволи",
"description": "Parrot потребує деяких дозволів для коректної роботи.",
- "microphone": {
- "title": "Доступ до мікрофона",
- "description": "Потрібен для прослуховування вашого голосу для транскрипції."
- },
"accessibility": {
"title": "Доступ до доступності",
"description": "Потрібен для введення транскрибованого тексту у ваші додатки."
@@ -103,6 +50,7 @@
"modelSelector": {
"custom": "Користувацька",
"active": "Активна",
+ "switching": "Перемикання...",
"noModelsAvailable": "Немає доступних моделей",
"extracting": "Розпакування {{modelName}}...",
"extractingMultiple": "Розпакування {{count}} моделей...",
@@ -116,18 +64,15 @@
"modelUnloaded": "Модель вивантажена",
"noModelDownloadRequired": "Немає моделі - потрібно завантажити",
"deleteModel": "Видалити {{modelName}}",
- "switching": "Перемикання...",
"downloadSpeed": "{{speed}} MB/s",
+ "cancel": "Скасувати",
+ "cancelDownload": "Скасувати завантаження",
"capabilities": {
"languageSelection": "Підтримує кілька мов введення",
- "multiLanguage": "Багатомовна",
- "translation": "Може перекладати на англійську",
- "translate": "Перекласти на англійську",
"singleLanguage": "Підтримує лише цю мову",
+ "multiLanguage": "Багатомовна",
"languageOnly": "Лише {{language}}"
- },
- "cancel": "Скасувати",
- "cancelDownload": "Скасувати завантаження"
+ }
},
"settings": {
"howToUseTitle": "Як використовувати",
@@ -135,7 +80,16 @@
"howToUseStep2": "Натисніть
, щоб прочитати вголос",
"modelSettings": {
"title": "Налаштування {{model}}",
- "noSettingsNeeded": "Ця модель працює автоматично без потреби в налаштуванні."
+ "noSettingsNeeded": "Ця модель працює автоматично без потреби в налаштуванні.",
+ "kokoroVoice": {
+ "title": "Voice",
+ "description": "Select which Kokoro voice to use. Auto follows the language setting.",
+ "auto": "Auto (By Language)",
+ "searchPlaceholder": "Search voices...",
+ "loading": "Loading voices...",
+ "noResults": "No voices found",
+ "loadError": "Could not load available voices."
+ }
},
"general": {
"title": "Загальні",
@@ -174,6 +128,8 @@
"models": {
"title": "Моделі транскрипції",
"description": "Виберіть модель транскрипції або завантажте додаткові моделі. Різні моделі пропонують різні рівні точності та швидкості.",
+ "yourModels": "Завантажені моделі",
+ "availableModels": "Доступні для завантаження",
"downloaded": "Завантажено",
"available": "Доступні для завантаження",
"deleteConfirm": "Ви впевнені, що хочете видалити {{modelName}}? Вам потрібно буде завантажити її знову, щоб використовувати.",
@@ -185,18 +141,10 @@
"translation": "Переклад",
"allLanguages": "Усі мови"
},
- "noModelsMatch": "Жодна модель не відповідає цьому фільтру.",
- "yourModels": "Завантажені моделі",
- "availableModels": "Доступні для завантаження"
+ "noModelsMatch": "Жодна модель не відповідає цьому фільтру."
},
"sound": {
"title": "Звук",
- "microphone": {
- "title": "Мікрофон",
- "description": "Оберіть бажаний мікрофон",
- "placeholder": "Оберіть мікрофон...",
- "loading": "Завантаження..."
- },
"audioFeedback": {
"label": "Звукове сповіщення",
"description": "Відтворювати звук при початку та зупинці запису"
@@ -216,9 +164,23 @@
"title": "Розширені",
"groups": {
"app": "Додаток",
+ "speech": "Speech",
"history": "Історія",
"experimental": "Експериментальне"
},
+ "ttsWorkers": {
+ "title": "TTS Workers",
+ "description": "Number of parallel synthesis engines. Auto uses your CPU core count to decide.",
+ "auto": "Auto"
+ },
+ "ttsSpeed": {
+ "title": "Speech Speed",
+ "description": "Playback speed for text-to-speech output."
+ },
+ "shortenFirstChunk": {
+ "title": "Fast First Response",
+ "description": "Synthesize a shorter first chunk for faster time-to-speech, then use longer chunks."
+ },
"experimentalToggle": {
"label": "Експериментальні функції",
"description": "Увімкнути експериментальні функції, які ще в розробці."
@@ -244,11 +206,6 @@
"top": "Вгорі"
}
},
- "translateToEnglish": {
- "label": "Перекласти на англійську",
- "description": "Автоматично перекладати мовлення з інших мов англійською під час транскрипції.",
- "descriptionUnsupported": "Переклад не підтримується моделлю {{model}}."
- },
"modelUnload": {
"title": "Вивантаження моделі",
"description": "Автоматично звільняти пам'ять GPU/CPU, коли модель не використовується протягом вказаного часу",
@@ -308,22 +265,6 @@
"months3": "Через 3 місяці",
"placeholder": "Оберіть період зберігання..."
},
- "alwaysOnMicrophone": {
- "label": "Постійно активний мікрофон",
- "description": "Тримати мікрофон активним для швидшого відгуку"
- },
- "clamshellMicrophone": {
- "title": "Мікрофон у закритому режимі",
- "description": "Мікрофон для використання при закритій кришці ноутбука"
- },
- "muteWhileRecording": {
- "label": "Вимкнути звук під час запису",
- "description": "Вимикати системний звук під час запису"
- },
- "appendTrailingSpace": {
- "label": "Додавати пробіл в кінці",
- "description": "Додавати пробіл після вставленої транскрипції"
- },
"keyboardImplementation": {
"title": "Keyboard Implementation",
"description": "Choose the keyboard shortcut backend.",
@@ -357,10 +298,10 @@
},
"acknowledgments": {
"title": "Подяки",
- "whisper": {
- "title": "Whisper.cpp",
- "description": "Високопродуктивний інференс моделі автоматичного розпізнавання мовлення Whisper від OpenAI",
- "details": "Parrot використовує Whisper.cpp для швидкої локальної обробки мовлення в текст. Дякуємо за чудову роботу Георгію Герганову та контриб'юторам."
+ "handy": {
+ "title": "Handy",
+ "description": "The original project that Parrot was forked from",
+ "details": "Parrot is a fork of Handy by CJ Pais. Thanks for building the foundation that made Parrot possible."
}
}
}
@@ -415,7 +356,8 @@
"description": "Змінити мову інтерфейсу Parrot"
},
"overlay": {
- "transcribing": "Обробка...",
- "processing": "Постобробка..."
+ "speaking": "Speaking...",
+ "processing": "Постобробка...",
+ "reading": "Reading:"
}
}
diff --git a/src/i18n/locales/vi/translation.json b/src/i18n/locales/vi/translation.json
index d6138cf..cc63372 100644
--- a/src/i18n/locales/vi/translation.json
+++ b/src/i18n/locales/vi/translation.json
@@ -65,14 +65,14 @@
"noModelDownloadRequired": "Chưa Có Mô Hình - Cần Tải Xuống",
"deleteModel": "Xóa {{modelName}}",
"downloadSpeed": "{{speed}} MB/s",
+ "cancel": "Hủy",
+ "cancelDownload": "Hủy tải xuống",
"capabilities": {
"languageSelection": "Hỗ trợ nhiều ngôn ngữ đầu vào",
- "multiLanguage": "Đa ngôn ngữ",
"singleLanguage": "Chỉ hỗ trợ ngôn ngữ này",
+ "multiLanguage": "Đa ngôn ngữ",
"languageOnly": "Chỉ {{language}}"
- },
- "cancel": "Hủy",
- "cancelDownload": "Hủy tải xuống"
+ }
},
"settings": {
"howToUseTitle": "Cách sử dụng",
@@ -91,24 +91,6 @@
"loadError": "Không thể tải danh sách giọng nói."
}
},
- "models": {
- "title": "Mô hình TTS",
- "description": "Chọn mô hình chuyển đổi văn bản thành giọng nói hoặc tải thêm mô hình.",
- "downloaded": "Đã tải xuống",
- "available": "Có thể tải xuống",
- "deleteConfirm": "Bạn có chắc chắn muốn xóa {{modelName}}? Bạn sẽ cần tải lại để sử dụng.",
- "deleteActiveConfirm": "{{modelName}} là mô hình đang hoạt động của bạn. Xóa nó sẽ dừng phát giọng nói cho đến khi bạn chọn một mô hình mới. Bạn có chắc không?",
- "deleteTitle": "Xóa mô hình",
- "filters": {
- "all": "Tất cả",
- "multiLanguage": "Đa ngôn ngữ",
- "translation": "Dịch thuật",
- "allLanguages": "Tất cả ngôn ngữ"
- },
- "noModelsMatch": "Không có mô hình nào khớp với bộ lọc này.",
- "yourModels": "Mô hình đã tải",
- "availableModels": "Có sẵn để tải xuống"
- },
"general": {
"title": "Chung",
"shortcut": {
@@ -143,6 +125,24 @@
"auto": "Tự động"
}
},
+ "models": {
+ "title": "Mô hình TTS",
+ "description": "Chọn mô hình chuyển đổi văn bản thành giọng nói hoặc tải thêm mô hình.",
+ "yourModels": "Mô hình đã tải",
+ "availableModels": "Có sẵn để tải xuống",
+ "downloaded": "Đã tải xuống",
+ "available": "Có thể tải xuống",
+ "deleteConfirm": "Bạn có chắc chắn muốn xóa {{modelName}}? Bạn sẽ cần tải lại để sử dụng.",
+ "deleteActiveConfirm": "{{modelName}} là mô hình đang hoạt động của bạn. Xóa nó sẽ dừng phát giọng nói cho đến khi bạn chọn một mô hình mới. Bạn có chắc không?",
+ "deleteTitle": "Xóa mô hình",
+ "filters": {
+ "all": "Tất cả",
+ "multiLanguage": "Đa ngôn ngữ",
+ "translation": "Dịch thuật",
+ "allLanguages": "Tất cả ngôn ngữ"
+ },
+ "noModelsMatch": "Không có mô hình nào khớp với bộ lọc này."
+ },
"sound": {
"title": "Âm thanh",
"audioFeedback": {
@@ -164,9 +164,23 @@
"title": "Nâng cao",
"groups": {
"app": "Ứng dụng",
+ "speech": "Speech",
"history": "Lịch sử",
"experimental": "Thử nghiệm"
},
+ "ttsWorkers": {
+ "title": "TTS Workers",
+ "description": "Number of parallel synthesis engines. Auto uses your CPU core count to decide.",
+ "auto": "Auto"
+ },
+ "ttsSpeed": {
+ "title": "Speech Speed",
+ "description": "Playback speed for text-to-speech output."
+ },
+ "shortenFirstChunk": {
+ "title": "Fast First Response",
+ "description": "Synthesize a shorter first chunk for faster time-to-speech, then use longer chunks."
+ },
"experimentalToggle": {
"label": "Tính năng thử nghiệm",
"description": "Bật các tính năng thử nghiệm đang trong quá trình phát triển."
@@ -343,6 +357,7 @@
},
"overlay": {
"speaking": "Đang phát giọng nói...",
- "processing": "Đang xử lý..."
+ "processing": "Đang xử lý...",
+ "reading": "Reading:"
}
}
diff --git a/src/i18n/locales/zh-TW/translation.json b/src/i18n/locales/zh-TW/translation.json
index b4bd1c8..8e87876 100644
--- a/src/i18n/locales/zh-TW/translation.json
+++ b/src/i18n/locales/zh-TW/translation.json
@@ -25,56 +25,7 @@
"accuracy": "準確度",
"speed": "速度"
},
- "models": {
- "small": {
- "name": "Whisper Small",
- "description": "快速且相當準確"
- },
- "medium": {
- "name": "Whisper Medium",
- "description": "準確度高,速度適中"
- },
- "turbo": {
- "name": "Whisper Turbo",
- "description": "準確度和速度均衡"
- },
- "large": {
- "name": "Whisper Large",
- "description": "準確度高,但速度較慢"
- },
- "parakeet-tdt-0.6b-v2": {
- "name": "Parakeet V2",
- "description": "僅支援英語,英語使用者的最佳模型"
- },
- "parakeet-tdt-0.6b-v3": {
- "name": "Parakeet V3",
- "description": "快速且準確"
- },
- "moonshine-base": {
- "name": "Moonshine Base",
- "description": "速度極快,僅支援英語,擅長處理各種口音"
- },
- "moonshine-tiny-streaming-en": {
- "name": "Moonshine V2 Tiny",
- "description": "超快速,僅支援英語"
- },
- "moonshine-small-streaming-en": {
- "name": "Moonshine V2 Small",
- "description": "快速,僅支援英語。速度與準確度的良好平衡。"
- },
- "moonshine-medium-streaming-en": {
- "name": "Moonshine V2 Medium",
- "description": "僅支援英語。高品質。"
- },
- "breeze-asr": {
- "name": "Breeze ASR",
- "description": "針對臺灣華語最佳化。支援語碼轉換。"
- },
- "sense-voice-int8": {
- "name": "SenseVoice",
- "description": "速度極快。支援中文、英語、日語、韓語、粵語。"
- }
- },
+ "models": {},
"errors": {
"loadModels": "無法載入可用模型",
"downloadModel": "模型下載失敗: {{error}}"
@@ -82,10 +33,6 @@
"permissions": {
"title": "需要權限",
"description": "Parrot 需要一些權限才能正常運作",
- "microphone": {
- "title": "麥克風存取",
- "description": "需要聽取您的語音進行轉錄"
- },
"accessibility": {
"title": "輔助使用存取",
"description": "需要將轉錄文字輸入到您的應用程式中"
@@ -124,9 +71,7 @@
"languageSelection": "支援多種輸入語言",
"singleLanguage": "僅支援此語言",
"multiLanguage": "多語言",
- "languageOnly": "僅 {{language}}",
- "translation": "可翻譯為英語",
- "translate": "翻譯為英語"
+ "languageOnly": "僅 {{language}}"
}
},
"settings": {
@@ -135,7 +80,16 @@
"howToUseStep2": "按
朗讀",
"modelSettings": {
"title": "{{model}} 設定",
- "noSettingsNeeded": "此模型自動運行,無需設定"
+ "noSettingsNeeded": "此模型自動運行,無需設定",
+ "kokoroVoice": {
+ "title": "Voice",
+ "description": "Select which Kokoro voice to use. Auto follows the language setting.",
+ "auto": "Auto (By Language)",
+ "searchPlaceholder": "Search voices...",
+ "loading": "Loading voices...",
+ "noResults": "No voices found",
+ "loadError": "Could not load available voices."
+ }
},
"general": {
"title": "一般",
@@ -191,12 +145,6 @@
},
"sound": {
"title": "聲音",
- "microphone": {
- "title": "麥克風",
- "description": "選擇您偏好的麥克風裝置",
- "placeholder": "選擇麥克風...",
- "loading": "載入中..."
- },
"audioFeedback": {
"label": "聲音回饋",
"description": "錄製開始和停止時播放聲音"
@@ -216,9 +164,23 @@
"title": "進階",
"groups": {
"app": "應用程式",
+ "speech": "Speech",
"history": "歷史",
"experimental": "實驗性"
},
+ "ttsWorkers": {
+ "title": "TTS Workers",
+ "description": "Number of parallel synthesis engines. Auto uses your CPU core count to decide.",
+ "auto": "Auto"
+ },
+ "ttsSpeed": {
+ "title": "Speech Speed",
+ "description": "Playback speed for text-to-speech output."
+ },
+ "shortenFirstChunk": {
+ "title": "Fast First Response",
+ "description": "Synthesize a shorter first chunk for faster time-to-speech, then use longer chunks."
+ },
"experimentalToggle": {
"label": "實驗性功能",
"description": "啟用仍在開發中的實驗性功能"
@@ -244,11 +206,6 @@
"top": "頂部"
}
},
- "translateToEnglish": {
- "label": "翻譯為英語",
- "description": "在轉錄過程中自動將其他語言的語音翻譯為英語",
- "descriptionUnsupported": "{{model}} 模型不支援翻譯功能"
- },
"modelUnload": {
"title": "卸載模型",
"description": "當模型在指定時間內未使用時自動釋放 GPU/CPU 記憶體",
@@ -308,22 +265,6 @@
"months3": "3 個月後",
"placeholder": "選擇保留期限..."
},
- "alwaysOnMicrophone": {
- "label": "麥克風常開",
- "description": "保持麥克風啟用以獲得更快的回應"
- },
- "clamshellMicrophone": {
- "title": "闔蓋麥克風",
- "description": "筆記型電腦闔蓋時使用的麥克風"
- },
- "muteWhileRecording": {
- "label": "錄製時靜音",
- "description": "錄製期間靜音系統音訊"
- },
- "appendTrailingSpace": {
- "label": "附加尾部空格",
- "description": "在貼上的轉錄後新增空格"
- },
"keyboardImplementation": {
"title": "鍵盤實作",
"description": "選擇鍵盤快捷鍵的後端",
@@ -357,10 +298,10 @@
},
"acknowledgments": {
"title": "致謝",
- "whisper": {
- "title": "Whisper.cpp",
- "description": "針對 OpenAI Whisper 自動語音識別模型的高效能推理引擎",
- "details": "Parrot 使用 Whisper.cpp 進行快速的本機語音轉文字處理。感謝 Georgi Gerganov 和貢獻者們的傑出工作"
+ "handy": {
+ "title": "Handy",
+ "description": "The original project that Parrot was forked from",
+ "details": "Parrot is a fork of Handy by CJ Pais. Thanks for building the foundation that made Parrot possible."
}
}
}
@@ -415,7 +356,8 @@
"description": "變更 Parrot 介面的語言"
},
"overlay": {
- "transcribing": "正在轉錄...",
- "processing": "處理中..."
+ "speaking": "Speaking...",
+ "processing": "處理中...",
+ "reading": "Reading:"
}
}
diff --git a/src/i18n/locales/zh/translation.json b/src/i18n/locales/zh/translation.json
index ea1f864..8f0236e 100644
--- a/src/i18n/locales/zh/translation.json
+++ b/src/i18n/locales/zh/translation.json
@@ -25,56 +25,7 @@
"accuracy": "准确度",
"speed": "速度"
},
- "models": {
- "small": {
- "name": "Whisper Small",
- "description": "快速且相当准确。"
- },
- "medium": {
- "name": "Whisper Medium",
- "description": "准确度高,速度适中"
- },
- "turbo": {
- "name": "Whisper Turbo",
- "description": "准确度和速度均衡。"
- },
- "large": {
- "name": "Whisper Large",
- "description": "准确度高,但速度较慢。"
- },
- "parakeet-tdt-0.6b-v2": {
- "name": "Parakeet V2",
- "description": "仅支持英语。英语用户的最佳模型。"
- },
- "parakeet-tdt-0.6b-v3": {
- "name": "Parakeet V3",
- "description": "快速且准确"
- },
- "moonshine-base": {
- "name": "Moonshine Base",
- "description": "非常快速,仅支持英语。口音处理良好。"
- },
- "moonshine-tiny-streaming-en": {
- "name": "Moonshine V2 Tiny",
- "description": "超快速,仅支持英语"
- },
- "moonshine-small-streaming-en": {
- "name": "Moonshine V2 Small",
- "description": "快速,仅支持英语。速度与准确度的良好平衡。"
- },
- "moonshine-medium-streaming-en": {
- "name": "Moonshine V2 Medium",
- "description": "仅支持英语。高质量。"
- },
- "breeze-asr": {
- "name": "Breeze ASR",
- "description": "针对台湾国语优化。支持语码转换。"
- },
- "sense-voice-int8": {
- "name": "SenseVoice",
- "description": "非常快速。支持中文、英语、日语、韩语、粤语。"
- }
- },
+ "models": {},
"errors": {
"loadModels": "无法加载可用模型",
"downloadModel": "模型下载失败: {{error}}"
@@ -82,10 +33,6 @@
"permissions": {
"title": "需要权限",
"description": "Parrot 需要一些权限才能正常工作。",
- "microphone": {
- "title": "麦克风访问",
- "description": "需要听取您的语音进行转录。"
- },
"accessibility": {
"title": "辅助功能访问",
"description": "需要将转录文本输入到您的应用程序中。"
@@ -118,16 +65,14 @@
"noModelDownloadRequired": "无模型 - 需要下载",
"deleteModel": "删除 {{modelName}}",
"downloadSpeed": "{{speed}} MB/s",
+ "cancel": "取消",
+ "cancelDownload": "取消下载",
"capabilities": {
"languageSelection": "支持多种输入语言",
- "multiLanguage": "多语言",
- "translation": "可翻译为英语",
- "translate": "翻译为英语",
"singleLanguage": "仅支持此语言",
+ "multiLanguage": "多语言",
"languageOnly": "仅 {{language}}"
- },
- "cancel": "取消",
- "cancelDownload": "取消下载"
+ }
},
"settings": {
"howToUseTitle": "使用方法",
@@ -135,25 +80,16 @@
"howToUseStep2": "按
朗读",
"modelSettings": {
"title": "{{model}} 设置",
- "noSettingsNeeded": "此模型自动运行,无需配置。"
- },
- "models": {
- "title": "转录模型",
- "description": "选择转录模型或下载其他模型。不同模型提供不同的准确度和速度。",
- "downloaded": "已下载",
- "available": "可下载",
- "deleteConfirm": "确定要删除 {{modelName}} 吗?您需要重新下载才能使用。",
- "deleteActiveConfirm": "{{modelName}} 是您当前使用的模型。删除后将停止转录,直到您选择新的模型。确定要删除吗?",
- "deleteTitle": "删除模型",
- "filters": {
- "all": "全部",
- "multiLanguage": "多语言",
- "translation": "翻译",
- "allLanguages": "所有语言"
- },
- "noModelsMatch": "没有符合此筛选条件的模型。",
- "yourModels": "已下载的模型",
- "availableModels": "可供下载"
+ "noSettingsNeeded": "此模型自动运行,无需配置。",
+ "kokoroVoice": {
+ "title": "Voice",
+ "description": "Select which Kokoro voice to use. Auto follows the language setting.",
+ "auto": "Auto (By Language)",
+ "searchPlaceholder": "Search voices...",
+ "loading": "Loading voices...",
+ "noResults": "No voices found",
+ "loadError": "Could not load available voices."
+ }
},
"general": {
"title": "通用",
@@ -189,14 +125,26 @@
"auto": "自动"
}
},
+ "models": {
+ "title": "转录模型",
+ "description": "选择转录模型或下载其他模型。不同模型提供不同的准确度和速度。",
+ "yourModels": "已下载的模型",
+ "availableModels": "可供下载",
+ "downloaded": "已下载",
+ "available": "可下载",
+ "deleteConfirm": "确定要删除 {{modelName}} 吗?您需要重新下载才能使用。",
+ "deleteActiveConfirm": "{{modelName}} 是您当前使用的模型。删除后将停止转录,直到您选择新的模型。确定要删除吗?",
+ "deleteTitle": "删除模型",
+ "filters": {
+ "all": "全部",
+ "multiLanguage": "多语言",
+ "translation": "翻译",
+ "allLanguages": "所有语言"
+ },
+ "noModelsMatch": "没有符合此筛选条件的模型。"
+ },
"sound": {
"title": "声音",
- "microphone": {
- "title": "麦克风",
- "description": "选择您偏好的麦克风设备",
- "placeholder": "选择麦克风...",
- "loading": "加载中..."
- },
"audioFeedback": {
"label": "音频反馈",
"description": "录制开始和停止时播放声音"
@@ -216,9 +164,23 @@
"title": "高级",
"groups": {
"app": "应用",
+ "speech": "Speech",
"history": "历史",
"experimental": "实验性"
},
+ "ttsWorkers": {
+ "title": "TTS Workers",
+ "description": "Number of parallel synthesis engines. Auto uses your CPU core count to decide.",
+ "auto": "Auto"
+ },
+ "ttsSpeed": {
+ "title": "Speech Speed",
+ "description": "Playback speed for text-to-speech output."
+ },
+ "shortenFirstChunk": {
+ "title": "Fast First Response",
+ "description": "Synthesize a shorter first chunk for faster time-to-speech, then use longer chunks."
+ },
"experimentalToggle": {
"label": "实验性功能",
"description": "启用仍在开发中的实验性功能。"
@@ -244,11 +206,6 @@
"top": "顶部"
}
},
- "translateToEnglish": {
- "label": "翻译为英语",
- "description": "在转录过程中自动将其他语言的语音翻译为英语。",
- "descriptionUnsupported": "{{model}} 模型不支持翻译功能。"
- },
"modelUnload": {
"title": "卸载模型",
"description": "当模型在指定时间内未使用时自动释放 GPU/CPU 内存",
@@ -308,22 +265,6 @@
"months3": "3 个月后",
"placeholder": "选择保留期限..."
},
- "alwaysOnMicrophone": {
- "label": "麦克风常开",
- "description": "保持麦克风活跃以获得更快的响应"
- },
- "clamshellMicrophone": {
- "title": "合盖麦克风",
- "description": "笔记本电脑盖子关闭时使用的麦克风"
- },
- "muteWhileRecording": {
- "label": "录制时静音",
- "description": "录制期间静音系统音频"
- },
- "appendTrailingSpace": {
- "label": "追加尾部空格",
- "description": "在粘贴的转录后添加空格"
- },
"keyboardImplementation": {
"title": "Keyboard Implementation",
"description": "Choose the keyboard shortcut backend.",
@@ -357,10 +298,10 @@
},
"acknowledgments": {
"title": "致谢",
- "whisper": {
- "title": "Whisper.cpp",
- "description": "OpenAI Whisper 自动语音识别模型的高性能推理",
- "details": "Parrot 使用 Whisper.cpp 进行快速的本地语音转文字处理。感谢 Georgi Gerganov 和贡献者们的出色工作。"
+ "handy": {
+ "title": "Handy",
+ "description": "The original project that Parrot was forked from",
+ "details": "Parrot is a fork of Handy by CJ Pais. Thanks for building the foundation that made Parrot possible."
}
}
}
@@ -415,7 +356,8 @@
"description": "更改 Parrot 界面的语言"
},
"overlay": {
- "transcribing": "正在转录...",
- "processing": "处理中..."
+ "speaking": "Speaking...",
+ "processing": "处理中...",
+ "reading": "Reading:"
}
}
diff --git a/src/overlay/SpeakingOverlay.css b/src/overlay/SpeakingOverlay.css
index 90998ea..ae79dd7 100644
--- a/src/overlay/SpeakingOverlay.css
+++ b/src/overlay/SpeakingOverlay.css
@@ -180,7 +180,7 @@
.waveform-bar {
width: 3px;
border-radius: 1.5px;
- background: #9BE870;
+ background: #9be870;
height: 5px;
animation: waveform-bounce 1.2s ease-in-out infinite;
}
@@ -225,7 +225,7 @@
border-radius: 999px;
border: 1px solid rgba(155, 232, 112, 0.4);
background: rgba(155, 232, 112, 0.12);
- color: #9BE870;
+ color: #9be870;
display: flex;
align-items: center;
justify-content: center;
@@ -281,7 +281,7 @@
.mac-close-button::before,
.mac-close-button::after {
- content: '';
+ content: "";
position: absolute;
top: 50%;
left: 50%;
diff --git a/src/overlay/SpeakingOverlay.tsx b/src/overlay/SpeakingOverlay.tsx
index e442427..02e1399 100644
--- a/src/overlay/SpeakingOverlay.tsx
+++ b/src/overlay/SpeakingOverlay.tsx
@@ -2,9 +2,7 @@ import { listen } from "@tauri-apps/api/event";
import React, { useEffect, useRef, useState } from "react";
import { useTranslation } from "react-i18next";
import { Pause, Play } from "lucide-react";
-import {
- SpeakingIcon,
-} from "../components/icons";
+import { SpeakingIcon } from "../components/icons";
import "./SpeakingOverlay.css";
import { commands } from "@/bindings";
import i18n, { syncLanguageFromSettings } from "@/i18n";
@@ -44,10 +42,14 @@ const SpeakingOverlay: React.FC = () => {
const ro = new ResizeObserver((entries) => {
for (const entry of entries) {
- const height = entry.borderBoxSize?.[0]?.blockSize ?? entry.contentRect.height;
+ const height =
+ entry.borderBoxSize?.[0]?.blockSize ?? entry.contentRect.height;
// Skip zero-height (unmounted) and sub-pixel noise to avoid
// redundant IPC calls during CSS transitions.
- if (height > 0 && Math.abs(height - lastReportedHeightRef.current) >= 1) {
+ if (
+ height > 0 &&
+ Math.abs(height - lastReportedHeightRef.current) >= 1
+ ) {
lastReportedHeightRef.current = height;
commands.resizeOverlay(height);
}
@@ -103,9 +105,12 @@ const SpeakingOverlay: React.FC = () => {
setSpokenText(event.payload);
});
- const unlistenPauseState = await listen
("tts-pause-state", (event) => {
- setSpeakingPaused(event.payload);
- });
+ const unlistenPauseState = await listen(
+ "tts-pause-state",
+ (event) => {
+ setSpeakingPaused(event.payload);
+ },
+ );
return () => {
unlistenShow();
@@ -156,7 +161,9 @@ const SpeakingOverlay: React.FC = () => {
/>
)}
-
+
@@ -167,7 +174,9 @@ const SpeakingOverlay: React.FC = () => {
-
+
{spokenText}
@@ -188,7 +197,11 @@ const SpeakingOverlay: React.FC = () => {
title={speakingPaused ? "Resume" : "Pause"}
aria-label={speakingPaused ? "Resume playback" : "Pause playback"}
>
- {speakingPaused ?
:
}
+ {speakingPaused ? (
+
+ ) : (
+
+ )}
diff --git a/src/stores/settingsStore.ts b/src/stores/settingsStore.ts
index 147726b..687fdb1 100644
--- a/src/stores/settingsStore.ts
+++ b/src/stores/settingsStore.ts
@@ -84,10 +84,8 @@ const settingUpdaters: {
commands.changeExperimentalEnabledSetting(value as boolean),
show_tray_icon: (value) =>
commands.changeShowTrayIconSetting(value as boolean),
- tts_workers: (value) =>
- commands.changeTtsWorkersSetting(value as number),
- tts_speed: (value) =>
- commands.changeTtsSpeedSetting(value as number),
+ tts_workers: (value) => commands.changeTtsWorkersSetting(value as number),
+ tts_speed: (value) => commands.changeTtsSpeedSetting(value as number),
tts_shorten_first_chunk: (value) =>
commands.changeTtsShortenFirstChunkSetting(value as boolean),
show_close_button: (value) =>
@@ -242,15 +240,15 @@ export const useSettingsStore = create
()(
set((state) => ({
settings: state.settings
? {
- ...state.settings,
- bindings: {
- ...state.settings.bindings,
- [id]: {
- ...state.settings.bindings[id]!,
- current_binding: binding,
+ ...state.settings,
+ bindings: {
+ ...state.settings.bindings,
+ [id]: {
+ ...state.settings.bindings[id]!,
+ current_binding: binding,
+ },
},
- },
- }
+ }
: null,
}));
@@ -273,15 +271,15 @@ export const useSettingsStore = create()(
set((state) => ({
settings: state.settings
? {
- ...state.settings,
- bindings: {
- ...state.settings.bindings,
- [id]: {
- ...state.settings.bindings[id]!,
- current_binding: originalBinding,
+ ...state.settings,
+ bindings: {
+ ...state.settings.bindings,
+ [id]: {
+ ...state.settings.bindings[id]!,
+ current_binding: originalBinding,
+ },
},
- },
- }
+ }
: null,
}));
}