From 9211c16993790a89c99c2919d6f3a59ef185bd22 Mon Sep 17 00:00:00 2001 From: lxm <1274844347@qq.com> Date: Thu, 22 Jan 2026 17:11:40 +0800 Subject: [PATCH] =?UTF-8?q?feat(i18n):=20=E6=B7=BB=E5=8A=A0=E5=A4=9A?= =?UTF-8?q?=E8=AF=AD=E8=A8=80=E4=BC=9A=E8=AE=AE=E5=BD=95=E9=9F=B3=E5=92=8C?= =?UTF-8?q?=E6=82=AC=E6=B5=AE=E7=AA=97=E6=9D=83=E9=99=90=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加了会议录音退出选项、后台录音通知和悬浮窗权限描述的多语言翻译,支持包括中文、英文、日语、韩语等在内的多种语言 --- lib/core/translations/language/ar_sa.dart | 14 + lib/core/translations/language/bg_bg.dart | 14 + lib/core/translations/language/cs_cz.dart | 14 + lib/core/translations/language/da_dk.dart | 14 + lib/core/translations/language/de_de.dart | 14 + lib/core/translations/language/el_gr.dart | 14 + lib/core/translations/language/es_es.dart | 14 + lib/core/translations/language/et_ee.dart | 14 + lib/core/translations/language/fa_ir.dart | 14 + lib/core/translations/language/fi_fi.dart | 14 + lib/core/translations/language/fr_fr.dart | 14 + lib/core/translations/language/hi_in.dart | 14 + lib/core/translations/language/hr_hr.dart | 14 + lib/core/translations/language/hu_hu.dart | 14 + lib/core/translations/language/id_id.dart | 14 + lib/core/translations/language/is_is.dart | 14 + lib/core/translations/language/it_it.dart | 14 + lib/core/translations/language/ja_jp.dart | 14 + lib/core/translations/language/ko_kr.dart | 14 + lib/core/translations/language/lt_lt.dart | 14 + lib/core/translations/language/lv_lv.dart | 14 + lib/core/translations/language/ms_my.dart | 14 + lib/core/translations/language/nb_no.dart | 14 + lib/core/translations/language/nl_nl.dart | 14 + lib/core/translations/language/pl_pl.dart | 14 + lib/core/translations/language/pt_pt.dart | 14 + lib/core/translations/language/ro_ro.dart | 14 + lib/core/translations/language/ru_ru.dart | 134 +++--- lib/core/translations/language/sk_sk.dart | 63 ++- lib/core/translations/language/sl_si.dart | 70 +-- lib/core/translations/language/sr_rs.dart | 477 ++++++++------------ lib/core/translations/language/sv_se.dart | 465 +++++++------------ lib/core/translations/language/th_th.dart | 414 +++++++---------- lib/core/translations/language/tl_ph.dart | 519 ++++++++-------------- lib/core/translations/language/tr_tr.dart | 469 ++++++++----------- lib/core/translations/language/uk_ua.dart | 498 ++++++++------------- lib/core/translations/language/vi_vn.dart | 438 +++++++----------- lib/core/translations/language/zh_hk.dart | 17 + lib/core/translations/language/zh_tw.dart | 17 + 39 files changed, 1792 insertions(+), 2167 deletions(-) diff --git a/lib/core/translations/language/ar_sa.dart b/lib/core/translations/language/ar_sa.dart index 384c83b2e..cadfa48dc 100644 --- a/lib/core/translations/language/ar_sa.dart +++ b/lib/core/translations/language/ar_sa.dart @@ -435,6 +435,20 @@ const Map arSA = { 'audioVideoRecording': 'تسجيل صوت/فيديو', 'callRecording': 'تسجيل المكالمات', 'importAudio': 'استيراد صوت', + 'meetingRecordExitTitle': 'الخروج من التسجيل', // 退出录音 + 'meetingRecordExitMessage': 'اختر ما تريد فعله قبل المغادرة', // 请选择离开后的操作 + 'meetingRecordEndAndSave': 'إنهاء التسجيل وحفظه', // 结束录音并保存 + 'meetingRecordEndWithoutSave': 'إنهاء التسجيل دون حفظ', // 结束录音不保存 + 'meetingRecordContinueInBackground': 'متابعة التسجيل في الخلفية', // 后台继续录音 + 'meetingRecordStopTimeout': 'انتهت مهلة إيقاف التسجيل. يرجى المحاولة مرة أخرى.', // 结束录音超时,请重试 + 'meetingRecordStopFailed': 'تعذر إيقاف التسجيل. يرجى المحاولة مرة أخرى.', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': 'تعذر حفظ التسجيل. يرجى المحاولة مرة أخرى.', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': 'التسجيل جارٍ', // 录音进行中 + 'meetingRecordRecordingNotificationBody': 'يتم التسجيل في الخلفية. اضغط للعودة إلى التطبيق.', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': 'الظهور فوق التطبيقات الأخرى', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': 'لعرض نتائج الترجمة أثناء المكالمات أو ترجمة الصوت/الفيديو، نحتاج إلى إذن الظهور فوق التطبيقات الأخرى. يتيح لك ذلك رؤية الترجمات الفورية أثناء استخدام تطبيقات أخرى.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': 'لعرض شريط التسجيل العائم (المؤقت/إيقاف مؤقت/استئناف) أثناء التسجيل، نحتاج إلى إذن الظهور فوق التطبيقات الأخرى.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': 'تعذر فتح إعدادات النظام تلقائيًا. يرجى فتح الإعدادات وتمكين إذن الظهور فوق التطبيقات الأخرى يدويًا.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'جاري النسخ...', 'summarizing': 'جاري التلخيص...', 'analyzing': 'جاري التحليل...', diff --git a/lib/core/translations/language/bg_bg.dart b/lib/core/translations/language/bg_bg.dart index a45fc4863..6c7f08e13 100644 --- a/lib/core/translations/language/bg_bg.dart +++ b/lib/core/translations/language/bg_bg.dart @@ -444,6 +444,20 @@ const Map bgBG = { 'audioVideoRecording': 'Аудио/Видео запис', 'callRecording': 'Запис на разговор', 'importAudio': 'Импорт на аудио', + 'meetingRecordExitTitle': 'Изход от записа', // 退出录音 + 'meetingRecordExitMessage': 'Изберете какво да направите преди да излезете', // 请选择离开后的操作 + 'meetingRecordEndAndSave': 'Прекратяване и запазване', // 结束录音并保存 + 'meetingRecordEndWithoutSave': 'Прекратяване без запазване', // 结束录音不保存 + 'meetingRecordContinueInBackground': 'Продължи записването във фонов режим', // 后台继续录音 + 'meetingRecordStopTimeout': 'Времето за спиране на записа изтече. Опитайте отново.', // 结束录音超时,请重试 + 'meetingRecordStopFailed': 'Неуспешно спиране на записа. Опитайте отново.', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': 'Неуспешно запазване на записа. Опитайте отново.', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': 'Записът е в ход', // 录音进行中 + 'meetingRecordRecordingNotificationBody': 'Запис във фонов режим. Докоснете, за да се върнете в приложението.', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': 'Показване върху други приложения', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': 'За да показваме резултатите от превода по време на обаждания или превод на аудио/видео, е нужно разрешение за показване върху други приложения. Така ще виждате превод в реално време, докато използвате други приложения.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': 'За да показваме плаващата лента за запис (таймер/пауза/продължи) по време на запис, е нужно разрешение за показване върху други приложения.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': 'Не можем да отворим системните настройки автоматично. Моля, отворете Настройки и включете разрешението за показване върху други приложения ръчно.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'Транскрибиране...', 'summarizing': 'Обобщаване...', 'analyzing': 'Анализиране...', diff --git a/lib/core/translations/language/cs_cz.dart b/lib/core/translations/language/cs_cz.dart index 1f01c1d07..4c4fd9896 100644 --- a/lib/core/translations/language/cs_cz.dart +++ b/lib/core/translations/language/cs_cz.dart @@ -437,6 +437,20 @@ const Map csCZ = { 'audioVideoRecording': 'Audio/Video nahrávání', 'callRecording': 'Nahrávání hovoru', 'importAudio': 'Importovat audio', + 'meetingRecordExitTitle': 'Ukončit nahrávání', // 退出录音 + 'meetingRecordExitMessage': 'Vyberte, co udělat před odchodem', // 请选择离开后的操作 + 'meetingRecordEndAndSave': 'Ukončit a uložit', // 结束录音并保存 + 'meetingRecordEndWithoutSave': 'Ukončit bez uložení', // 结束录音不保存 + 'meetingRecordContinueInBackground': 'Pokračovat v nahrávání na pozadí', // 后台继续录音 + 'meetingRecordStopTimeout': 'Časový limit pro zastavení nahrávání vypršel. Zkuste to znovu.', // 结束录音超时,请重试 + 'meetingRecordStopFailed': 'Nepodařilo se zastavit nahrávání. Zkuste to znovu.', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': 'Nepodařilo se uložit nahrávku. Zkuste to znovu.', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': 'Probíhá nahrávání', // 录音进行中 + 'meetingRecordRecordingNotificationBody': 'Nahrávání na pozadí. Klepnutím se vraťte do aplikace.', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': 'Zobrazovat nad ostatními aplikacemi', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': 'Abychom mohli zobrazovat výsledky překladu během hovorů nebo překladu zvuku/videa, potřebujeme oprávnění zobrazovat nad ostatními aplikacemi. Díky tomu uvidíte překlady v reálném čase i při používání jiných aplikací.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': 'Abychom mohli během nahrávání zobrazit plovoucí lištu (časovač/pauza/pokračovat), potřebujeme oprávnění zobrazovat nad ostatními aplikacjami.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': 'Nepodařilo se automaticky otevřít systémová nastavení. Otevřete prosím Nastavení a povolte oprávnění zobrazovat nad ostatními aplikacemi ručně.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'Přepisování...', 'summarizing': 'Shrnování...', 'analyzing': 'Analyzování...', diff --git a/lib/core/translations/language/da_dk.dart b/lib/core/translations/language/da_dk.dart index fd6d6c77f..c8c2e4db2 100644 --- a/lib/core/translations/language/da_dk.dart +++ b/lib/core/translations/language/da_dk.dart @@ -439,6 +439,20 @@ const Map daDK = { 'audioVideoRecording': 'Lyd/Video optagelse', 'callRecording': 'Opkaldsoptagelse', 'importAudio': 'Importer lyd', + 'meetingRecordExitTitle': 'Afslut optagelse', // 退出录音 + 'meetingRecordExitMessage': 'Vælg, hvad du vil gøre, før du forlader', // 请选择离开后的操作 + 'meetingRecordEndAndSave': 'Afslut og gem', // 结束录音并保存 + 'meetingRecordEndWithoutSave': 'Afslut uden at gemme', // 结束录音不保存 + 'meetingRecordContinueInBackground': 'Fortsæt optagelsen i baggrunden', // 后台继续录音 + 'meetingRecordStopTimeout': 'Tidsgrænsen for at stoppe optagelsen udløb. Prøv igen.', // 结束录音超时,请重试 + 'meetingRecordStopFailed': 'Kunne ikke stoppe optagelsen. Prøv igen.', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': 'Kunne ikke gemme optagelsen. Prøv igen.', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': 'Optagelse i gang', // 录音进行中 + 'meetingRecordRecordingNotificationBody': 'Optager i baggrunden. Tryk for at vende tilbage til appen.', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': 'Tegn over andre apps', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': 'For at vise oversættelsesresultater under opkald eller lyd-/videooversættelse har vi brug for tilladelsen til at tegne over andre apps. Det lader dig se oversættelser i realtid, mens du bruger andre apps.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': 'For at vise den flydende optagelseslinje (timer/pause/genoptag) under optagelse har vi brug for tilladelsen til at tegne over andre apps.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': 'Kan ikke åbne systemindstillinger automatisk. Åbn venligst Indstillinger, og aktivér tilladelsen til at tegne over andre apps manuelt.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'Transskriberer...', 'summarizing': 'Sammenfatter...', 'analyzing': 'Analyserer...', diff --git a/lib/core/translations/language/de_de.dart b/lib/core/translations/language/de_de.dart index fee851951..309b3b72b 100644 --- a/lib/core/translations/language/de_de.dart +++ b/lib/core/translations/language/de_de.dart @@ -446,6 +446,20 @@ const Map deDE = { 'audioVideoRecording': 'Audio-/Video-Aufnahme', 'callRecording': 'Anruf-Aufnahme', 'importAudio': 'Audio importieren', + 'meetingRecordExitTitle': 'Aufnahme beenden', // 退出录音 + 'meetingRecordExitMessage': 'Wählen Sie, was Sie vor dem Verlassen tun möchten', // 请选择离开后的操作 + 'meetingRecordEndAndSave': 'Beenden und speichern', // 结束录音并保存 + 'meetingRecordEndWithoutSave': 'Beenden ohne zu speichern', // 结束录音不保存 + 'meetingRecordContinueInBackground': 'Aufnahme im Hintergrund fortsetzen', // 后台继续录音 + 'meetingRecordStopTimeout': 'Zeitüberschreitung beim Beenden der Aufnahme. Bitte erneut versuchen.', // 结束录音超时,请重试 + 'meetingRecordStopFailed': 'Aufnahme konnte nicht beendet werden. Bitte erneut versuchen.', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': 'Aufnahme konnte nicht gespeichert werden. Bitte erneut versuchen.', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': 'Aufnahme läuft', // 录音进行中 + 'meetingRecordRecordingNotificationBody': 'Aufnahme im Hintergrund. Tippen, um zur App zurückzukehren.', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': 'Über anderen Apps einblenden', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': 'Um Übersetzungsergebnisse während Anrufen oder Audio-/Videoübersetzungen anzuzeigen, benötigen wir die Berechtigung, über anderen Apps einzublenden. So sehen Sie Echtzeitübersetzungen, während Sie andere Apps verwenden.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': 'Um während der Aufnahme die schwebende Leiste (Timer/Pause/Fortsetzen) anzuzeigen, benötigen wir die Berechtigung, über anderen Apps einzublenden.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': 'Systemeinstellungen konnten nicht automatisch geöffnet werden. Bitte öffnen Sie die Einstellungen und aktivieren Sie die Berechtigung zum Einblenden über anderen Apps manuell.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'Transkribieren...', 'summarizing': 'Zusammenfassen...', 'analyzing': 'Analysieren...', diff --git a/lib/core/translations/language/el_gr.dart b/lib/core/translations/language/el_gr.dart index e99990ebe..dca0f0962 100644 --- a/lib/core/translations/language/el_gr.dart +++ b/lib/core/translations/language/el_gr.dart @@ -452,6 +452,20 @@ const Map elGR = { 'audioVideoRecording': 'Εγγραφή ήχου/βίντεο', 'callRecording': 'Εγγραφή κλήσης', 'importAudio': 'Εισαγωγή ήχου', + 'meetingRecordExitTitle': 'Έξοδος από την εγγραφή', // 退出录音 + 'meetingRecordExitMessage': 'Επιλέξτε τι θα κάνετε πριν φύγετε', // 请选择离开后的操作 + 'meetingRecordEndAndSave': 'Τερματισμός και αποθήκευση', // 结束录音并保存 + 'meetingRecordEndWithoutSave': 'Τερματισμός χωρίς αποθήκευση', // 结束录音不保存 + 'meetingRecordContinueInBackground': 'Συνέχιση εγγραφής στο παρασκήνιο', // 后台继续录音 + 'meetingRecordStopTimeout': 'Έληξε το χρονικό όριο διακοπής της εγγραφής. Δοκιμάστε ξανά.', // 结束录音超时,请重试 + 'meetingRecordStopFailed': 'Αποτυχία διακοπής της εγγραφής. Δοκιμάστε ξανά.', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': 'Αποτυχία αποθήκευσης της εγγραφής. Δοκιμάστε ξανά.', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': 'Η εγγραφή είναι σε εξέλιξη', // 录音进行中 + 'meetingRecordRecordingNotificationBody': 'Γίνεται εγγραφή στο παρασκήνιο. Πατήστε για επιστροφή στην εφαρμογή.', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': 'Εμφάνιση πάνω από άλλες εφαρμογές', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': 'Για να εμφανίζουμε τα αποτελέσματα μετάφρασης κατά τη διάρκεια κλήσεων ή μετάφρασης ήχου/βίντεο, χρειαζόμαστε άδεια εμφάνισης πάνω από άλλες εφαρμογές. Έτσι θα βλέπετε μεταφράσεις σε πραγματικό χρόνο ενώ χρησιμοποιείτε άλλες εφαρμογές.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': 'Για να εμφανίζουμε την αιωρούμενη μπάρα εγγραφής (χρονομετρητής/παύση/συνέχιση) κατά την εγγραφή, χρειαζόμαστε άδεια εμφάνισης πάνω από άλλες εφαρμογές.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': 'Δεν ήταν δυνατή η αυτόματη μετάβαση στις ρυθμίσεις συστήματος. Ανοίξτε τις Ρυθμίσεις και ενεργοποιήστε χειροκίνητα την άδεια εμφάνισης πάνω από άλλες εφαρμογές.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'Απομαγνητοφώνηση...', 'summarizing': 'Δημιουργία περίληψης...', 'analyzing': 'Ανάλυση...', diff --git a/lib/core/translations/language/es_es.dart b/lib/core/translations/language/es_es.dart index 819e80f2f..b90fee3db 100644 --- a/lib/core/translations/language/es_es.dart +++ b/lib/core/translations/language/es_es.dart @@ -439,6 +439,20 @@ const Map esES = { 'audioVideoRecording': 'Audio/Video Recording', 'callRecording': 'Call Recording', 'importAudio': 'Import Audio', + 'meetingRecordExitTitle': 'Salir de la grabación', // 退出录音 + 'meetingRecordExitMessage': 'Elige qué hacer antes de salir', // 请选择离开后的操作 + 'meetingRecordEndAndSave': 'Finalizar y guardar', // 结束录音并保存 + 'meetingRecordEndWithoutSave': 'Finalizar sin guardar', // 结束录音不保存 + 'meetingRecordContinueInBackground': 'Continuar grabando en segundo plano', // 后台继续录音 + 'meetingRecordStopTimeout': 'Se agotó el tiempo para detener la grabación. Inténtalo de nuevo.', // 结束录音超时,请重试 + 'meetingRecordStopFailed': 'No se pudo detener la grabación. Inténtalo de nuevo.', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': 'No se pudo guardar la grabación. Inténtalo de nuevo.', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': 'Grabación en curso', // 录音进行中 + 'meetingRecordRecordingNotificationBody': 'Grabando en segundo plano. Toca para volver a la aplicación.', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': 'Mostrar sobre otras apps', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': 'Para mostrar los resultados de la traducción durante llamadas o traducción de audio/vídeo, necesitamos el permiso de superposición. Esto te permite ver traducciones en tiempo real mientras usas otras apps.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': 'Para mostrar la barra flotante de grabación (temporizador/pausa/reanudar) durante la grabación, necesitamos el permiso de superposición.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': 'No se pueden abrir los ajustes del sistema automáticamente. Abre Ajustes y habilita manualmente el permiso de superposición.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'Transcribing...', 'summarizing': 'Summarizing...', 'analyzing': 'Analyzing...', diff --git a/lib/core/translations/language/et_ee.dart b/lib/core/translations/language/et_ee.dart index bf056fb8b..673286243 100644 --- a/lib/core/translations/language/et_ee.dart +++ b/lib/core/translations/language/et_ee.dart @@ -434,6 +434,20 @@ const Map etEE = { 'audioVideoRecording': 'Audio/Video Recording', 'callRecording': 'Call Recording', 'importAudio': 'Import Audio', + 'meetingRecordExitTitle': 'Välju salvestusest', // 退出录音 + 'meetingRecordExitMessage': 'Vali, mida teha enne lahkumist', // 请选择离开后的操作 + 'meetingRecordEndAndSave': 'Lõpeta ja salvesta', // 结束录音并保存 + 'meetingRecordEndWithoutSave': 'Lõpeta salvestamata', // 结束录音不保存 + 'meetingRecordContinueInBackground': 'Jätka salvestamist taustal', // 后台继续录音 + 'meetingRecordStopTimeout': 'Salvestuse peatamise ajalimiit sai täis. Proovi uuesti.', // 结束录音超时,请重试 + 'meetingRecordStopFailed': 'Salvestust ei õnnestunud peatada. Proovi uuesti.', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': 'Salvestust ei õnnestunud salvestada. Proovi uuesti.', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': 'Salvestamine käib', // 录音进行中 + 'meetingRecordRecordingNotificationBody': 'Salvestamine taustal. Puuduta, et naasta rakendusse.', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': 'Kuva teiste rakenduste peal', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': 'Tõlketulemuste kuvamiseks kõnede või heli/video tõlke ajal vajame ülekatte luba. See võimaldab sul näha reaalajas tõlkeid ka teiste rakenduste kasutamisel.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': 'Salvestamise ajal salvestuse ujuvriba (taimer/paus/jätka) kuvamiseks vajame ülekatte luba.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': 'Süsteemiseadeid ei saa automaatselt avada. Palun ava Seaded ja luba ülekatte luba käsitsi.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'Transcribing...', 'summarizing': 'Summarizing...', 'analyzing': 'Analyzing...', diff --git a/lib/core/translations/language/fa_ir.dart b/lib/core/translations/language/fa_ir.dart index df69222d8..93f4dbec9 100644 --- a/lib/core/translations/language/fa_ir.dart +++ b/lib/core/translations/language/fa_ir.dart @@ -436,6 +436,20 @@ const Map faIR = { 'audioVideoRecording': 'ضبط صوتی/تصویری', 'callRecording': 'ضبط تماس', 'importAudio': 'وارد کردن صدا', + 'meetingRecordExitTitle': 'خروج از ضبط', // 退出录音 + 'meetingRecordExitMessage': 'قبل از خروج انتخاب کنید چه کاری انجام شود', // 请选择离开后的操作 + 'meetingRecordEndAndSave': 'پایان و ذخیره', // 结束录音并保存 + 'meetingRecordEndWithoutSave': 'پایان بدون ذخیره', // 结束录音不保存 + 'meetingRecordContinueInBackground': 'ادامهٔ ضبط در پس‌زمینه', // 后台继续录音 + 'meetingRecordStopTimeout': 'مهلت توقف ضبط به پایان رسید. لطفاً دوباره تلاش کنید.', // 结束录音超时,请重试 + 'meetingRecordStopFailed': 'توقف ضبط ناموفق بود. لطفاً دوباره تلاش کنید.', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': 'ذخیرهٔ ضبط ناموفق بود. لطفاً دوباره تلاش کنید.', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': 'ضبط در حال انجام است', // 录音进行中 + 'meetingRecordRecordingNotificationBody': 'در پس‌زمینه در حال ضبط است. برای بازگشت به برنامه لمس کنید.', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': 'نمایش روی سایر برنامه‌ها', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': 'برای نمایش نتایج ترجمه هنگام تماس‌ها یا ترجمهٔ صوت/ویدئو، به مجوز نمایش روی سایر برنامه‌ها نیاز داریم. این کار به شما اجازه می‌دهد هنگام استفاده از برنامه‌های دیگر، ترجمهٔ هم‌زمان را ببینید.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': 'برای نمایش نوار شناور ضبط (زمان‌سنج/توقف موقت/ادامه) هنگام ضبط، به مجوز نمایش روی سایر برنامه‌ها نیاز داریم.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': 'امکان باز کردن خودکار تنظیمات سیستم نیست. لطفاً تنظیمات را باز کرده و مجوز نمایش روی سایر برنامه‌ها را به‌صورت دستی فعال کنید.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'در حال تبدیل به متن...', 'summarizing': 'در حال خلاصه‌سازی...', 'analyzing': 'در حال تجزیه و تحلیل...', diff --git a/lib/core/translations/language/fi_fi.dart b/lib/core/translations/language/fi_fi.dart index 86c076509..30c1eb099 100644 --- a/lib/core/translations/language/fi_fi.dart +++ b/lib/core/translations/language/fi_fi.dart @@ -439,6 +439,20 @@ const Map fiFI = { 'audioVideoRecording': 'Audio/Video Recording', 'callRecording': 'Call Recording', 'importAudio': 'Import Audio', + 'meetingRecordExitTitle': 'Poistu tallennuksesta', // 退出录音 + 'meetingRecordExitMessage': 'Valitse, mitä tehdä ennen poistumista', // 请选择离开后的操作 + 'meetingRecordEndAndSave': 'Lopeta ja tallenna', // 结束录音并保存 + 'meetingRecordEndWithoutSave': 'Lopeta tallentamatta', // 结束录音不保存 + 'meetingRecordContinueInBackground': 'Jatka tallennusta taustalla', // 后台继续录音 + 'meetingRecordStopTimeout': 'Tallennuksen lopettaminen aikakatkaistiin. Yritä uudelleen.', // 结束录音超时,请重试 + 'meetingRecordStopFailed': 'Tallennusta ei voitu lopettaa. Yritä uudelleen.', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': 'Tallennusta ei voitu tallentaa. Yritä uudelleen.', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': 'Tallennus käynnissä', // 录音进行中 + 'meetingRecordRecordingNotificationBody': 'Tallennetaan taustalla. Napauta palataksesi sovellukseen.', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': 'Näytä muiden sovellusten päällä', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': 'Jotta voimme näyttää käännöstulokset puheluiden tai ääni-/videokäännöksen aikana, tarvitsemme päällekkäisyysoikeuden. Näin näet reaaliaikaiset käännökset käyttäessäsi muita sovelluksia.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': 'Jotta voimme näyttää tallennuksen kelluvan palkin (ajastin/tauko/jatka) tallennuksen aikana, tarvitsemme päällekkäisyysoikeuden.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': 'Järjestelmäasetuksia ei voi avata automaattisesti. Avaa Asetukset ja ota päällekkäisyysoikeus käyttöön manuaalisesti.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'Transcribing...', 'summarizing': 'Summarizing...', 'analyzing': 'Analyzing...', diff --git a/lib/core/translations/language/fr_fr.dart b/lib/core/translations/language/fr_fr.dart index d125b3000..a1eda3df3 100644 --- a/lib/core/translations/language/fr_fr.dart +++ b/lib/core/translations/language/fr_fr.dart @@ -441,6 +441,20 @@ const Map frFR = { 'audioVideoRecording': 'Audio/Video Recording', 'callRecording': 'Call Recording', 'importAudio': 'Import Audio', + 'meetingRecordExitTitle': 'Quitter l\'enregistrement', // 退出录音 + 'meetingRecordExitMessage': 'Choisissez quoi faire avant de quitter', // 请选择离开后的操作 + 'meetingRecordEndAndSave': 'Terminer et enregistrer', // 结束录音并保存 + 'meetingRecordEndWithoutSave': 'Terminer sans enregistrer', // 结束录音不保存 + 'meetingRecordContinueInBackground': 'Continuer l\'enregistrement en arrière-plan', // 后台继续录音 + 'meetingRecordStopTimeout': 'Le délai d\'arrêt de l\'enregistrement a expiré. Veuillez réessayer.', // 结束录音超时,请重试 + 'meetingRecordStopFailed': 'Impossible d\'arrêter l\'enregistrement. Veuillez réessayer.', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': 'Impossible de sauvegarder l\'enregistrement. Veuillez réessayer.', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': 'Enregistrement en cours', // 录音进行中 + 'meetingRecordRecordingNotificationBody': 'Enregistrement en arrière-plan. Touchez pour revenir à l\'application.', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': 'Afficher par-dessus les autres applis', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': 'Pour afficher les résultats de traduction pendant les appels ou la traduction audio/vidéo, nous avons besoin de l\'autorisation d\'affichage par-dessus les autres applis. Cela vous permet de voir les traductions en temps réel tout en utilisant d\'autres applis.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': 'Pour afficher la barre flottante d\'enregistrement (minuteur/pause/reprendre) pendant l\'enregistrement, nous avons besoin de l\'autorisation d\'affichage par-dessus les autres applis.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': 'Impossible d\'ouvrir automatiquement les réglages système. Ouvrez Réglages et activez manuellement l\'autorisation d\'affichage par-dessus les autres applis.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'Transcribing...', 'summarizing': 'Summarizing...', 'analyzing': 'Analyzing...', diff --git a/lib/core/translations/language/hi_in.dart b/lib/core/translations/language/hi_in.dart index cf5550af5..7923b8922 100644 --- a/lib/core/translations/language/hi_in.dart +++ b/lib/core/translations/language/hi_in.dart @@ -437,6 +437,20 @@ const Map hiIN = { 'audioVideoRecording': 'Audio/Video Recording', 'callRecording': 'Call Recording', 'importAudio': 'Import Audio', + 'meetingRecordExitTitle': 'रिकॉर्डिंग से बाहर निकलें', // 退出录音 + 'meetingRecordExitMessage': 'बाहर निकलने से पहले क्या करना है चुनें', // 请选择离开后的操作 + 'meetingRecordEndAndSave': 'रिकॉर्डिंग समाप्त करें और सहेजें', // 结束录音并保存 + 'meetingRecordEndWithoutSave': 'बिना सहेजे रिकॉर्डिंग समाप्त करें', // 结束录音不保存 + 'meetingRecordContinueInBackground': 'बैकग्राउंड में रिकॉर्डिंग जारी रखें', // 后台继续录音 + 'meetingRecordStopTimeout': 'रिकॉर्डिंग रोकने का समय समाप्त हो गया। कृपया फिर से प्रयास करें।', // 结束录音超时,请重试 + 'meetingRecordStopFailed': 'रिकॉर्डिंग रोकने में विफल। कृपया फिर से प्रयास करें।', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': 'रिकॉर्डिंग सहेजने में विफल। कृपया फिर से प्रयास करें।', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': 'रिकॉर्डिंग चल रही है', // 录音进行中 + 'meetingRecordRecordingNotificationBody': 'बैकग्राउंड में रिकॉर्डिंग हो रही है। ऐप पर लौटने के लिए टैप करें।', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': 'अन्य ऐप्स के ऊपर दिखाएँ', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': 'कॉल या ऑडियो/वीडियो अनुवाद के दौरान अनुवाद परिणाम दिखाने के लिए हमें ओवरले अनुमति चाहिए। इससे आप अन्य ऐप्स का उपयोग करते समय भी रीयल-टाइम अनुवाद देख सकते हैं।', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': 'रिकॉर्डिंग के दौरान रिकॉर्डिंग फ्लोटिंग बार (टाइमर/पॉज़/जारी) दिखाने के लिए हमें ओवरले अनुमति चाहिए।', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': 'सिस्टम सेटिंग्स अपने आप नहीं खुल सकीं। कृपया सेटिंग्स खोलें और ओवरले अनुमति मैन्युअल रूप से सक्षम करें।', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'Transcribing...', 'summarizing': 'Summarizing...', 'analyzing': 'Analyzing...', diff --git a/lib/core/translations/language/hr_hr.dart b/lib/core/translations/language/hr_hr.dart index d154a3ae2..84abc5968 100644 --- a/lib/core/translations/language/hr_hr.dart +++ b/lib/core/translations/language/hr_hr.dart @@ -441,6 +441,20 @@ const Map hrHR = { 'audioVideoRecording': 'Audio/Video Recording', 'callRecording': 'Call Recording', 'importAudio': 'Import Audio', + 'meetingRecordExitTitle': 'Izađi iz snimanja', // 退出录音 + 'meetingRecordExitMessage': 'Odaberite što učiniti prije izlaska', // 请选择离开后的操作 + 'meetingRecordEndAndSave': 'Završi i spremi', // 结束录音并保存 + 'meetingRecordEndWithoutSave': 'Završi bez spremanja', // 结束录音不保存 + 'meetingRecordContinueInBackground': 'Nastavi snimanje u pozadini', // 后台继续录音 + 'meetingRecordStopTimeout': 'Isteklo je vrijeme za zaustavljanje snimanja. Pokušajte ponovno.', // 结束录音超时,请重试 + 'meetingRecordStopFailed': 'Neuspjelo zaustavljanje snimanja. Pokušajte ponovno.', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': 'Neuspjelo spremanje snimke. Pokušajte ponovno.', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': 'Snimanje je u tijeku', // 录音进行中 + 'meetingRecordRecordingNotificationBody': 'Snimanje u pozadini. Dodirnite za povratak u aplikaciju.', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': 'Prikaz preko drugih aplikacija', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': 'Za prikaz rezultata prijevoda tijekom poziva ili prijevoda zvuka/videa potrebna je dozvola za prikaz preko drugih aplikacija. Tako možete vidjeti prijevod u stvarnom vremenu dok koristite druge aplikacije.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': 'Za prikaz plutajuće trake snimanja (mjerač vremena/pauza/nastavi) tijekom snimanja potrebna je dozvola za prikaz preko drugih aplikacija.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': 'Nije moguće automatski otvoriti postavke sustava. Otvorite Postavke i ručno omogućite dozvolu za prikaz preko drugih aplikacija.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'Transcribing...', 'summarizing': 'Summarizing...', 'analyzing': 'Analyzing...', diff --git a/lib/core/translations/language/hu_hu.dart b/lib/core/translations/language/hu_hu.dart index 0fd08fabe..264df51f5 100644 --- a/lib/core/translations/language/hu_hu.dart +++ b/lib/core/translations/language/hu_hu.dart @@ -441,6 +441,20 @@ const Map huHU = { 'audioVideoRecording': 'Audio/Video Recording', 'callRecording': 'Call Recording', 'importAudio': 'Import Audio', + 'meetingRecordExitTitle': 'Kilépés a felvételből', // 退出录音 + 'meetingRecordExitMessage': 'Válassza ki, mit tegyen kilépés előtt', // 请选择离开后的操作 + 'meetingRecordEndAndSave': 'Befejezés és mentés', // 结束录音并保存 + 'meetingRecordEndWithoutSave': 'Befejezés mentés nélkül', // 结束录音不保存 + 'meetingRecordContinueInBackground': 'Felvétel folytatása a háttérben', // 后台继续录音 + 'meetingRecordStopTimeout': 'A felvétel leállításának időkorlátja lejárt. Próbálja újra.', // 结束录音超时,请重试 + 'meetingRecordStopFailed': 'Nem sikerült leállítani a felvételt. Próbálja újra.', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': 'Nem sikerült menteni a felvételt. Próbálja újra.', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': 'Felvétel folyamatban', // 录音进行中 + 'meetingRecordRecordingNotificationBody': 'Felvétel a háttérben. Érintse meg az alkalmazáshoz való visszatéréshez.', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': 'Megjelenítés más alkalmazások felett', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': 'A hívások vagy hang-/videófordítás közbeni fordítási eredmények megjelenítéséhez szükségünk van a más alkalmazások feletti megjelenítés engedélyére. Így más alkalmazások használata közben is láthatja a valós idejű fordításokat.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': 'A felvétel közbeni lebegő sáv (időzítő/szünet/folytatás) megjelenítéséhez szükségünk van a más alkalmazások feletti megjelenítés engedélyére.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': 'Nem sikerült automatikusan megnyitni a rendszerbeállításokat. Nyissa meg a Beállításokat, és engedélyezze kézzel a más alkalmazások feletti megjelenítést.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'Transcribing...', 'summarizing': 'Summarizing...', 'analyzing': 'Analyzing...', diff --git a/lib/core/translations/language/id_id.dart b/lib/core/translations/language/id_id.dart index da9e8d55a..f237a00ee 100644 --- a/lib/core/translations/language/id_id.dart +++ b/lib/core/translations/language/id_id.dart @@ -437,6 +437,20 @@ const Map idID = { 'audioVideoRecording': 'Audio/Video Recording', 'callRecording': 'Call Recording', 'importAudio': 'Import Audio', + 'meetingRecordExitTitle': 'Keluar dari perekaman', // 退出录音 + 'meetingRecordExitMessage': 'Pilih apa yang akan dilakukan sebelum keluar', // 请选择离开后的操作 + 'meetingRecordEndAndSave': 'Akhiri dan simpan', // 结束录音并保存 + 'meetingRecordEndWithoutSave': 'Akhiri tanpa menyimpan', // 结束录音不保存 + 'meetingRecordContinueInBackground': 'Lanjutkan merekam di latar belakang', // 后台继续录音 + 'meetingRecordStopTimeout': 'Waktu untuk menghentikan perekaman habis. Silakan coba lagi.', // 结束录音超时,请重试 + 'meetingRecordStopFailed': 'Gagal menghentikan perekaman. Silakan coba lagi.', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': 'Gagal menyimpan rekaman. Silakan coba lagi.', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': 'Perekaman sedang berlangsung', // 录音进行中 + 'meetingRecordRecordingNotificationBody': 'Merekam di latar belakang. Ketuk untuk kembali ke aplikasi.', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': 'Tampilkan di atas aplikasi lain', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': 'Untuk menampilkan hasil terjemahan saat panggilan atau terjemahan audio/video, kami memerlukan izin overlay. Ini memungkinkan Anda melihat terjemahan real-time saat menggunakan aplikasi lain.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': 'Untuk menampilkan bilah mengambang perekaman (timer/jeda/lanjut) saat merekam, kami memerlukan izin overlay.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': 'Tidak dapat membuka pengaturan sistem secara otomatis. Silakan buka Pengaturan dan aktifkan izin overlay secara manual.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'Transcribing...', 'summarizing': 'Summarizing...', 'analyzing': 'Analyzing...', diff --git a/lib/core/translations/language/is_is.dart b/lib/core/translations/language/is_is.dart index bdd0b3e96..75790f49b 100644 --- a/lib/core/translations/language/is_is.dart +++ b/lib/core/translations/language/is_is.dart @@ -438,6 +438,20 @@ const Map isIS = { 'audioVideoRecording': 'Audio/Video Recording', 'callRecording': 'Call Recording', 'importAudio': 'Import Audio', + 'meetingRecordExitTitle': 'Hætta í upptöku', // 退出录音 + 'meetingRecordExitMessage': 'Veldu hvað á að gera áður en þú ferð', // 请选择离开后的操作 + 'meetingRecordEndAndSave': 'Ljúka og vista', // 结束录音并保存 + 'meetingRecordEndWithoutSave': 'Ljúka án vistunar', // 结束录音不保存 + 'meetingRecordContinueInBackground': 'Halda upptöku áfram í bakgrunni', // 后台继续录音 + 'meetingRecordStopTimeout': 'Tímamörk fyrir stöðvun upptöku runnu út. Reyndu aftur.', // 结束录音超时,请重试 + 'meetingRecordStopFailed': 'Tókst ekki að stöðva upptökuna. Reyndu aftur.', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': 'Tókst ekki að vista upptökuna. Reyndu aftur.', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': 'Upptaka í gangi', // 录音进行中 + 'meetingRecordRecordingNotificationBody': 'Upptaka í bakgrunni. Pikkaðu til að fara aftur í appið.', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': 'Birta yfir öðrum öppum', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': 'Til að sýna þýðingarniðurstöður í símtölum eða við hljóð-/myndbandsþýðingu þurfum við yfirlagaleyfi. Það gerir þér kleift að sjá rauntímaþýðingar á meðan þú notar önnur öpp.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': 'Til að sýna fljótandi upptökustiku (tími/pása/halda áfram) meðan á upptöku stendur þurfum við yfirlagaleyfi.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': 'Ekki tókst að opna kerfisstillingar sjálfkrafa. Opnaðu Stillingar og virkjaðu yfirlagaleyfi handvirkt.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'Transcribing...', 'summarizing': 'Summarizing...', 'analyzing': 'Analyzing...', diff --git a/lib/core/translations/language/it_it.dart b/lib/core/translations/language/it_it.dart index e318a50fc..55f6ea4bf 100644 --- a/lib/core/translations/language/it_it.dart +++ b/lib/core/translations/language/it_it.dart @@ -444,6 +444,20 @@ const Map itIT = { 'audioVideoRecording': 'Audio/Video Recording', 'callRecording': 'Call Recording', 'importAudio': 'Import Audio', + 'meetingRecordExitTitle': 'Esci dalla registrazione', // 退出录音 + 'meetingRecordExitMessage': 'Scegli cosa fare prima di uscire', // 请选择离开后的操作 + 'meetingRecordEndAndSave': 'Termina e salva', // 结束录音并保存 + 'meetingRecordEndWithoutSave': 'Termina senza salvare', // 结束录音不保存 + 'meetingRecordContinueInBackground': 'Continua a registrare in background', // 后台继续录音 + 'meetingRecordStopTimeout': 'Tempo scaduto durante l\'arresto della registrazione. Riprova.', // 结束录音超时,请重试 + 'meetingRecordStopFailed': 'Impossibile arrestare la registrazione. Riprova.', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': 'Impossibile salvare la registrazione. Riprova.', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': 'Registrazione in corso', // 录音进行中 + 'meetingRecordRecordingNotificationBody': 'Registrazione in background. Tocca per tornare all\'app.', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': 'Mostra sopra altre app', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': 'Per mostrare i risultati della traduzione durante le chiamate o la traduzione audio/video, ci serve l\'autorizzazione di overlay. In questo modo puoi vedere le traduzioni in tempo reale mentre usi altre app.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': 'Per mostrare la barra fluttuante di registrazione (timer/pausa/riprendi) durante la registrazione, ci serve l\'autorizzazione di overlay.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': 'Impossibile aprire automaticamente le impostazioni di sistema. Apri Impostazioni e abilita manualmente l\'autorizzazione di overlay.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'Transcribing...', 'summarizing': 'Summarizing...', 'analyzing': 'Analyzing...', diff --git a/lib/core/translations/language/ja_jp.dart b/lib/core/translations/language/ja_jp.dart index cb5dff929..d34d1fe17 100644 --- a/lib/core/translations/language/ja_jp.dart +++ b/lib/core/translations/language/ja_jp.dart @@ -430,6 +430,20 @@ const Map jaJP = { 'audioVideoRecording': 'Audio/Video Recording', 'callRecording': 'Call Recording', 'importAudio': 'Import Audio', + 'meetingRecordExitTitle': '録音を終了', // 退出录音 + 'meetingRecordExitMessage': '終了前に操作を選択してください', // 请选择离开后的操作 + 'meetingRecordEndAndSave': '終了して保存', // 结束录音并保存 + 'meetingRecordEndWithoutSave': '保存せずに終了', // 结束录音不保存 + 'meetingRecordContinueInBackground': 'バックグラウンドで録音を続行', // 后台继续录音 + 'meetingRecordStopTimeout': '録音の停止がタイムアウトしました。もう一度お試しください。', // 结束录音超时,请重试 + 'meetingRecordStopFailed': '録音を停止できませんでした。もう一度お試しください。', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': '録音を保存できませんでした。もう一度お試しください。', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': '録音中', // 录音进行中 + 'meetingRecordRecordingNotificationBody': 'バックグラウンドで録音しています。タップしてアプリに戻ります。', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': '他のアプリの上に表示', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': '通話中または音声/動画翻訳中に翻訳結果を表示するため、他のアプリの上に表示する権限が必要です。これにより、他のアプリを使用中でもリアルタイム翻訳を確認できます。', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': '録音中に録音フローティングバー(タイマー/一時停止/再開)を表示するため、他のアプリの上に表示する権限が必要です。', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': 'システム設定を自動で開けませんでした。設定を開き、手動で「他のアプリの上に表示」を有効にしてください。', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'Transcribing...', 'summarizing': 'Summarizing...', 'analyzing': 'Analyzing...', diff --git a/lib/core/translations/language/ko_kr.dart b/lib/core/translations/language/ko_kr.dart index ce9b5231d..82c25d615 100644 --- a/lib/core/translations/language/ko_kr.dart +++ b/lib/core/translations/language/ko_kr.dart @@ -426,6 +426,20 @@ const Map koKR = { 'audioVideoRecording': 'Audio/Video Recording', 'callRecording': 'Call Recording', 'importAudio': 'Import Audio', + 'meetingRecordExitTitle': '녹음 종료', // 退出录音 + 'meetingRecordExitMessage': '나가기 전에 수행할 작업을 선택하세요', // 请选择离开后的操作 + 'meetingRecordEndAndSave': '종료하고 저장', // 结束录音并保存 + 'meetingRecordEndWithoutSave': '저장하지 않고 종료', // 结束录音不保存 + 'meetingRecordContinueInBackground': '백그라운드에서 녹음 계속', // 后台继续录音 + 'meetingRecordStopTimeout': '녹음 중지 시간이 초과되었습니다. 다시 시도해주세요.', // 结束录音超时,请重试 + 'meetingRecordStopFailed': '녹음을 중지하지 못했습니다. 다시 시도해주세요.', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': '녹음을 저장하지 못했습니다. 다시 시도해주세요.', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': '녹음 중', // 录音进行中 + 'meetingRecordRecordingNotificationBody': '백그라운드에서 녹음 중입니다. 탭하여 앱으로 돌아가세요.', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': '다른 앱 위에 표시', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': '통화 중 또는 오디오/비디오 번역 중 번역 결과를 표시하려면 오버레이 권한이 필요합니다. 이를 통해 다른 앱을 사용하는 동안에도 실시간 번역을 볼 수 있습니다.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': '녹음 중 녹음 플로팅 바(타이머/일시정지/계속)를 표시하려면 오버레이 권한이 필요합니다.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': '시스템 설정을 자동으로 열 수 없습니다. 설정을 열고 오버레이 권한을 수동으로 허용해주세요.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'Transcribing...', 'summarizing': 'Summarizing...', 'analyzing': 'Analyzing...', diff --git a/lib/core/translations/language/lt_lt.dart b/lib/core/translations/language/lt_lt.dart index 759f56d94..3b4acc83e 100644 --- a/lib/core/translations/language/lt_lt.dart +++ b/lib/core/translations/language/lt_lt.dart @@ -441,6 +441,20 @@ const Map ltLT = { 'audioVideoRecording': 'Audio/Video Recording', 'callRecording': 'Call Recording', 'importAudio': 'Import Audio', + 'meetingRecordExitTitle': 'Išeiti iš įrašymo', // 退出录音 + 'meetingRecordExitMessage': 'Pasirinkite, ką daryti prieš išeinant', // 请选择离开后的操作 + 'meetingRecordEndAndSave': 'Baigti ir išsaugoti', // 结束录音并保存 + 'meetingRecordEndWithoutSave': 'Baigti neišsaugojus', // 结束录音不保存 + 'meetingRecordContinueInBackground': 'Tęsti įrašymą fone', // 后台继续录音 + 'meetingRecordStopTimeout': 'Baigiant įrašymą baigėsi laikas. Bandykite dar kartą.', // 结束录音超时,请重试 + 'meetingRecordStopFailed': 'Nepavyko sustabdyti įrašymo. Bandykite dar kartą.', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': 'Nepavyko išsaugoti įrašo. Bandykite dar kartą.', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': 'Vyksta įrašymas', // 录音进行中 + 'meetingRecordRecordingNotificationBody': 'Įrašoma fone. Palieskite, kad grįžtumėte į programą.', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': 'Rodyti virš kitų programų', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': 'Kad galėtume rodyti vertimo rezultatus skambučių arba garso/vaizdo vertimo metu, mums reikia leidimo rodyti virš kitų programų. Tai leis matyti vertimus realiuoju laiku naudojant kitas programas.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': 'Kad įrašymo metu galėtume rodyti plaukiojančią įrašymo juostą (laikmatis/pristabdyti/tęsti), mums reikia leidimo rodyti virš kitų programų.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': 'Nepavyko automatiškai atidaryti sistemos nustatymų. Atidarykite Nustatymus ir rankiniu būdu įjunkite leidimą rodyti virš kitų programų.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'Transcribing...', 'summarizing': 'Summarizing...', 'analyzing': 'Analyzing...', diff --git a/lib/core/translations/language/lv_lv.dart b/lib/core/translations/language/lv_lv.dart index 83983eef0..221d04b58 100644 --- a/lib/core/translations/language/lv_lv.dart +++ b/lib/core/translations/language/lv_lv.dart @@ -440,6 +440,20 @@ const Map lvLV = { 'audioVideoRecording': 'Audio/Video Recording', 'callRecording': 'Call Recording', 'importAudio': 'Import Audio', + 'meetingRecordExitTitle': 'Iziet no ieraksta', // 退出录音 + 'meetingRecordExitMessage': 'Izvēlieties, ko darīt pirms iziešanas', // 请选择离开后的操作 + 'meetingRecordEndAndSave': 'Beigt un saglabāt', // 结束录音并保存 + 'meetingRecordEndWithoutSave': 'Beigt nesaglabājot', // 结束录音不保存 + 'meetingRecordContinueInBackground': 'Turpināt ierakstīšanu fonā', // 后台继续录音 + 'meetingRecordStopTimeout': 'Ieraksta apturēšanai beidzās laiks. Mēģiniet vēlreiz.', // 结束录音超时,请重试 + 'meetingRecordStopFailed': 'Neizdevās apturēt ierakstu. Mēģiniet vēlreiz.', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': 'Neizdevās saglabāt ierakstu. Mēģiniet vēlreiz.', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': 'Notiek ierakstīšana', // 录音进行中 + 'meetingRecordRecordingNotificationBody': 'Ierakstīšana fonā. Pieskarieties, lai atgrieztos lietotnē.', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': 'Rādīt virs citām lietotnēm', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': 'Lai rādītu tulkojuma rezultātus zvanu vai audio/video tulkošanas laikā, mums nepieciešama pārklājuma atļauja. Tas ļauj redzēt tulkojumus reāllaikā, izmantojot citas lietotnes.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': 'Lai ierakstīšanas laikā rādītu peldošo ierakstīšanas joslu (taimeris/pauze/turpināt), mums nepieciešama pārklājuma atļauja.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': 'Nevar automātiski atvērt sistēmas iestatījumus. Lūdzu, atveriet Iestatījumus un manuāli iespējojiet pārklājuma atļauju.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'Transcribing...', 'summarizing': 'Summarizing...', 'analyzing': 'Analyzing...', diff --git a/lib/core/translations/language/ms_my.dart b/lib/core/translations/language/ms_my.dart index 3d3f6cd5a..82df1892a 100644 --- a/lib/core/translations/language/ms_my.dart +++ b/lib/core/translations/language/ms_my.dart @@ -439,6 +439,20 @@ const Map msMY = { 'audioVideoRecording': 'Audio/Video Recording', 'callRecording': 'Call Recording', 'importAudio': 'Import Audio', + 'meetingRecordExitTitle': 'Keluar dari rakaman', // 退出录音 + 'meetingRecordExitMessage': 'Pilih apa yang perlu dibuat sebelum keluar', // 请选择离开后的操作 + 'meetingRecordEndAndSave': 'Tamatkan dan simpan', // 结束录音并保存 + 'meetingRecordEndWithoutSave': 'Tamatkan tanpa menyimpan', // 结束录音不保存 + 'meetingRecordContinueInBackground': 'Teruskan rakaman di latar belakang', // 后台继续录音 + 'meetingRecordStopTimeout': 'Masa untuk menghentikan rakaman telah tamat. Sila cuba lagi.', // 结束录音超时,请重试 + 'meetingRecordStopFailed': 'Gagal menghentikan rakaman. Sila cuba lagi.', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': 'Gagal menyimpan rakaman. Sila cuba lagi.', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': 'Rakaman sedang berjalan', // 录音进行中 + 'meetingRecordRecordingNotificationBody': 'Merakam di latar belakang. Ketik untuk kembali ke aplikasi.', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': 'Papar di atas aplikasi lain', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': 'Untuk memaparkan hasil terjemahan semasa panggilan atau terjemahan audio/video, kami memerlukan kebenaran overlay. Ini membolehkan anda melihat terjemahan masa nyata semasa menggunakan aplikasi lain.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': 'Untuk memaparkan bar rakaman terapung (pemasa/jeda/sambung) semasa merakam, kami memerlukan kebenaran overlay.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': 'Tidak dapat membuka tetapan sistem secara automatik. Sila buka Tetapan dan dayakan kebenaran overlay secara manual.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'Transcribing...', 'summarizing': 'Summarizing...', 'analyzing': 'Analyzing...', diff --git a/lib/core/translations/language/nb_no.dart b/lib/core/translations/language/nb_no.dart index 655a0023c..6e4e39eb3 100644 --- a/lib/core/translations/language/nb_no.dart +++ b/lib/core/translations/language/nb_no.dart @@ -439,6 +439,20 @@ const Map nbNO = { 'audioVideoRecording': 'Audio/Video Recording', 'callRecording': 'Call Recording', 'importAudio': 'Import Audio', + 'meetingRecordExitTitle': 'Avslutt opptak', // 退出录音 + 'meetingRecordExitMessage': 'Velg hva du vil gjøre før du avslutter', // 请选择离开后的操作 + 'meetingRecordEndAndSave': 'Avslutt og lagre', // 结束录音并保存 + 'meetingRecordEndWithoutSave': 'Avslutt uten å lagre', // 结束录音不保存 + 'meetingRecordContinueInBackground': 'Fortsett opptak i bakgrunnen', // 后台继续录音 + 'meetingRecordStopTimeout': 'Tidsavbrudd ved stopp av opptaket. Prøv igjen.', // 结束录音超时,请重试 + 'meetingRecordStopFailed': 'Kunne ikke stoppe opptaket. Prøv igjen.', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': 'Kunne ikke lagre opptaket. Prøv igjen.', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': 'Opptak pågår', // 录音进行中 + 'meetingRecordRecordingNotificationBody': 'Opptak i bakgrunnen. Trykk for å gå tilbake til appen.', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': 'Vis over andre apper', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': 'For å vise oversettelsesresultater under samtaler eller lyd-/videooversettelse, trenger vi tillatelse til å vises over andre apper. Da kan du se sanntidsoversettelser mens du bruker andre apper.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': 'For å vise den flytende opptakslinjen (timer/pause/fortsett) under opptak, trenger vi tillatelse til å vises over andre apper.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': 'Kan ikke åpne systeminnstillinger automatisk. Åpne Innstillinger og aktiver tillatelsen for å vises over andre apper manuelt.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'Transcribing...', 'summarizing': 'Summarizing...', 'analyzing': 'Analyzing...', diff --git a/lib/core/translations/language/nl_nl.dart b/lib/core/translations/language/nl_nl.dart index cc47b9760..1d9f0807d 100644 --- a/lib/core/translations/language/nl_nl.dart +++ b/lib/core/translations/language/nl_nl.dart @@ -440,6 +440,20 @@ const Map nlNL = { 'audioVideoRecording': 'Audio/Video Recording', 'callRecording': 'Call Recording', 'importAudio': 'Import Audio', + 'meetingRecordExitTitle': 'Opname verlaten', // 退出录音 + 'meetingRecordExitMessage': 'Kies wat je wilt doen voordat je vertrekt', // 请选择离开后的操作 + 'meetingRecordEndAndSave': 'Beëindigen en opslaan', // 结束录音并保存 + 'meetingRecordEndWithoutSave': 'Beëindigen zonder op te slaan', // 结束录音不保存 + 'meetingRecordContinueInBackground': 'Opname op de achtergrond voortzetten', // 后台继续录音 + 'meetingRecordStopTimeout': 'Time-out bij het stoppen van de opname. Probeer het opnieuw.', // 结束录音超时,请重试 + 'meetingRecordStopFailed': 'Kan de opname niet stoppen. Probeer het opnieuw.', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': 'Kan de opname niet opslaan. Probeer het opnieuw.', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': 'Opname bezig', // 录音进行中 + 'meetingRecordRecordingNotificationBody': 'Opname op de achtergrond. Tik om terug te keren naar de app.', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': 'Weergeven over andere apps', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': 'Om vertaalresultaten tijdens gesprekken of audio-/videotranslatie te tonen, hebben we overlay-machtiging nodig. Zo kun je realtime vertalingen zien terwijl je andere apps gebruikt.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': 'Om tijdens het opnemen de zwevende opnamebalk (timer/pauze/hervatten) te tonen, hebben we overlay-machtiging nodig.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': 'Kan de systeeminstellingen niet automatisch openen. Open Instellingen en schakel de overlay-machtiging handmatig in.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'Transcribing...', 'summarizing': 'Summarizing...', 'analyzing': 'Analyzing...', diff --git a/lib/core/translations/language/pl_pl.dart b/lib/core/translations/language/pl_pl.dart index 136c5f236..5e237f929 100644 --- a/lib/core/translations/language/pl_pl.dart +++ b/lib/core/translations/language/pl_pl.dart @@ -441,6 +441,20 @@ const Map plPL = { 'audioVideoRecording': 'Audio/Video Recording', 'callRecording': 'Call Recording', 'importAudio': 'Import Audio', + 'meetingRecordExitTitle': 'Wyjdź z nagrywania', // 退出录音 + 'meetingRecordExitMessage': 'Wybierz, co zrobić przed wyjściem', // 请选择离开后的操作 + 'meetingRecordEndAndSave': 'Zakończ i zapisz', // 结束录音并保存 + 'meetingRecordEndWithoutSave': 'Zakończ bez zapisywania', // 结束录音不保存 + 'meetingRecordContinueInBackground': 'Kontynuuj nagrywanie w tle', // 后台继续录音 + 'meetingRecordStopTimeout': 'Przekroczono limit czasu zatrzymania nagrywania. Spróbuj ponownie.', // 结束录音超时,请重试 + 'meetingRecordStopFailed': 'Nie udało się zatrzymać nagrywania. Spróbuj ponownie.', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': 'Nie udało się zapisać nagrania. Spróbuj ponownie.', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': 'Nagrywanie w toku', // 录音进行中 + 'meetingRecordRecordingNotificationBody': 'Nagrywanie w tle. Dotknij, aby wrócić do aplikacji.', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': 'Wyświetlanie nad innymi aplikacjami', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': 'Aby wyświetlać wyniki tłumaczenia podczas rozmów lub tłumaczenia audio/wideo, potrzebujemy uprawnienia do wyświetlania nad innymi aplikacjami. Dzięki temu zobaczysz tłumaczenia w czasie rzeczywistym podczas korzystania z innych aplikacji.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': 'Aby wyświetlać pływający pasek nagrywania (timer/pauza/wznów) podczas nagrywania, potrzebujemy uprawnienia do wyświetlania nad innymi aplikacjami.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': 'Nie można automatycznie otworzyć ustawień systemowych. Otwórz Ustawienia i włącz ręcznie uprawnienie do wyświetlania nad innymi aplikacjami.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'Transcribing...', 'summarizing': 'Summarizing...', 'analyzing': 'Analyzing...', diff --git a/lib/core/translations/language/pt_pt.dart b/lib/core/translations/language/pt_pt.dart index 55065ca5e..2c229467f 100644 --- a/lib/core/translations/language/pt_pt.dart +++ b/lib/core/translations/language/pt_pt.dart @@ -444,6 +444,20 @@ const Map ptPT = { 'audioVideoRecording': 'Audio/Video Recording', 'callRecording': 'Call Recording', 'importAudio': 'Import Audio', + 'meetingRecordExitTitle': 'Sair da gravação', // 退出录音 + 'meetingRecordExitMessage': 'Escolha o que fazer antes de sair', // 请选择离开后的操作 + 'meetingRecordEndAndSave': 'Terminar e guardar', // 结束录音并保存 + 'meetingRecordEndWithoutSave': 'Terminar sem guardar', // 结束录音不保存 + 'meetingRecordContinueInBackground': 'Continuar a gravar em segundo plano', // 后台继续录音 + 'meetingRecordStopTimeout': 'O tempo para parar a gravação expirou. Tente novamente.', // 结束录音超时,请重试 + 'meetingRecordStopFailed': 'Não foi possível parar a gravação. Tente novamente.', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': 'Não foi possível guardar a gravação. Tente novamente.', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': 'Gravação em curso', // 录音进行中 + 'meetingRecordRecordingNotificationBody': 'A gravar em segundo plano. Toque para voltar à aplicação.', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': 'Mostrar sobre outras apps', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': 'Para mostrar os resultados da tradução durante chamadas ou tradução de áudio/vídeo, precisamos da permissão de sobreposição. Isto permite-lhe ver traduções em tempo real enquanto utiliza outras apps.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': 'Para mostrar a barra flutuante de gravação (temporizador/pausa/retomar) durante a gravação, precisamos da permissão de sobreposição.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': 'Não foi possível abrir automaticamente as definições do sistema. Abra as Definições e ative manualmente a permissão de sobreposição.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'Transcribing...', 'summarizing': 'Summarizing...', 'analyzing': 'Analyzing...', diff --git a/lib/core/translations/language/ro_ro.dart b/lib/core/translations/language/ro_ro.dart index 363e4327d..67073e2cb 100644 --- a/lib/core/translations/language/ro_ro.dart +++ b/lib/core/translations/language/ro_ro.dart @@ -442,6 +442,20 @@ const Map roRO = { 'audioVideoRecording': 'Audio/Video Recording', 'callRecording': 'Call Recording', 'importAudio': 'Import Audio', + 'meetingRecordExitTitle': 'Ieși din înregistrare', // 退出录音 + 'meetingRecordExitMessage': 'Alege ce să faci înainte de a ieși', // 请选择离开后的操作 + 'meetingRecordEndAndSave': 'Încheie și salvează', // 结束录音并保存 + 'meetingRecordEndWithoutSave': 'Încheie fără a salva', // 结束录音不保存 + 'meetingRecordContinueInBackground': 'Continuă înregistrarea în fundal', // 后台继续录音 + 'meetingRecordStopTimeout': 'A expirat timpul pentru oprirea înregistrării. Încearcă din nou.', // 结束录音超时,请重试 + 'meetingRecordStopFailed': 'Nu s-a putut opri înregistrarea. Încearcă din nou.', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': 'Nu s-a putut salva înregistrarea. Încearcă din nou.', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': 'Înregistrare în curs', // 录音进行中 + 'meetingRecordRecordingNotificationBody': 'Se înregistrează în fundal. Atinge pentru a reveni la aplicație.', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': 'Afișare peste alte aplicații', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': 'Pentru a afișa rezultatele traducerii în timpul apelurilor sau al traducerii audio/video, avem nevoie de permisiunea de suprapunere. Astfel poți vedea traduceri în timp real în timp ce folosești alte aplicații.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': 'Pentru a afișa bara flotantă de înregistrare (cronometru/pauză/continuă) în timpul înregistrării, avem nevoie de permisiunea de suprapunere.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': 'Nu se pot deschide automat setările de sistem. Deschide Setări și activează manual permisiunea de suprapunere.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'Transcribing...', 'summarizing': 'Summarizing...', 'analyzing': 'Analyzing...', diff --git a/lib/core/translations/language/ru_ru.dart b/lib/core/translations/language/ru_ru.dart index c43a8c235..eccc6e122 100644 --- a/lib/core/translations/language/ru_ru.dart +++ b/lib/core/translations/language/ru_ru.dart @@ -107,7 +107,7 @@ const Map ruRU = { // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": - ", нажатие «Согласен и войти» означает, что вы полностью прочли и согласны с вышеуказанными соглашениями. Нажатие «Не согласен» приведет к выходу из приложения.", // ,点击"同意并进入"表示您已充分阅读并同意上述协议。点击"不同意"将退出应用。 + ",点击'同意并进入'表示您已充分阅读并同意上述协议。点击'不同意'将退出应用。", // ,点击"同意并进入"表示您已充分阅读并同意上述协议。点击"不同意"将退出应用。 "disagree": "Не согласен", // 不同意 "agreeAndEnter": "Согласен и войти", // 同意并进入 @@ -359,42 +359,42 @@ const Map ruRU = { 'Фактические преимущества зависят от деталей пакета и могут меняться с версиями.', // 新手引导 / Onboarding - 'skip': "Пропустить", + 'skip': 'Пропустить', 'next': 'Next', - 'sayLilyHint': "Say \"Lily Lily\" to the mic", - 'imHere': "I’m here~", - 'guideWelcomeWakeAI': "Welcome to Voitrans! First, wake your AI “Lily”.", - 'aiReplyCompleted': "Lily has finished the reply!", - 'aiThinking': "Lily is thinking…", - 'guideAwakenSuccess': "Great! Lily is awake—ask it to help.", - 'confirmInput': "Confirm Input", - 'guideClickSendPrefix': "Tap send, ", + 'sayLilyHint': 'Say "Lily Lily" to the mic', + 'imHere': 'I’m here~', + 'guideWelcomeWakeAI': 'Welcome to Voitrans! First, wake your AI “Lily”.', + 'aiReplyCompleted': 'Lily has finished the reply!', + 'aiThinking': 'Lily is thinking…', + 'guideAwakenSuccess': 'Great! Lily is awake—ask it to help.', + 'confirmInput': 'Confirm Input', + 'guideClickSendPrefix': 'Tap send, ', // AI 引导步骤 - 'guideWeatherStart': "Tell Lily: “What’s the weather today?”", - 'guideWeatherInput': "What’s the weather today?", - 'guideWeatherSend': "Lily will report the weather in real time", - 'guideWeatherEnd': "Lily can report weather live—try other commands", - 'guideMusicStart': "Tell Lily: “Play some rock music”", - 'guideMusicInput': "Play some rock music", - 'guideMusicSend': "Lily will find music for you", - 'guideMusicEnd': "Lily found music—try other commands", - 'guideNavStart': "Tell Lily: “Navigate to Shenzhen Airport”", - 'guideNavInput': "Navigate to Shenzhen Airport", - 'guideNavSend': "Lily will plan the route", - 'guideNavEnd': "Navigation set—try other commands", + 'guideWeatherStart': 'Tell Lily: “What’s the weather today?”', + 'guideWeatherInput': 'What’s the weather today?', + 'guideWeatherSend': 'Lily will report the weather in real time', + 'guideWeatherEnd': 'Lily can report weather live—try other commands', + 'guideMusicStart': 'Tell Lily: “Play some rock music”', + 'guideMusicInput': 'Play some rock music', + 'guideMusicSend': 'Lily will find music for you', + 'guideMusicEnd': 'Lily found music—try other commands', + 'guideNavStart': 'Tell Lily: “Navigate to Shenzhen Airport”', + 'guideNavInput': 'Navigate to Shenzhen Airport', + 'guideNavSend': 'Lily will plan the route', + 'guideNavEnd': 'Navigation set—try other commands', 'guideMeetingStart': - "Tell Lily: “Create a meeting reminder for 3pm tomorrow”", - 'guideMeetingInput': "Create a meeting reminder for 3pm tomorrow", - 'guideMeetingSend': "Lily will create a meeting reminder", - 'guideMeetingEnd': "Reminder created—try other commands", - 'guidePhoneStart': "Tell Lily: “Call Mom”", - 'guidePhoneInput': "Call Mom", - 'guidePhoneSend': "Lily will make the call", - 'guidePhoneEnd': "Call placed—try other commands", - 'guideSmsStart': "Tell Lily: “Send Dad a text: I’ll be home for dinner”", - 'guideSmsInput': "Text Dad: I’ll be home for dinner", - 'guideSmsSend': "Lily will send the message", - 'guideSmsEnd': "Message sent—voice control is convenient", + 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', + 'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', + 'guideMeetingSend': 'Lily will create a meeting reminder', + 'guideMeetingEnd': 'Reminder created—try other commands', + 'guidePhoneStart': 'Tell Lily: “Call Mom”', + 'guidePhoneInput': 'Call Mom', + 'guidePhoneSend': 'Lily will make the call', + 'guidePhoneEnd': 'Call placed—try other commands', + 'guideSmsStart': 'Tell Lily: “Send Dad a text: I’ll be home for dinner”', + 'guideSmsInput': 'Text Dad: I’ll be home for dinner', + 'guideSmsSend': 'Lily will send the message', + 'guideSmsEnd': 'Message sent—voice control is convenient', // 商务会议助手页 "startMeeting": "Начать встречу", @@ -442,6 +442,29 @@ const Map ruRU = { 'audioVideoRecording': 'Audio/Video Recording', 'callRecording': 'Call Recording', 'importAudio': 'Import Audio', + 'meetingRecordExitTitle': 'Выйти из записи', // 退出录音 + 'meetingRecordExitMessage': + 'Пожалуйста, выберите действие после выхода', // 请选择离开后的操作 + 'meetingRecordEndAndSave': 'Завершить и сохранить', // 结束录音并保存 + 'meetingRecordEndWithoutSave': 'Завершить без сохранения', // 结束录音不保存 + 'meetingRecordContinueInBackground': + 'Продолжить запись в фоновом режиме', // 后台继续录音 + 'meetingRecordStopTimeout': + 'Время остановки записи истекло, попробуйте еще раз', // 结束录音超时,请重试 + 'meetingRecordStopFailed': + 'Не удалось остановить запись, попробуйте еще раз', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': + 'Не удалось сохранить запись, попробуйте еще раз', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': 'Идет запись', // 录音进行中 + 'meetingRecordRecordingNotificationBody': + 'Запись в фоновом режиме, нажмите, чтобы вернуться', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': 'Разрешение на плавающее окно', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': + 'Чтобы показывать результаты перевода во время звонков или перевода аудио/видео, нам нужно разрешение на наложение. Это позволит видеть переводы в реальном времени при использовании других приложений.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': + 'Чтобы показывать плавающую панель записи (таймер/пауза/продолжить) во время записи, нам нужно разрешение на наложение.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': + 'Не удалось автоматически открыть системные настройки. Пожалуйста, откройте Настройки и вручную включите разрешение на наложение.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'Transcribing...', 'summarizing': 'Summarizing...', 'analyzing': 'Analyzing...', @@ -572,7 +595,7 @@ const Map ruRU = { 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': - 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', + '检测到您已永久拒绝存储权限。如需继续使用此功能,请前往应用设置中手动开启存储权限。', // Meeting模块 - 思维导图相关 'shareMindMap': 'Share Mind Map', @@ -628,7 +651,7 @@ const Map ruRU = { // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', 'syncToCloudTip': - 'Automatically sync your recordings to the cloud, you can play, manage and share recordings through any VOITRANS APP or VOITRANS Web (web.voitrans.com).', + '自动将你的录音同步到云端,你可以通过任意VOITRANS APP或VOITRANS Web(web.voitrans.com)播放、管理和分享录音。', 'syncToVoitransApp': 'Sync VOITRANS APP', 'transcriptionRecord': 'Transcription Record', @@ -721,8 +744,7 @@ const Map ruRU = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": - "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": "Are you sure you want to unbind device \\", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -770,13 +792,13 @@ const Map ruRU = { "nearbyFood": "What delicious food is nearby?", // 美食 // Agent controller - 'welcomeMessage': 'Привет! Я **СяоЯнь**, я могу вам помочь:\n\n' - '• Отвечать на вопросы и предоставлять информацию\n\n' - '• Голосовой перевод в реальном времени\n\n' - '• Рекомендовать музыку и подкасты\n\n' - '• Голосовые заметки и напоминания\n\n' - '• Управлять функциями наушников\n\n' - 'Чем я могу вам помочь?', + 'welcomeMessage': '你好!我是**Lily**,我能帮你:\n\n' + '• 回答问题和提供信息\n\n' + '• 实时语音翻译\n\n' + '• 推荐音乐和播客\n\n' + '• 语音备忘录和提醒\n\n' + '• 控制耳机功能\n\n' + '有什么我可以帮你的吗?', 'microphonePermission': 'Микрофон', 'voiceRecognitionPermissionText': 'Для распознавания речи требуется доступ к микрофону.', @@ -805,8 +827,8 @@ const Map ruRU = { 'pornographicVulgar': 'Порнографический/Вульгарный', 'misleadingAttack': 'Вводящий в заблуждение/Атака', 'illegalCriminal': 'Незаконный/Преступный', - 'privacyRelated': "Связано с конфиденциальностью", - 'copyrightViolation': "Нарушение моих авторских прав, репутации и т.д.", + 'privacyRelated': 'Связано с конфиденциальностью', + 'copyrightViolation': 'Нарушение моих авторских прав, репутации и т.д.', 'other': 'Другое', 'reportDescriptionHint': 'Мы хотим знать причину вашей жалобы, вы можете описать проблему, с которой столкнулись.', @@ -939,7 +961,7 @@ const Map ruRU = { //'success': '成功', 'imageCompressionFailed': 'Не удалось сжать изображение', 'avatarUpdateFailed': 'Не удалось обновить аватар', - 'usernameCannotBeEmpty': "Имя пользователя не может быть пустым", + 'usernameCannotBeEmpty': 'Имя пользователя не может быть пустым', 'saveSuccess': 'Успешно сохранено', 'personalInfoUpdated': 'Личная информация обновлена', 'saveFailed': 'Не удалось сохранить', @@ -1067,9 +1089,9 @@ const Map ruRU = { 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': - 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', + '检测到您已永久拒绝录音权限。如需继续使用此功能,请前往应用设置中手动开启麦克风权限。', 'storagePermissionPermanentDenial': - 'Storage permission has been permanently denied. To continue using this feature, please go to app settings to manually enable storage permission.', + '检测到您已永久拒绝存储权限。如需继续使用此功能,请前往应用设置中手动开启存储权限。', //permission_util.dart 'permissionUtilNeed': 'Need ', @@ -1476,9 +1498,9 @@ const Map ruRU = { "playAll": "Воспроизвести все", // 播放全部 // 语言名称 - "中文(简体)": "Китайский (упрощенный)", - "中文(繁体)": "Китайский (традиционный)", - "中文(香港繁体)": "Китайский (гонконгский традиционный)", + "中文(简体)": "中文(简体)", + "中文(繁体)": "中文(繁体)", + "中文(香港繁体)": "中文(香港繁体)", "英语": "Английский", "日语": "Японский", "韩语": "Корейский", @@ -1529,9 +1551,9 @@ const Map ruRU = { //余额不足弹窗 "insufficientBalanceDesc": - 'Insufficient balance, please go to the corresponding recharge page to recharge.', - "recharge": 'Go to Recharge', + "Insufficient balance, please go to the corresponding recharge page to recharge.", + "recharge": "Go to Recharge", // 会员到期提示 "aiMemberExpiredDesc": - 'AI membership expired, please go to the membership recharge page to renew.', + "AI membership expired, please go to the membership recharge page to renew.", }; diff --git a/lib/core/translations/language/sk_sk.dart b/lib/core/translations/language/sk_sk.dart index 6cd3b51ab..55fcc49aa 100644 --- a/lib/core/translations/language/sk_sk.dart +++ b/lib/core/translations/language/sk_sk.dart @@ -107,7 +107,7 @@ const Map skSK = { // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": - ", kliknutím na 'Súhlasím a vstúpiť' potvrdzujete, že ste si prečítali a súhlasíte s vyššie uvedenými zmluvami. Kliknutím на 'Nesúhlasím' opustíte aplikáciu.", // ,点击"同意并进入"表示您已充分阅读并同意上述协议。点击"不同意"将退出应用。 + ",点击'同意并进入'表示您已充分阅读并同意上述协议。点击'不同意'将退出应用。", // ,点击"同意并进入"表示您已充分阅读并同意上述协议。点击"不同意"将退出应用。 "disagree": "Nesúhlasím", // 不同意 "agreeAndEnter": "Súhlasím a vstúpiť", // 同意并进入 @@ -357,7 +357,7 @@ const Map skSK = { 'Actual benefits depend on the package details and may change with versions.', // 新手引导 / Onboarding - 'skip': "Preskočiť", + 'skip': 'Preskočiť', 'next': 'Next', 'sayLilyHint': 'Say "Lily Lily" to the mic', 'imHere': 'I’m here~', @@ -440,6 +440,28 @@ const Map skSK = { 'audioVideoRecording': 'Audio/Video Recording', 'callRecording': 'Call Recording', 'importAudio': 'Import Audio', + 'meetingRecordExitTitle': 'Ukončiť nahrávanie', // 退出录音 + 'meetingRecordExitMessage': 'Vyberte akciu po odchode', // 请选择离开后的操作 + 'meetingRecordEndAndSave': 'Ukončiť a uložiť', // 结束录音并保存 + 'meetingRecordEndWithoutSave': 'Ukončiť bez uloženia', // 结束录音不保存 + 'meetingRecordContinueInBackground': + 'Pokračovať v nahrávaní na pozadí', // 后台继续录音 + 'meetingRecordStopTimeout': + 'Časový limit zastavenia nahrávania vypršal, skúste to znova', // 结束录音超时,请重试 + 'meetingRecordStopFailed': + 'Zastavenie nahrávania zlyhalo, skúste to znova', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': + 'Uloženie nahrávky zlyhalo, skúste to znova', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': 'Prebieha nahrávanie', // 录音进行中 + 'meetingRecordRecordingNotificationBody': + 'Nahrávanie na pozadí, klepnutím sa vrátite', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': 'Povolenie plávajúceho okna', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': + 'Aby sme mohli zobrazovať výsledky prekladu počas hovorov alebo prekladu zvuku/videa, potrebujeme povolenie prekrytia. Vďaka tomu uvidíte preklady v reálnom čase aj pri používaní iných aplikácií.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': + 'Aby sme počas nahrávania zobrazili plávajúcu lištu nahrávania (časovač/pauza/pokračovať), potrebujeme povolenie prekrytia.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': + 'Nepodarilo sa automaticky otvoriť systémové nastavenia. Otvorte Nastavenia a povoľte prekrytie manuálne.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'Transcribing...', 'summarizing': 'Summarizing...', 'analyzing': 'Analyzing...', @@ -570,7 +592,7 @@ const Map skSK = { 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': - 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', + '检测到您已永久拒绝存储权限。如需继续使用此功能,请前往应用设置中手动开启存储权限。', // Meeting模块 - 思维导图相关 'shareMindMap': 'Share Mind Map', @@ -626,7 +648,7 @@ const Map skSK = { // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', 'syncToCloudTip': - 'Automatically sync your recordings to the cloud, you can play, manage and share recordings through any VOITRANS APP or VOITRANS Web (web.voitrans.com).', + '自动将你的录音同步到云端,你可以通过任意VOITRANS APP或VOITRANS Web(web.voitrans.com)播放、管理和分享录音。', 'syncToVoitransApp': 'Sync VOITRANS APP', 'transcriptionRecord': 'Transcription Record', @@ -718,8 +740,7 @@ const Map skSK = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": - "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": "Are you sure you want to unbind device \\", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -767,13 +788,13 @@ const Map skSK = { "nearbyFood": "What delicious food is nearby?", // 美食 // Agent controller - 'welcomeMessage': 'Ahoj! Som **Lily**, môžem vám pomôcť:\n\n' - '• Odpovedať na otázky a poskytovať informácie\n\n' - '• Hlasový preklad v reálnom čase\n\n' - '• Odporúčať hudbu a podcasty\n\n' - '• Hlasové poznámky a pripomienky\n\n' - '• Ovládať funkcie slúchadiel\n\n' - 'Ako vám môžem pomôcť?', + 'welcomeMessage': '你好!我是**Lily**,我能帮你:\n\n' + '• 回答问题和提供信息\n\n' + '• 实时语音翻译\n\n' + '• 推荐音乐和播客\n\n' + '• 语音备忘录和提醒\n\n' + '• 控制耳机功能\n\n' + '有什么我可以帮你的吗?', 'microphonePermission': 'Mikrofón', 'voiceRecognitionPermissionText': 'Funkcia rozpoznávania reči vyžaduje prístup k mikrofónu.', @@ -1060,9 +1081,9 @@ const Map skSK = { 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': - 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', + '检测到您已永久拒绝录音权限。如需继续使用此功能,请前往应用设置中手动开启麦克风权限。', 'storagePermissionPermanentDenial': - 'Storage permission has been permanently denied. To continue using this feature, please go to app settings to manually enable storage permission.', + '检测到您已永久拒绝存储权限。如需继续使用此功能,请前往应用设置中手动开启存储权限。', //permission_util.dart 'permissionUtilNeed': 'Need ', @@ -1468,9 +1489,9 @@ const Map skSK = { "playAll": "Prehrať všetko", // 播放全部 // 语言名称 - "中文(简体)": "Čínština (zjednodušená)", - "中文(繁体)": "Čínština (tradičná)", - "中文(香港繁体)": "Čínština (hongkonská tradičná)", + "中文(简体)": "中文(简体)", + "中文(繁体)": "中文(繁体)", + "中文(香港繁体)": "中文(香港繁体)", "英语": "Angličtina", "日语": "Japončina", "韩语": "Kórejčina", @@ -1521,9 +1542,9 @@ const Map skSK = { //余额不足弹窗 "insufficientBalanceDesc": - 'Insufficient balance, please go to the corresponding recharge page to recharge.', - "recharge": 'Go to Recharge', + "Insufficient balance, please go to the corresponding recharge page to recharge.", + "recharge": "Go to Recharge", // 会员到期提示 "aiMemberExpiredDesc": - 'AI membership expired, please go to the membership recharge page to renew.', + "AI membership expired, please go to the membership recharge page to renew.", }; diff --git a/lib/core/translations/language/sl_si.dart b/lib/core/translations/language/sl_si.dart index 8e6a0d55f..fd35899a0 100644 --- a/lib/core/translations/language/sl_si.dart +++ b/lib/core/translations/language/sl_si.dart @@ -107,7 +107,7 @@ const Map slSI = { // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": - ", s klikom na 'Strinjam se in vstopi' potrjujete, da ste v celoti prebrali in se strinjate z zgoraj navedenimi sporazumi. S klikom na 'Ne strinjam se' boste zapustili aplikacijo.", // ,点击"同意并进入"表示您已充分阅读并同意上述协议。点击"不同意"将退出应用。 + ",点击'同意并进入'表示您已充分阅读并同意上述协议。点击'不同意'将退出应用。", // ,点击"同意并进入"表示您已充分阅读并同意上述协议。点击"不同意"将退出应用。 "disagree": "Ne strinjam se", // 不同意 "agreeAndEnter": "Strinjam se in vstopi", // 同意并进入 @@ -357,7 +357,7 @@ const Map slSI = { 'Actual benefits depend on the package details and may change with versions.', // 新手引导 / Onboarding - 'skip': "Preskoči", + 'skip': 'Preskoči', 'next': 'Next', 'sayLilyHint': 'Say "Lily Lily" to the mic', 'imHere': 'I’m here~', @@ -440,6 +440,27 @@ const Map slSI = { 'audioVideoRecording': 'Audio/Video Recording', 'callRecording': 'Call Recording', 'importAudio': 'Import Audio', + 'meetingRecordExitTitle': 'Izhod iz snemanja', // 退出录音 + 'meetingRecordExitMessage': 'Izberite dejanje po izhodu', // 请选择离开后的操作 + 'meetingRecordEndAndSave': 'Končaj in shrani', // 结束录音并保存 + 'meetingRecordEndWithoutSave': 'Končaj brez shranjevanja', // 结束录音不保存 + 'meetingRecordContinueInBackground': 'Nadaljuj snemanje v ozadju', // 后台继续录音 + 'meetingRecordStopTimeout': + 'Časovna omejitev ustavitve snemanja, poskusite znova', // 结束录音超时,请重试 + 'meetingRecordStopFailed': + 'Snemanja ni bilo mogoče ustaviti, poskusite znova', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': + 'Posnetka ni bilo mogoče shraniti, poskusite znova', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': 'Snemanje poteka', // 录音进行中 + 'meetingRecordRecordingNotificationBody': + 'Snemanje v ozadju, tapnite za vrnitev', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': 'Dovoljenje za plavajoče okno', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': + 'Za prikaz rezultatov prevajanja med klici ali prevajanjem zvoka/videa potrebujemo dovoljenje za prekrivanje. Tako lahko med uporabo drugih aplikacij vidite prevode v realnem času.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': + 'Za prikaz plavajoče vrstice snemanja (časovnik/premor/nadaljuj) med snemanjem potrebujemo dovoljenje za prekrivanje.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': + 'Sistemskih nastavitev ni bilo mogoče samodejno odpreti. Odprite Nastavitve in ročno omogočite dovoljenje za prekrivanje.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'Transcribing...', 'summarizing': 'Summarizing...', 'analyzing': 'Analyzing...', @@ -570,7 +591,7 @@ const Map slSI = { 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': - 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', + '检测到您已永久拒绝存储权限。如需继续使用此功能,请前往应用设置中手动开启存储权限。', // Meeting模块 - 思维导图相关 'shareMindMap': 'Share Mind Map', @@ -626,7 +647,7 @@ const Map slSI = { // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', 'syncToCloudTip': - 'Automatically sync your recordings to the cloud, you can play, manage and share recordings through any VOITRANS APP or VOITRANS Web (web.voitrans.com).', + '自动将你的录音同步到云端,你可以通过任意VOITRANS APP或VOITRANS Web(web.voitrans.com)播放、管理和分享录音。', 'syncToVoitransApp': 'Sync VOITRANS APP', 'transcriptionRecord': 'Transcription Record', @@ -720,8 +741,7 @@ const Map slSI = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": - "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": "Are you sure you want to unbind device \\", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -769,13 +789,13 @@ const Map slSI = { "nearbyFood": "What delicious food is nearby?", // 美食 // Agent controller - 'welcomeMessage': 'Živjo! Sem **Lily**, lahko vam pomagam:\n\n' - '• Odgovarjam na vprašanja in nudim informacije\n\n' - '• Glasovno prevajanje v realnem času\n\n' - '• Priporočam glasbo in podcaste\n\n' - '• Glasovne beležke in opomnike\n\n' - '• Upravljam funkcije slušalk\n\n' - 'Kako vam lahko pomagam?', + 'welcomeMessage': '你好!我是**Lily**,我能帮你:\n\n' + '• 回答问题和提供信息\n\n' + '• 实时语音翻译\n\n' + '• 推荐音乐和播客\n\n' + '• 语音备忘录和提醒\n\n' + '• 控制耳机功能\n\n' + '有什么我可以帮你的吗?', 'microphonePermission': 'Mikrofon', 'voiceRecognitionPermissionText': 'Funkcija prepoznavanja govora zahteva dostop do mikrofona.', @@ -830,10 +850,10 @@ const Map slSI = { 'currentLocation': 'Trenutna lokacija', // 当前位置 'approximate': 'Pribl.', // 大约 'enterRoad': 'Vstopi na cesto', // 进入道路 - "driving": 'Vožnja', - "walking": 'Hoja', - "bicycling": 'Kolesarjenje', - "tsransit": 'Javni prevoz', + "driving": "Vožnja", + "walking": "Hoja", + "bicycling": "Kolesarjenje", + "tsransit": "Javni prevoz", //天气卡片 weather_card 'weatherQuery': 'Poizvedba o vremenskih razmerah:', @@ -1065,9 +1085,9 @@ const Map slSI = { 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': - 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', + '检测到您已永久拒绝录音权限。如需继续使用此功能,请前往应用设置中手动开启麦克风权限。', 'storagePermissionPermanentDenial': - 'Storage permission has been permanently denied. To continue using this feature, please go to app settings to manually enable storage permission.', + '检测到您已永久拒绝存储权限。如需继续使用此功能,请前往应用设置中手动开启存储权限。', //permission_util.dart 'permissionUtilNeed': 'Need ', @@ -1473,9 +1493,9 @@ const Map slSI = { "playAll": "Predvajaj vse", // 播放全部 // 语言名称 - "中文(简体)": "Kitajščina (poenostavljena)", - "中文(繁体)": "Kitajščina (tradicionalna)", - "中文(香港繁体)": "Kitajščina (hongkonška tradicionalna)", + "中文(简体)": "中文(简体)", + "中文(繁体)": "中文(繁体)", + "中文(香港繁体)": "中文(香港繁体)", "英语": "Angleščina", "日语": "Japonščina", "韩语": "Korejščina", @@ -1526,9 +1546,9 @@ const Map slSI = { //余额不足弹窗 "insufficientBalanceDesc": - 'Insufficient balance, please go to the corresponding recharge page to recharge.', - "recharge": 'Go to Recharge', + "Insufficient balance, please go to the corresponding recharge page to recharge.", + "recharge": "Go to Recharge", // 会员到期提示 "aiMemberExpiredDesc": - 'AI membership expired, please go to the membership recharge page to renew.', + "AI membership expired, please go to the membership recharge page to renew.", }; diff --git a/lib/core/translations/language/sr_rs.dart b/lib/core/translations/language/sr_rs.dart index 3ef7aeb82..3fca5785d 100644 --- a/lib/core/translations/language/sr_rs.dart +++ b/lib/core/translations/language/sr_rs.dart @@ -91,8 +91,7 @@ const Map srRS = { "tip": "Savet", "pleaseEnterCompleteCode": "Unesite kompletan verifikacioni kod", "loginFailed": "Neuspešno prijavljivanje, pokušajte ponovo", - 'pleaseAcceptPrivacyPolicy': - 'Prvo pročitajte i prihvatite Politiku privatnosti i Korisnički ugovor', + 'pleaseAcceptPrivacyPolicy': 'Prvo pročitajte i prihvatite Politiku privatnosti i Korisnički ugovor', "enterVerificationCode": "Unesite verifikacioni kod", "verificationCodeSentTo": "Verifikacioni kod je poslat na", "resendVerificationCode": "Ponovo pošalji verifikacioni kod", @@ -101,12 +100,11 @@ const Map srRS = { // 隐私政策弹窗 "loginDeclaration": "Voitrans izjava", // Voitrans 声明 - "welcomeToThisApp": - "Dobrodošli u Voitrans, molimo vas da pažljivo pročitate", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": "Dobrodošli u Voitrans, molimo vas da pažljivo pročitate", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": - ", klikom na 'Slažem se i ulazim' potvrđujete da ste u potpunosti pročitali i da se slažete sa gore navedenim ugovorima. Klikom na 'Ne slažem se' izaći ćete iz aplikacije.", // ,点击"同意并进入"表示您已充分阅读并同意上述协议。点击"不同意"将退出应用。 + ",点击'同意并进入'表示您已充分阅读并同意上述协议。点击'不同意'将退出应用。", // ,点击"同意并进入"表示您已充分阅读并同意上述协议。点击"不同意"将退出应用。 "disagree": "Ne slažem se", // 不同意 "agreeAndEnter": "Slažem se i ulazim", // 同意并进入 @@ -118,30 +116,24 @@ const Map srRS = { "signal": "Signal", "deviceId": "ID uređaja", "firmwareVersion": "Verzija firmvera", - "disconnectedDevice": - "Nijedan uređaj nije povezan, kliknite na dugme ispod da biste se povezali", + "disconnectedDevice": "Nijedan uređaj nije povezan, kliknite na dugme ispod da biste se povezali", "connectDevice": "Poveži uređaj", "topAiExperiences": "Vrhunska AI iskustva", "aiAssistant": "AI sveobuhvatni asistent", - "aiAssistantInfo": - "Ekskluzivni konsultant 24/7, odgovara na pitanja, daje predloge", + "aiAssistantInfo": "Ekskluzivni konsultant 24/7, odgovara na pitanja, daje predloge", "interpretation": "Simultano prevođenje", - "simultaneousInterpretationInfo": - "Prevođenje u realnom vremenu na 80+ jezika, bezbrižna putovanja u inostranstvo", + "simultaneousInterpretationInfo": "Prevođenje u realnom vremenu na 80+ jezika, bezbrižna putovanja u inostranstvo", "aiCompanion": "Porodični pratilac", "aiCompanionInfo": "Razume vas, toplo društvo", "homeSlogan": "Povezivanje sveta, izvan zvuka", - "turnEarphones": - "Otvorite futrolu za punjenje slušalica i stavite slušalice u uši", + "turnEarphones": "Otvorite futrolu za punjenje slušalica i stavite slušalice u uši", "currentlyConnected": "Trenutno povezano:", "unsystemSetup": "Idite na sistemska podešavanja", "talkLater": "Kasnije", "initializing": "Inicijalizacija...", - "bluetoothInitializationFailure": - "Neuspešna inicijalizacija Bluetooth servisa", + "bluetoothInitializationFailure": "Neuspešna inicijalizacija Bluetooth servisa", "checkingPermissions": "Provera dozvola...", - "lackPermissions": - "Nedostaju Bluetooth dozvole i je potrebno omogućiti pristup lokaciji", + "lackPermissions": "Nedostaju Bluetooth dozvole i je potrebno omogućiti pristup lokaciji", "searchingDevice": "Pretraga uređaja...", "findConnectedDevice": "Pronađen povezan uređaj", "notFound": "Nije pronađen povezan Bluetooth uređaj", @@ -184,8 +176,7 @@ const Map srRS = { "healthConsultant": "Višenamenski AI ćaskanje", "healthConsultantInfo": "Nudi više funkcija AI ćaskanja", "conferenceAssistant": "Asistent za poslovne sastanke", - "conferenceAssistantInfo": - "Beleženje zapisnika u realnom vremenu, višejezično prevođenje", + "conferenceAssistantInfo": "Beleženje zapisnika u realnom vremenu, višejezično prevođenje", "usageStats": "Statistika korišćenja", "usageStatsInfo": "Pregledajte vaše korišćenje aplikacije", "scene": "Scena", @@ -228,8 +219,7 @@ const Map srRS = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": - "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -285,10 +275,8 @@ const Map srRS = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': - 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', - 'meetingHeaderDesc2': - 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', + 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -297,35 +285,27 @@ const Map srRS = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': - 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': - 'Real-time simultaneous interpretation and text translation with low-latency voice.', + 'transHeaderDesc1': 'Real-time simultaneous interpretation and text translation with low-latency voice.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'translateZhEn': 'Chinese-English translation', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'multiLangTextTranslation': 'Multilingual text translation', - 'termOptimizationContextPreserve': - 'Terminology optimization and context preservation', + 'termOptimizationContextPreserve': 'Terminology optimization and context preservation', 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'personalVocabularyMemory': 'Personal vocabulary memory', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'colorHighContrast': 'High color contrast', - 'transDisclaimer': - 'Translation performance depends on microphone, network latency, and ambient noise.', + 'transDisclaimer': 'Translation performance depends on microphone, network latency, and ambient noise.', // AI 商品页描述 - 'aiHeaderDesc1': - 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': - 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': - 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': - 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -334,10 +314,8 @@ const Map srRS = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': - 'Template messages and schedule reminders', - 'aiDisclaimer': - 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', + 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Benefits overview', @@ -352,11 +330,10 @@ const Map srRS = { 'generalPrivileges': 'General privileges', 'earlyAccessNewFeatures': 'Early access to new features', 'crossDeviceSync': 'Cross-device sync', - 'vipDisclaimer': - 'Actual benefits depend on the package details and may change with versions.', + 'vipDisclaimer': 'Actual benefits depend on the package details and may change with versions.', // 新手引导 / Onboarding - 'skip': "Preskoči", + 'skip': 'Preskoči', 'next': 'Next', 'sayLilyHint': 'Say "Lily Lily" to the mic', 'imHere': 'I’m here~', @@ -379,8 +356,7 @@ const Map srRS = { 'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavSend': 'Lily will plan the route', 'guideNavEnd': 'Navigation set—try other commands', - 'guideMeetingStart': - 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', + 'guideMeetingStart': 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingEnd': 'Reminder created—try other commands', @@ -430,8 +406,7 @@ const Map srRS = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': - 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -439,6 +414,23 @@ const Map srRS = { 'audioVideoRecording': 'Audio/Video Recording', 'callRecording': 'Call Recording', 'importAudio': 'Import Audio', + 'meetingRecordExitTitle': 'Izađi iz snimanja', // 退出录音 + 'meetingRecordExitMessage': 'Izaberite radnju nakon izlaska', // 请选择离开后的操作 + 'meetingRecordEndAndSave': 'Završi i sačuvaj', // 结束录音并保存 + 'meetingRecordEndWithoutSave': 'Završi bez čuvanja', // 结束录音不保存 + 'meetingRecordContinueInBackground': 'Nastavi snimanje u pozadini', // 后台继续录音 + 'meetingRecordStopTimeout': 'Vreme za zaustavljanje snimanja je isteklo, pokušajte ponovo', // 结束录音超时,请重试 + 'meetingRecordStopFailed': 'Zaustavljanje snimanja nije uspelo, pokušajte ponovo', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': 'Čuvanje snimka nije uspelo, pokušajte ponovo', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': 'Snimanje u toku', // 录音进行中 + 'meetingRecordRecordingNotificationBody': 'Snimanje u pozadini, dodirnite za povratak', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': 'Dozvola za plutajući prozor', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': + 'Da bismo prikazali rezultate prevoda tokom poziva ili audio/video prevoda, potrebna nam je dozvola za prekrivanje. To vam omogućava da vidite prevode u realnom vremenu dok koristite druge aplikacije.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': + 'Da bismo tokom snimanja prikazali plutajuću traku snimanja (tajmer/pauza/nastavi), potrebna nam je dozvola za prekrivanje.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': + 'Nije moguće automatski otvoriti sistemska podešavanja. Otvorite Podešavanja i ručno omogućite dozvolu za prekrivanje.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'Transcribing...', 'summarizing': 'Summarizing...', 'analyzing': 'Analyzing...', @@ -486,54 +478,40 @@ const Map srRS = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': - 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': - 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': - 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': - 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': - 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': - 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': - 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': - 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': - 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': - 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': - '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': - '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': - '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': - 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -545,8 +523,7 @@ const Map srRS = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': - 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -566,10 +543,9 @@ const Map srRS = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': - 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': - 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', + '检测到您已永久拒绝存储权限。如需继续使用此功能,请前往应用设置中手动开启存储权限。', // Meeting模块 - 思维导图相关 'shareMindMap': 'Share Mind Map', @@ -613,19 +589,17 @@ const Map srRS = { // Meeting模块 - 发言者相关 'applyToAllParagraphs': 'Primeni na sve pasuse ovog govornika', - 'summaryWillBeUpdatedAutomatically': - 'Sažetak će se automatski ažurirati prema šablonu', + 'summaryWillBeUpdatedAutomatically': 'Sažetak će se automatski ažurirati prema šablonu', 'nameCurrentSpeaker': 'Name Current Speaker', 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': - 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', 'syncToCloudTip': - 'Automatically sync your recordings to the cloud, you can play, manage and share recordings through any VOITRANS APP or VOITRANS Web (web.voitrans.com).', + '自动将你的录音同步到云端,你可以通过任意VOITRANS APP或VOITRANS Web(web.voitrans.com)播放、管理和分享录音。', 'syncToVoitransApp': 'Sync VOITRANS APP', 'transcriptionRecord': 'Transcription Record', @@ -645,8 +619,7 @@ const Map srRS = { "cloudSync": "Nákup sinkronizacije u oblaku", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": - "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", "joinDevice": "Povezan uređaj:", "accountId": "ID naloga:", "systemSetting": "Sistemsko podešavanje", @@ -659,8 +632,7 @@ const Map srRS = { "privacySettings": "Podešavanja privatnosti", "privacySettingsInfo": "Upravljanje prikupljanjem podataka i dozvolama", "permissionManagement": "Upravljanje dozvolama", // 权限管理 - "permissionManagementInfo": - "Upravljanje podešavanjima dozvola aplikacije", // 管理应用权限设置 + "permissionManagementInfo": "Upravljanje podešavanjima dozvola aplikacije", // 管理应用权限设置 "aboutApplication": "O aplikaciji", "versions": "Verzija", "checkUpdates": "Proveri ažuriranja", @@ -669,11 +641,9 @@ const Map srRS = { "voiceServiceInfo": "Izbor servisa za prepoznavanje i sintezu govora", "selectVoiceService": "Izaberi govorni servis", "azureVoiceService": "Azure govorni servis", - "azureVoiceServiceInfo": - "Microsoftov govorni servis u oblaku, podržava visokokvalitetnu sintezu i prepoznavanje govora", + "azureVoiceServiceInfo": "Microsoftov govorni servis u oblaku, podržava visokokvalitetnu sintezu i prepoznavanje govora", "flutterVoiceService": "Flutter lokalni govorni servis", - "flutterVoiceServiceInfo": - "Lokalni govorni servis uređaja, može se koristiti bez internet konekcije", + "flutterVoiceServiceInfo": "Lokalni govorni servis uređaja, može se koristiti bez internet konekcije", 'timbreService': 'Servis za boju glasa', 'timbreServiceInfo': 'Izaberite servis za sintezu govora sa bojom glasa', 'defaultTimbre': 'Podrazumevana boja glasa', @@ -702,8 +672,7 @@ const Map srRS = { // 设置页面 - 实时语音对话 "realtimeVoiceChat": "Glasovno ćaskanje u realnom vremenu", - "realtimeVoiceChatInfo": - "Iskusite funkciju inteligentne glasovne interakcije (pregled funkcije)", + "realtimeVoiceChatInfo": "Iskusite funkciju inteligentne glasovne interakcije (pregled funkcije)", "loading": "Učitavanje...", //设备管理页面 @@ -718,8 +687,7 @@ const Map srRS = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": - "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": "Are you sure you want to unbind device \\", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -767,22 +735,18 @@ const Map srRS = { "nearbyFood": "What delicious food is nearby?", // 美食 // Agent controller - 'welcomeMessage': 'Zdravo! Ja sam **Lily**, mogu vam pomoći:\n\n' - '• Da odgovaram na pitanja i pružam informacije\n\n' - '• Glasovno prevođenje u realnom vremenu\n\n' - '• Da preporučujem muziku i podkaste\n\n' - '• Glasovne beleške i podsetnike\n\n' - '• Da kontrolišem funkcije slušalica\n\n' - 'Kako vam mogu pomoći?', + 'welcomeMessage': '你好!我是**Lily**,我能帮你:\n\n' + '• 回答问题和提供信息\n\n' + '• 实时语音翻译\n\n' + '• 推荐音乐和播客\n\n' + '• 语音备忘录和提醒\n\n' + '• 控制耳机功能\n\n' + '有什么我可以帮你的吗?', 'microphonePermission': 'Mikrofon', - 'voiceRecognitionPermissionText': - 'Funkcija prepoznavanja govora zahteva pristup mikrofonu.', - 'voiceTranslationPermissionText': - 'Funkcija prepoznavanja i prevođenja govora zahteva pristup mikrofonu.', - 'phoneCallPermissionText': - 'Funkcija pozivanja zahteva pristup mikrofonu za glasovne pozive.', - 'permissionDeniedText': - 'Trajno ste odbili dozvolu za mikrofon, idite u sistemska podešavanja da biste je omogućili.', + 'voiceRecognitionPermissionText': 'Funkcija prepoznavanja govora zahteva pristup mikrofonu.', + 'voiceTranslationPermissionText': 'Funkcija prepoznavanja i prevođenja govora zahteva pristup mikrofonu.', + 'phoneCallPermissionText': 'Funkcija pozivanja zahteva pristup mikrofonu za glasovne pozive.', + 'permissionDeniedText': 'Trajno ste odbili dozvolu za mikrofon, idite u sistemska podešavanja da biste je omogućili.', 'startVoiceInput': 'Započni unos glasom', 'startPhoneCallMode': 'Započni režim poziva, započni unos glasom', @@ -805,8 +769,7 @@ const Map srRS = { 'privacyRelated': 'Vezano za privatnost', 'copyrightViolation': 'Kršenje mog autorskog prava, ugleda, itd.', 'other': 'Ostalo', - 'reportDescriptionHint': - 'Želimo da znamo razlog vaše prijave, možete opisati problem sa kojim ste se suočili.', + 'reportDescriptionHint': 'Želimo da znamo razlog vaše prijave, možete opisati problem sa kojim ste se suočili.', //'submit': '提交', //Message_bubble @@ -838,22 +801,14 @@ const Map srRS = { 'lowest': 'Najniža', 'futureForecast': 'Buduća prognoza', 'hotWeatherTip': 'Danas je vruće, pazite na toplotni udar i pijte puno vode', - 'coldWeatherTip': - 'Danas je temperatura niska, obucite se toplo kada izlazite da se ne prehladite', - 'rainyWeatherTip': - 'Danas pada kiša, ponesite kišobran kada izlazite i pazite na putu', - 'snowyWeatherTip': - 'Danas pada sneg, put je klizav, pazite i obucite se toplo', - 'foggyWeatherTip': - 'Danas je magla, vidljivost je smanjena, nosite masku kada izlazite', - 'windyWeatherTip': - 'Danas duva jak vetar, pazite kada izlazite i osigurajte svoje stvari', - 'sunnyWeatherTip': - 'Danas je sunčano i jako UV zračenje, koristite kremu za sunčanje kada izlazite', - 'temperatureDifferenceTip': - 'Danas je velika razlika u temperaturi između dana i noći, prilagodite odeću', - 'comfortableWeatherTip': - 'Danas je vreme prijatno, odlično vreme za aktivnosti na otvorenom', + 'coldWeatherTip': 'Danas je temperatura niska, obucite se toplo kada izlazite da se ne prehladite', + 'rainyWeatherTip': 'Danas pada kiša, ponesite kišobran kada izlazite i pazite na putu', + 'snowyWeatherTip': 'Danas pada sneg, put je klizav, pazite i obucite se toplo', + 'foggyWeatherTip': 'Danas je magla, vidljivost je smanjena, nosite masku kada izlazite', + 'windyWeatherTip': 'Danas duva jak vetar, pazite kada izlazite i osigurajte svoje stvari', + 'sunnyWeatherTip': 'Danas je sunčano i jako UV zračenje, koristite kremu za sunčanje kada izlazite', + 'temperatureDifferenceTip': 'Danas je velika razlika u temperaturi između dana i noći, prilagodite odeću', + 'comfortableWeatherTip': 'Danas je vreme prijatno, odlično vreme za aktivnosti na otvorenom', "monday": "Pon", "tuesday": "Uto", "wednesday": "Sre", @@ -903,31 +858,24 @@ const Map srRS = { "notSet": "Nije podešeno", "accountSetting": "Podešavanja naloga", "logout": "Odjavi se", - "logoutTips": - "Da li ste sigurni da želite da se odjavite sa trenutnog naloga?", + "logoutTips": "Da li ste sigurni da želite da se odjavite sa trenutnog naloga?", 'deleteAccount': 'Obriši nalog', - 'deleteAccountTips': - 'Da li ste sigurni da želite trajno da obrišete svoj nalog? Ova radnja se ne može opozvati', + 'deleteAccountTips': 'Da li ste sigurni da želite trajno da obrišete svoj nalog? Ova radnja se ne može opozvati', 'clean': 'Clear Cache', 'cleanTips': 'Are you sure you want to clear personal cache?', // Profile 错误信息 - 'networkConnectionFailed': - 'Neuspešna mrežna veza, proverite podešavanja mreže i pokušajte ponovo', - 'serverTemporarilyUnavailable': - 'Server je trenutno nedostupan, pokušajte ponovo kasnije', + 'networkConnectionFailed': 'Neuspešna mrežna veza, proverite podešavanja mreže i pokušajte ponovo', + 'serverTemporarilyUnavailable': 'Server je trenutno nedostupan, pokušajte ponovo kasnije', 'loginExpiredPleaseRelogin': 'Vaša sesija je istekla, prijavite se ponovo', 'noPermissionForThisOperation': 'Nemate dozvolu za ovu operaciju', 'requestedResourceNotFound': 'Traženi resurs nije pronađen', - 'imageProcessingFailedPleaseReselect': - 'Neuspešna obrada slike, izaberite drugu sliku', + 'imageProcessingFailedPleaseReselect': 'Neuspešna obrada slike, izaberite drugu sliku', 'operationFailedPleaseRetry': 'Operacija nije uspela, pokušajte ponovo', 'serverReturnedError': 'Server je vratio grešku', 'serverError': 'Greška na serveru', - 'networkConnectionFailedCheckSettings': - 'Neuspešna mrežna veza, proverite podešavanja mreže', - 'serverInternalErrorRetryLater': - 'Interna greška na serveru, pokušajte ponovo kasnije', + 'networkConnectionFailedCheckSettings': 'Neuspešna mrežna veza, proverite podešavanja mreže', + 'serverInternalErrorRetryLater': 'Interna greška na serveru, pokušajte ponovo kasnije', // Profile 用户交互 //'error': '错误', @@ -946,19 +894,13 @@ const Map srRS = { // 账号服务相关 'clearUserDataFailed': 'Neuspešno brisanje korisničkih podataka', // 清理用户数据失败 'deleteUserDataFailed': 'Neuspešno brisanje korisničkih podataka', // 删除用户数据失败 - 'thirdPartyLogoutSuccess': - 'Uspešno odjavljivanje sa treće strane', // 第三方登录退出成功 - 'thirdPartyLogoutFailed': - 'Neuspešno odjavljivanje sa treće strane', // 第三方登录退出失败 - 'signOutProcessError': - 'Došlo je do greške tokom procesa odjavljivanja', // 登出过程发生错误 - 'deleteAccountProcessError': - 'Došlo je do greške tokom procesa brisanja naloga', // 删除账号过程发生错误 + 'thirdPartyLogoutSuccess': 'Uspešno odjavljivanje sa treće strane', // 第三方登录退出成功 + 'thirdPartyLogoutFailed': 'Neuspešno odjavljivanje sa treće strane', // 第三方登录退出失败 + 'signOutProcessError': 'Došlo je do greške tokom procesa odjavljivanja', // 登出过程发生错误 + 'deleteAccountProcessError': 'Došlo je do greške tokom procesa brisanja naloga', // 删除账号过程发生错误 'userDataClearSuccess': 'Korisnički podaci uspešno obrisani', // 用户数据清理成功 - 'allUserDataClearSuccess': - 'Svi korisnički podaci uspešno obrisani', // 所有用户数据清理成功 - 'accountServiceInitialized': - 'AccountService je inicijalizovan', // AccountService 已初始化 + 'allUserDataClearSuccess': 'Svi korisnički podaci uspešno obrisani', // 所有用户数据清理成功 + 'accountServiceInitialized': 'AccountService je inicijalizovan', // AccountService 已初始化 // 权限管理页面 'getPermissionStatusFailed': 'Neuspešno dobijanje statusa dozvole', @@ -981,97 +923,67 @@ const Map srRS = { 'locationInfo': 'Informacije o lokaciji', 'phonePermissionDesc': 'Koristi se za funkciju pozivanja', 'smsPermissionDesc': 'Koristi se za funkciju slanja SMS-a', - 'alarmPermissionDesc': - 'Used to set exact alarms to ensure reminders trigger on time', - 'calendarWritePermissionDesc': - 'Koristi se za kreiranje događaja i podsetnika u kalendaru', - 'calendarFullAccessPermissionDesc': - 'Koristi se za čitanje i upravljanje događajima i podsetnicima u kalendaru', - 'locationPermissionDesc': - 'Koristi se za dobijanje informacija o trenutnoj lokaciji', + 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', + 'calendarWritePermissionDesc': 'Koristi se za kreiranje događaja i podsetnika u kalendaru', + 'calendarFullAccessPermissionDesc': 'Koristi se za čitanje i upravljanje događajima i podsetnicima u kalendaru', + 'locationPermissionDesc': 'Koristi se za dobijanje informacija o trenutnoj lokaciji', 'appFunctionNeeds': 'Funkcija aplikacije zahteva', 'authorized': 'Autorizovano', 'unauthorized': 'Neautorizovano', - 'needOpenInSystemSettings': - 'Potrebno je omogućiti u sistemskim podešavanjima', + 'needOpenInSystemSettings': 'Potrebno je omogućiti u sistemskim podešavanjima', 'partialAuthorization': 'Delimična autorizacija', 'unknownStatus': 'Nepoznat status', 'permissionGranted': 'Dozvola je odobrena', 'permissionRequestError': 'Greška prilikom traženja dozvole', 'phonePermissionDetailDesc': 'Funkcija pozivanja zahteva dozvolu za telefon', 'smsPermissionDetailDesc': 'Funkcija slanja SMS-a zahteva dozvolu za SMS', - 'alarmPermissionDetailDesc': - 'This permission is required to set exact alarms and ensure reminders trigger on time', - 'calendarWritePermissionDetailDesc': - 'Kreiranje događaja u kalendaru zahteva dozvolu za pisanje u kalendar', - 'calendarFullAccessPermissionDetailDesc': - 'Upravljanje događajima u kalendaru zahteva potpunu dozvolu za kalendar', - 'locationPermissionDetailDesc': - 'Dobijanje informacija o lokaciji zahteva dozvolu za lokaciju', + 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'calendarWritePermissionDetailDesc': 'Kreiranje događaja u kalendaru zahteva dozvolu za pisanje u kalendar', + 'calendarFullAccessPermissionDetailDesc': 'Upravljanje događajima u kalendaru zahteva potpunu dozvolu za kalendar', + 'locationPermissionDetailDesc': 'Dobijanje informacija o lokaciji zahteva dozvolu za lokaciju', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': - 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': - 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': - 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': - 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': - 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': - 'App needs notification permission to send you important alerts and messages', - 'appNeedsPermissionForFullFunction': - 'Aplikacija zahteva ovu dozvolu za punu funkcionalnost', - 'permanentDenialText': - 'Trajno ste odbili dozvolu za {permission}, idite u podešavanja aplikacije da biste je omogućili', + 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', + 'appNeedsPermissionForFullFunction': 'Aplikacija zahteva ovu dozvolu za punu funkcionalnost', + 'permanentDenialText': 'Trajno ste odbili dozvolu za {permission}, idite u podešavanja aplikacije da biste je omogućili', 'goToSettings': 'Idi na podešavanja', // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': - 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': - 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': - 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': - 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': - 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': - 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': - 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': - 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': - 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': - 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': - 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': - 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': - 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', + '检测到您已永久拒绝录音权限。如需继续使用此功能,请前往应用设置中手动开启麦克风权限。', 'storagePermissionPermanentDenial': - 'Storage permission has been permanently denied. To continue using this feature, please go to app settings to manually enable storage permission.', + '检测到您已永久拒绝存储权限。如需继续使用此功能,请前往应用设置中手动开启存储权限。', //permission_util.dart 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': - 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -1080,10 +992,8 @@ const Map srRS = { 'updateNow': 'Ažuriraj sada', // 立即更新按钮 'checkUpdate': 'Proveri ažuriranja', // 检查更新按钮 'updateFailed': 'Neuspešno ažuriranje', // 更新失败提示 - 'cannotOpenAppStore': - 'Nije moguće otvoriti prodavnicu aplikacija, idite ručno u prodavnicu da biste ažurirali', // 无法打开应用商店提示 - 'updateErrorRetry': - 'Došlo je do greške tokom ažuriranja, pokušajte ponovo kasnije', // 更新错误重试提示 + 'cannotOpenAppStore': 'Nije moguće otvoriti prodavnicu aplikacija, idite ručno u prodavnicu da biste ažurirali', // 无法打开应用商店提示 + 'updateErrorRetry': 'Došlo je do greške tokom ažuriranja, pokušajte ponovo kasnije', // 更新错误重试提示 //国家列表 "邮箱": "E-pošta", @@ -1219,8 +1129,7 @@ const Map srRS = { "selectTargetLanguage": "Izaberi ciljni jezik", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": - "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1236,12 +1145,10 @@ const Map srRS = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "Obriši istoriju", - "clearHistoryConfirm": - "Da li ste sigurni da želite da obrišete celu istoriju prevođenja? Ova radnja se ne može opozvati.", + "clearHistoryConfirm": "Da li ste sigurni da želite da obrišete celu istoriju prevođenja? Ova radnja se ne može opozvati.", "unknownLanguage": "Nepoznat jezik", "deleteSessionRecord": "Obriši zapis sesije", - "deleteSessionConfirm": - "Da li ste sigurni da želite da obrišete sve zapise prevođenja za ovu sesiju? Ova radnja se ne može opozvati.", + "deleteSessionConfirm": "Da li ste sigurni da želite da obrišete sve zapise prevođenja za ovu sesiju? Ova radnja se ne može opozvati.", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1273,20 +1180,15 @@ const Map srRS = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": - "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": - "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": - "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": - "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": - "Photo album permission required to pick images", + "photoAlbumPermissionRequired": "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1309,8 +1211,7 @@ const Map srRS = { // 翻译详情页 (translation_detail_view.dart) "originalRecord": "Originalni zapis", "recordSummary": "Sažetak zapisa", - "clickToGenerateSummary": - "Kliknite na dugme ispod da biste generisali sažetak sesije", + "clickToGenerateSummary": "Kliknite na dugme ispod da biste generisali sažetak sesije", "summaryContent": "Sadržaj sažetka", "copied": "Kopirano", "summaryCopiledToClipboard": "Sažetak je kopiran u međuspremnik", @@ -1318,11 +1219,9 @@ const Map srRS = { "summaryGenerated": "Sažetak je generisan", "generating": "Generisanje...", "regenerate": "Ponovo generiši", - "summaryTimeoutMessage": - "Isteklo je vreme za generisanje sažetka, možda zbog problema sa mrežom ili zauzetosti servera.", + "summaryTimeoutMessage": "Isteklo je vreme za generisanje sažetka, možda zbog problema sa mrežom ili zauzetosti servera.", "deleteTranslationRecord": "Obriši zapis prevođenja", - "deleteTranslationConfirm": - "Da li ste sigurni da želite da obrišete ovaj zapis prevođenja? Ova radnja se ne može opozvati.", + "deleteTranslationConfirm": "Da li ste sigurni da želite da obrišete ovaj zapis prevođenja? Ova radnja se ne može opozvati.", "originalText": "Originalni tekst", "translatedText": "Prevedeni tekst", "sessionSummary": "Sažetak sesije", @@ -1350,25 +1249,19 @@ const Map srRS = { // 配对状态文本 "readyToPair": "Spremno za uparivanje", "preparingPairingEnvironment": "Priprema okruženja za uparivanje...", - "connectDeepSoundViaSystemBluetooth": - "Prvo se povežite sa Voitrans uređajem preko sistemskog Bluetooth-a", + "connectDeepSoundViaSystemBluetooth": "Prvo se povežite sa Voitrans uređajem preko sistemskog Bluetooth-a", "deviceBindingConfirm": "Potvrda povezivanja uređaja...", "establishingDeviceAssociation": "Uspostavljanje veze sa uređajem...", "waitingCompletePairing": "Molimo sačekajte, uparivanje se završava...", - "pairingSuccessRedirecting": - "Uparivanje uspešno! Preusmeravanje na početnu stranicu...", + "pairingSuccessRedirecting": "Uparivanje uspešno! Preusmeravanje na početnu stranicu...", // 配对错误状态文本 - "ensureConnectedDeepSoundDevice": - "Uverite se da ste povezani sa Voitrans uređajem", - "deviceAlreadyBoundToOtherAccount": - "Ovaj uređaj je već povezan sa drugim nalogom", + "ensureConnectedDeepSoundDevice": "Uverite se da ste povezani sa Voitrans uređajem", + "deviceAlreadyBoundToOtherAccount": "Ovaj uređaj je već povezan sa drugim nalogom", "deviceAssociationFailed": "Neuspešno povezivanje uređaja, pokušajte ponovo", - "scanTimeoutEnsureDeviceNearby": - "Isteklo vreme skeniranja, uverite se da je uređaj u blizini", + "scanTimeoutEnsureDeviceNearby": "Isteklo vreme skeniranja, uverite se da je uređaj u blizini", "networkError": "Mrežna greška", - "authorizationFailedCheckCode": - "Neuspešna autorizacija, proverite da li je autorizacioni kod tačan", + "authorizationFailedCheckCode": "Neuspešna autorizacija, proverite da li je autorizacioni kod tačan", "pairingFailedRetry": "Neuspešno uparivanje, pokušajte ponovo", // 配对控制器相关 @@ -1377,15 +1270,13 @@ const Map srRS = { 'deviceDisconnected': 'Uređaj je isključen', 'readyToStartPairing': 'Spremno za početak uparivanja', 'checkingEnvironment': 'Provera okruženja...', - 'ensureHeadsetOnAndPairingMode': - 'Uverite se da su slušalice uključene i u režimu uparivanja', + 'ensureHeadsetOnAndPairingMode': 'Uverite se da su slušalice uključene i u režimu uparivanja', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', //'associatingDevice': '正在关联设备...', 'establishingSecureConnection': 'Uspostavljanje bezbedne veze...', - 'needManualBindingAuthCode': - 'Potreban je kod za autorizaciju ručnog povezivanja...', + 'needManualBindingAuthCode': 'Potreban je kod za autorizaciju ručnog povezivanja...', 'pairingSuccessful': 'Uparivanje uspešno!', 'enableBluetooth': 'Omogući Bluetooth', 'grantPermissions': 'Daj dozvole', @@ -1397,45 +1288,35 @@ const Map srRS = { 'verificationFailedRetry': 'Neuspešna verifikacija, pokušajte ponovo', 'invalidDeviceAddress': 'Nevažeća adresa uređaja', 'bleDeviceAssociationFailed': 'Neuspešno povezivanje BLE uređaja', - 'deviceAssociationFailedRetry': - 'Neuspešno povezivanje uređaja, pokušajte ponovo', + 'deviceAssociationFailedRetry': 'Neuspešno povezivanje uređaja, pokušajte ponovo', 'bleConnectionTimeoutRetry': 'Isteklo vreme za BLE vezu, pokušajte ponovo', 'blePairingStartupFailed': 'Neuspešno pokretanje BLE uparivanja', 'bleConnectionFailed': 'Neuspešna BLE veza', - 'deviceAuthorizationFailedCheckCode': - 'Neuspešna autorizacija uređaja, proverite autorizacioni kod', + 'deviceAuthorizationFailedCheckCode': 'Neuspešna autorizacija uređaja, proverite autorizacioni kod', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': - 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': - 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': - 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': - 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 "feedback": "Povratne informacije korisnika", 'feedbackInfo': 'Dajte povratne informacije ili predloge', - 'feedbackDescription': - 'Opišite problem sa kojim ste se suočili ili svoj predlog', + 'feedbackDescription': 'Opišite problem sa kojim ste se suočili ili svoj predlog', 'feedbackHint': 'Unesite svoje povratne informacije...', 'feedbackRequired': 'Unesite sadržaj povratnih informacija', 'contactInfo': 'Kontakt informacije', 'contactHint': 'E-pošta/Telefon, da bismo vas mogli kontaktirati', 'submit': 'Pošalji', - 'feedbackSubmitSuccess': - 'Povratne informacije su uspešno poslate, hvala vam!', - 'feedbackSubmitFailed': - 'Neuspešno slanje povratnih informacija, pokušajte ponovo kasnije', + 'feedbackSubmitSuccess': 'Povratne informacije su uspešno poslate, hvala vam!', + 'feedbackSubmitFailed': 'Neuspešno slanje povratnih informacija, pokušajte ponovo kasnije', // OTA升级模块 - "upgradeExitConfirm": - "Nadogradnja je u toku, izlazak će prekinuti proces, da li ste sigurni da želite da izađete?", + "upgradeExitConfirm": "Nadogradnja je u toku, izlazak će prekinuti proces, da li ste sigurni da želite da izađete?", "deviceModel": "Model uređaja", "unknownDevice": "Nepoznat uređaj", "currentFirmwareVersion": "Trenutna verzija firmvera", @@ -1448,18 +1329,14 @@ const Map srRS = { "retryConnection": "Pokušaj ponovo povezivanje", "ota_updateNow": "Ažuriraj sada", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": - "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": - "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": - "Firmware version is abnormal. Please reconnect and retry.", + "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", "keepConnectedDontClose": "Držite uređaj povezanim, ne zatvarajte aplikaciju", "doNotDisconnect": "Ne prekidajte vezu", "charging": "Punjenje", "updateContent": "Sadržaj ažuriranja", - "removeEarbudsEnsureBattery": - "Izvadite obe slušalice i uverite se da je baterija obe iznad 20%", + "removeEarbudsEnsureBattery": "Izvadite obe slušalice i uverite se da je baterija obe iznad 20%", // 音乐列表页面 "noMusic": "Nema muzike", // 暂无音乐 @@ -1469,9 +1346,9 @@ const Map srRS = { "playAll": "Reprodukuj sve", // 播放全部 // 语言名称 - "中文(简体)": "Kineski (pojednostavljeni)", - "中文(繁体)": "Kineski (tradicionalni)", - "中文(香港繁体)": "Kineski (hongkonški tradicionalni)", + "中文(简体)": "中文(简体)", + "中文(繁体)": "中文(繁体)", + "中文(香港繁体)": "中文(香港繁体)", "英语": "Engleski", "日语": "Japanski", "韩语": "Korejski", @@ -1521,10 +1398,8 @@ const Map srRS = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": - 'Insufficient balance, please go to the corresponding recharge page to recharge.', - "recharge": 'Go to Recharge', + "insufficientBalanceDesc": "Insufficient balance, please go to the corresponding recharge page to recharge.", + "recharge": "Go to Recharge", // 会员到期提示 - "aiMemberExpiredDesc": - 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": "AI membership expired, please go to the membership recharge page to renew.", }; diff --git a/lib/core/translations/language/sv_se.dart b/lib/core/translations/language/sv_se.dart index 984c14e14..71b825bd3 100644 --- a/lib/core/translations/language/sv_se.dart +++ b/lib/core/translations/language/sv_se.dart @@ -72,8 +72,7 @@ const Map svSE = { // 登录页 "welcome": "Välkommen", - "loginTips": - "Logga in eller registrera dig med ditt telefonnummer eller din e-postadress", + "loginTips": "Logga in eller registrera dig med ditt telefonnummer eller din e-postadress", "accountNumber": "Telefonnummer eller e-post", "verificationCode": "Verifieringskod", "getCode": "Hämta kod", @@ -92,8 +91,7 @@ const Map svSE = { "tip": "Tips", "pleaseEnterCompleteCode": "Ange hela verifieringskoden", "loginFailed": "Inloggning misslyckades, försök igen", - 'pleaseAcceptPrivacyPolicy': - 'Läs och godkänn integritetspolicyn och användaravtalet först', + 'pleaseAcceptPrivacyPolicy': 'Läs och godkänn integritetspolicyn och användaravtalet först', "enterVerificationCode": "Ange verifieringskod", "verificationCodeSentTo": "Verifieringskod har skickats till", "resendVerificationCode": "Skicka verifieringskod igen", @@ -102,12 +100,11 @@ const Map svSE = { // 隐私政策弹窗 "loginDeclaration": "Voitrans-deklaration", // Voitrans 声明 - "welcomeToThisApp": - "Välkommen till Voitrans, vänligen läs noggrant", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": "Välkommen till Voitrans, vänligen läs noggrant", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": - ", genom att klicka på 'Godkänn och gå in' bekräftar du att du har läst och godkänt ovanstående avtal. Att klicka på 'Godkänner inte' kommer att avsluta applikationen.", // ,点击"同意并进入"表示您已充分阅读并同意上述协议。点击"不同意"将退出应用。 + ",点击'同意并进入'表示您已充分阅读并同意上述协议。点击'不同意'将退出应用。", // ,点击"同意并进入"表示您已充分阅读并同意上述协议。点击"不同意"将退出应用。 "disagree": "Godkänner inte", // 不同意 "agreeAndEnter": "Godkänn och gå in", // 同意并进入 @@ -119,29 +116,24 @@ const Map svSE = { "signal": "Signal", "deviceId": "Enhets-ID", "firmwareVersion": "Firmware-version", - "disconnectedDevice": - "Ingen enhet ansluten, klicka på knappen nedan för att ansluta", + "disconnectedDevice": "Ingen enhet ansluten, klicka på knappen nedan för att ansluta", "connectDevice": "Anslut enhet", "topAiExperiences": "Topp AI-upplevelser", "aiAssistant": "AI Allround-assistent", "aiAssistantInfo": "Exklusiv konsult dygnet runt, svarar på frågor, ger råd", "interpretation": "Simultantolkning", - "simultaneousInterpretationInfo": - "Realtidsöversättning för över 80 språk, bekymmersfria utlandsresor", + "simultaneousInterpretationInfo": "Realtidsöversättning för över 80 språk, bekymmersfria utlandsresor", "aiCompanion": "Familjekamrat", "aiCompanionInfo": "Förstår dig, varmt sällskap", "homeSlogan": "Anslut världen, bortom ljudet", - "turnEarphones": - "Öppna laddningsfodralet för hörlurarna och placera hörlurarna i dina öron", + "turnEarphones": "Öppna laddningsfodralet för hörlurarna och placera hörlurarna i dina öron", "currentlyConnected": "För närvarande ansluten:", "unsystemSetup": "Gå till systeminställningar", "talkLater": "Senare", "initializing": "Initierar...", - "bluetoothInitializationFailure": - "Initiering av Bluetooth-tjänst misslyckades", + "bluetoothInitializationFailure": "Initiering av Bluetooth-tjänst misslyckades", "checkingPermissions": "Kontrollerar behörigheter...", - "lackPermissions": - "Saknar Bluetooth-behörigheter och kräver att du tillåter åtkomst till plats", + "lackPermissions": "Saknar Bluetooth-behörigheter och kräver att du tillåter åtkomst till plats", "searchingDevice": "Söker efter enheter...", "findConnectedDevice": "Hittade ansluten enhet", "notFound": "Ingen ansluten Bluetooth-enhet hittades", @@ -184,8 +176,7 @@ const Map svSE = { "healthConsultant": "Mångfunktionell AI-chatt", "healthConsultantInfo": "Erbjuder fler AI-chattfunktioner", "conferenceAssistant": "Affärsmötesassistent", - "conferenceAssistantInfo": - "Realtidsinspelning av mötesprotokoll, flerspråkig översättning", + "conferenceAssistantInfo": "Realtidsinspelning av mötesprotokoll, flerspråkig översättning", "usageStats": "Användningsstatistik", "usageStatsInfo": "Visa din användningsstatistik", "scene": "Scenario", @@ -228,8 +219,7 @@ const Map svSE = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": - "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -285,10 +275,8 @@ const Map svSE = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': - 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', - 'meetingHeaderDesc2': - 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', + 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -297,35 +285,27 @@ const Map svSE = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': - 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': - 'Real-time simultaneous interpretation and text translation with low-latency voice.', + 'transHeaderDesc1': 'Real-time simultaneous interpretation and text translation with low-latency voice.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'translateZhEn': 'Chinese-English translation', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'multiLangTextTranslation': 'Multilingual text translation', - 'termOptimizationContextPreserve': - 'Terminology optimization and context preservation', + 'termOptimizationContextPreserve': 'Terminology optimization and context preservation', 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'personalVocabularyMemory': 'Personal vocabulary memory', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'colorHighContrast': 'High color contrast', - 'transDisclaimer': - 'Translation performance depends on microphone, network latency, and ambient noise.', + 'transDisclaimer': 'Translation performance depends on microphone, network latency, and ambient noise.', // AI 商品页描述 - 'aiHeaderDesc1': - 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': - 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': - 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': - 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -334,10 +314,8 @@ const Map svSE = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': - 'Template messages and schedule reminders', - 'aiDisclaimer': - 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', + 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Benefits overview', @@ -352,11 +330,10 @@ const Map svSE = { 'generalPrivileges': 'General privileges', 'earlyAccessNewFeatures': 'Early access to new features', 'crossDeviceSync': 'Cross-device sync', - 'vipDisclaimer': - 'Actual benefits depend on the package details and may change with versions.', + 'vipDisclaimer': 'Actual benefits depend on the package details and may change with versions.', // 新手引导 / Onboarding - 'skip': "Hoppa över", + 'skip': 'Hoppa över', 'next': 'Next', 'sayLilyHint': 'Say "Lily Lily" to the mic', 'imHere': 'I’m here~', @@ -379,8 +356,7 @@ const Map svSE = { 'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavSend': 'Lily will plan the route', 'guideNavEnd': 'Navigation set—try other commands', - 'guideMeetingStart': - 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', + 'guideMeetingStart': 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingEnd': 'Reminder created—try other commands', @@ -430,8 +406,7 @@ const Map svSE = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': - 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -439,6 +414,23 @@ const Map svSE = { 'audioVideoRecording': 'Audio/Video Recording', 'callRecording': 'Call Recording', 'importAudio': 'Import Audio', + 'meetingRecordExitTitle': 'Avsluta inspelning', // 退出录音 + 'meetingRecordExitMessage': 'Välj en åtgärd efter att ha lämnat', // 请选择离开后的操作 + 'meetingRecordEndAndSave': 'Avsluta och spara', // 结束录音并保存 + 'meetingRecordEndWithoutSave': 'Avsluta utan att spara', // 结束录音不保存 + 'meetingRecordContinueInBackground': 'Fortsätt spela in i bakgrunden', // 后台继续录音 + 'meetingRecordStopTimeout': 'Tidsgräns för att stoppa inspelning, försök igen', // 结束录音超时,请重试 + 'meetingRecordStopFailed': 'Misslyckades med att stoppa inspelningen, försök igen', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': 'Misslyckades med att spara inspelningen, försök igen', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': 'Inspelning pågår', // 录音进行中 + 'meetingRecordRecordingNotificationBody': 'Spelar in i bakgrunden, tryck för att återgå', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': 'Behörighet för flytande fönster', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': + 'För att visa översättningsresultat under samtal eller vid ljud-/videöversättning behöver vi behörigheten för flytande fönster. Det gör att du kan se översättningar i realtid när du använder andra appar.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': + 'För att visa den flytande inspelningsraden (timer/paus/fortsätt) under inspelning behöver vi behörigheten för flytande fönster.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': + 'Det gick inte att öppna systeminställningarna automatiskt. Öppna Inställningar och aktivera behörigheten för flytande fönster manuellt.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'Transcribing...', 'summarizing': 'Summarizing...', 'analyzing': 'Analyzing...', @@ -486,54 +478,40 @@ const Map svSE = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': - 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': - 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': - 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': - 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': - 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': - 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': - 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': - 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': - 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': - 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': - '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': - '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': - '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': - 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -545,8 +523,7 @@ const Map svSE = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': - 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -566,10 +543,9 @@ const Map svSE = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': - 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': - 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', + '检测到您已永久拒绝存储权限。如需继续使用此功能,请前往应用设置中手动开启存储权限。', // Meeting模块 - 思维导图相关 'shareMindMap': 'Share Mind Map', @@ -613,19 +589,17 @@ const Map svSE = { // Meeting模块 - 发言者相关 'applyToAllParagraphs': 'Använd på alla stycken för denna talare', - 'summaryWillBeUpdatedAutomatically': - 'Sammanfattningen uppdateras automatiskt baserat på mallen', + 'summaryWillBeUpdatedAutomatically': 'Sammanfattningen uppdateras automatiskt baserat på mallen', 'nameCurrentSpeaker': 'Name Current Speaker', 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': - 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', 'syncToCloudTip': - 'Automatically sync your recordings to the cloud, you can play, manage and share recordings through any VOITRANS APP or VOITRANS Web (web.voitrans.com).', + '自动将你的录音同步到云端,你可以通过任意VOITRANS APP或VOITRANS Web(web.voitrans.com)播放、管理和分享录音。', 'syncToVoitransApp': 'Sync VOITRANS APP', 'transcriptionRecord': 'Transcription Record', @@ -645,8 +619,7 @@ const Map svSE = { "cloudSync": "Molnsynkronisering", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": - "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", "joinDevice": "Ansluten enhet:", "accountId": "Konto-ID:", "systemSetting": "Systeminställning", @@ -659,8 +632,7 @@ const Map svSE = { "privacySettings": "Integritetsinställningar", "privacySettingsInfo": "Hantera datainsamling och behörigheter", "permissionManagement": "Behörighetshantering", // 权限管理 - "permissionManagementInfo": - "Hantera inställningar för appbehörigheter", // 管理应用权限设置 + "permissionManagementInfo": "Hantera inställningar för appbehörigheter", // 管理应用权限设置 "aboutApplication": "Om appen", "versions": "Version", "checkUpdates": "Sök efter uppdateringar", @@ -669,11 +641,9 @@ const Map svSE = { "voiceServiceInfo": "Välj röstigenkännings- och syntestjänst", "selectVoiceService": "Välj rösttjänst", "azureVoiceService": "Azure Rösttjänst", - "azureVoiceServiceInfo": - "Microsofts molnbaserade rösttjänst, stöder högkvalitativ röstsyntes och igenkänning", + "azureVoiceServiceInfo": "Microsofts molnbaserade rösttjänst, stöder högkvalitativ röstsyntes och igenkänning", "flutterVoiceService": "Flutter Lokal Rösttjänst", - "flutterVoiceServiceInfo": - "Enhetens lokala rösttjänst, kan användas utan internetanslutning", + "flutterVoiceServiceInfo": "Enhetens lokala rösttjänst, kan användas utan internetanslutning", 'timbreService': 'Klangtjänst', 'timbreServiceInfo': 'Välj klangtjänst för röstsyntes', 'defaultTimbre': 'Standardklang', @@ -702,8 +672,7 @@ const Map svSE = { // 设置页面 - 实时语音对话 "realtimeVoiceChat": "Realtids röstchatt", - "realtimeVoiceChatInfo": - "Upplev intelligent röstinteraktionsfunktion (funktionsförhandsvisning)", + "realtimeVoiceChatInfo": "Upplev intelligent röstinteraktionsfunktion (funktionsförhandsvisning)", "loading": "Laddar...", //设备管理页面 @@ -718,8 +687,7 @@ const Map svSE = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": - "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": "Are you sure you want to unbind device \\", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -767,22 +735,18 @@ const Map svSE = { "nearbyFood": "What delicious food is nearby?", // 美食 // Agent controller - 'welcomeMessage': 'Hej! Jag är **Lily**, jag kan hjälpa dig med:\n\n' - '• Svara på frågor och ge information\n\n' - '• Realtids röstöversättning\n\n' - '• Rekommendera musik och poddar\n\n' - '• Röstmemon och påminnelser\n\n' - '• Kontrollera hörlursfunktioner\n\n' - 'Hur kan jag hjälpa dig?', + 'welcomeMessage': '你好!我是**Lily**,我能帮你:\n\n' + '• 回答问题和提供信息\n\n' + '• 实时语音翻译\n\n' + '• 推荐音乐和播客\n\n' + '• 语音备忘录和提醒\n\n' + '• 控制耳机功能\n\n' + '有什么我可以帮你的吗?', 'microphonePermission': 'Mikrofon', - 'voiceRecognitionPermissionText': - 'Röstigenkänning kräver åtkomst till mikrofonen.', - 'voiceTranslationPermissionText': - 'Röstigenkänning och översättning kräver åtkomst till mikrofonen.', - 'phoneCallPermissionText': - 'Att ringa samtal kräver åtkomst till mikrofonen för röstsamtal.', - 'permissionDeniedText': - 'Du har permanent nekat åtkomst till mikrofonen, vänligen gå till systeminställningarna för att aktivera behörigheten.', + 'voiceRecognitionPermissionText': 'Röstigenkänning kräver åtkomst till mikrofonen.', + 'voiceTranslationPermissionText': 'Röstigenkänning och översättning kräver åtkomst till mikrofonen.', + 'phoneCallPermissionText': 'Att ringa samtal kräver åtkomst till mikrofonen för röstsamtal.', + 'permissionDeniedText': 'Du har permanent nekat åtkomst till mikrofonen, vänligen gå till systeminställningarna för att aktivera behörigheten.', 'startVoiceInput': 'Starta röstinmatning', 'startPhoneCallMode': 'Starta samtalsläge, starta röstinmatning', @@ -805,8 +769,7 @@ const Map svSE = { 'privacyRelated': 'Integritetsrelaterat', 'copyrightViolation': 'Inkräktar på min upphovsrätt, anseende, etc.', 'other': 'Annat', - 'reportDescriptionHint': - 'Vi vill veta varför du anmäler, du kan beskriva problemet du stött på.', + 'reportDescriptionHint': 'Vi vill veta varför du anmäler, du kan beskriva problemet du stött på.', //'submit': '提交', //Message_bubble @@ -837,24 +800,15 @@ const Map svSE = { 'highest': 'Högsta', 'lowest': 'Lägsta', 'futureForecast': 'Framtida prognos', - 'hotWeatherTip': - 'Idag är det varmt, var försiktig med värmeslag och drick mycket vatten', - 'coldWeatherTip': - 'Idag är temperaturen låg, klä dig varmt när du går ut för att undvika förkylning', - 'rainyWeatherTip': - 'Idag regnar det, ta med ett paraply när du går ut och var försiktig', - 'snowyWeatherTip': - 'Idag snöar det, vägen är hal, var försiktig och klä dig varmt', - 'foggyWeatherTip': - 'Idag är det dimmigt, sikten är låg, använd en mask när du går ut', - 'windyWeatherTip': - 'Idag blåser det mycket, var försiktig när du går ut och säkra dina tillhörigheter', - 'sunnyWeatherTip': - 'Idag är det soligt och stark UV-strålning, använd solskydd när du går ut', - 'temperatureDifferenceTip': - 'Idag är det stor temperaturskillnad mellan dag och natt, anpassa kläderna därefter', - 'comfortableWeatherTip': - 'Idag är vädret behagligt, en bra tid för utomhusaktiviteter', + 'hotWeatherTip': 'Idag är det varmt, var försiktig med värmeslag och drick mycket vatten', + 'coldWeatherTip': 'Idag är temperaturen låg, klä dig varmt när du går ut för att undvika förkylning', + 'rainyWeatherTip': 'Idag regnar det, ta med ett paraply när du går ut och var försiktig', + 'snowyWeatherTip': 'Idag snöar det, vägen är hal, var försiktig och klä dig varmt', + 'foggyWeatherTip': 'Idag är det dimmigt, sikten är låg, använd en mask när du går ut', + 'windyWeatherTip': 'Idag blåser det mycket, var försiktig när du går ut och säkra dina tillhörigheter', + 'sunnyWeatherTip': 'Idag är det soligt och stark UV-strålning, använd solskydd när du går ut', + 'temperatureDifferenceTip': 'Idag är det stor temperaturskillnad mellan dag och natt, anpassa kläderna därefter', + 'comfortableWeatherTip': 'Idag är vädret behagligt, en bra tid för utomhusaktiviteter', "monday": "Mån", "tuesday": "Tis", "wednesday": "Ons", @@ -904,31 +858,23 @@ const Map svSE = { "notSet": "Inte inställt", "accountSetting": "Kontoinställningar", "logout": "Logga ut", - "logoutTips": - "Är du säker på att du vill logga ut från det nuvarande kontot?", + "logoutTips": "Är du säker på att du vill logga ut från det nuvarande kontot?", 'deleteAccount': 'Ta bort konto', - 'deleteAccountTips': - 'Är du säker på att du vill ta bort ditt konto permanent? Denna åtgärd kan inte ångras', + 'deleteAccountTips': 'Är du säker på att du vill ta bort ditt konto permanent? Denna åtgärd kan inte ångras', 'clean': 'Clear Cache', 'cleanTips': 'Are you sure you want to clear personal cache?', // Profile 错误信息 - 'networkConnectionFailed': - 'Nätverksanslutning misslyckades, kontrollera dina nätverksinställningar och försök igen', - 'serverTemporarilyUnavailable': - 'Servern är tillfälligt otillgänglig, försök igen senare', - 'loginExpiredPleaseRelogin': - 'Din session har gått ut, vänligen logga in igen', - 'noPermissionForThisOperation': - 'Du har inte behörighet att utföra denna åtgärd', + 'networkConnectionFailed': 'Nätverksanslutning misslyckades, kontrollera dina nätverksinställningar och försök igen', + 'serverTemporarilyUnavailable': 'Servern är tillfälligt otillgänglig, försök igen senare', + 'loginExpiredPleaseRelogin': 'Din session har gått ut, vänligen logga in igen', + 'noPermissionForThisOperation': 'Du har inte behörighet att utföra denna åtgärd', 'requestedResourceNotFound': 'Den begärda resursen hittades inte', - 'imageProcessingFailedPleaseReselect': - 'Bildbehandling misslyckades, välj en annan bild', + 'imageProcessingFailedPleaseReselect': 'Bildbehandling misslyckades, välj en annan bild', 'operationFailedPleaseRetry': 'Åtgärden misslyckades, försök igen', 'serverReturnedError': 'Servern returnerade ett fel', 'serverError': 'Serverfel', - 'networkConnectionFailedCheckSettings': - 'Nätverksanslutning misslyckades, kontrollera dina nätverksinställningar', + 'networkConnectionFailedCheckSettings': 'Nätverksanslutning misslyckades, kontrollera dina nätverksinställningar', 'serverInternalErrorRetryLater': 'Internt serverfel, försök igen senare', // Profile 用户交互 @@ -947,20 +893,14 @@ const Map svSE = { // 账号服务相关 'clearUserDataFailed': 'Rensning av användardata misslyckades', // 清理用户数据失败 - 'deleteUserDataFailed': - 'Borttagning av användardata misslyckades', // 删除用户数据失败 - 'thirdPartyLogoutSuccess': - 'Utloggning från tredje part lyckades', // 第三方登录退出成功 - 'thirdPartyLogoutFailed': - 'Utloggning från tredje part misslyckades', // 第三方登录退出失败 - 'signOutProcessError': - 'Ett fel uppstod under utloggningsprocessen', // 登出过程发生错误 - 'deleteAccountProcessError': - 'Ett fel uppstod under borttagningsprocessen av kontot', // 删除账号过程发生错误 + 'deleteUserDataFailed': 'Borttagning av användardata misslyckades', // 删除用户数据失败 + 'thirdPartyLogoutSuccess': 'Utloggning från tredje part lyckades', // 第三方登录退出成功 + 'thirdPartyLogoutFailed': 'Utloggning från tredje part misslyckades', // 第三方登录退出失败 + 'signOutProcessError': 'Ett fel uppstod under utloggningsprocessen', // 登出过程发生错误 + 'deleteAccountProcessError': 'Ett fel uppstod under borttagningsprocessen av kontot', // 删除账号过程发生错误 'userDataClearSuccess': 'Rensning av användardata lyckades', // 用户数据清理成功 'allUserDataClearSuccess': 'All användardata har rensats', // 所有用户数据清理成功 - 'accountServiceInitialized': - 'Kontotjänsten har initierats', // AccountService 已初始化 + 'accountServiceInitialized': 'Kontotjänsten har initierats', // AccountService 已初始化 // 权限管理页面 'getPermissionStatusFailed': 'Hämtning av behörighetsstatus misslyckades', @@ -983,12 +923,9 @@ const Map svSE = { 'locationInfo': 'Platsinformation', 'phonePermissionDesc': 'Används för att ringa samtal', 'smsPermissionDesc': 'Används för att skicka SMS', - 'alarmPermissionDesc': - 'Used to set exact alarms to ensure reminders trigger on time', - 'calendarWritePermissionDesc': - 'Används för att skapa kalenderhändelser och påminnelser', - 'calendarFullAccessPermissionDesc': - 'Används för att läsa och hantera kalenderhändelser och påminnelser', + 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', + 'calendarWritePermissionDesc': 'Används för att skapa kalenderhändelser och påminnelser', + 'calendarFullAccessPermissionDesc': 'Används för att läsa och hantera kalenderhändelser och påminnelser', 'locationPermissionDesc': 'Används för att hämta aktuell platsinformation', 'appFunctionNeeds': 'Appfunktionen behöver', 'authorized': 'Beviljad', @@ -1000,78 +937,53 @@ const Map svSE = { 'permissionRequestError': 'Fel vid begäran om behörighet', 'phonePermissionDetailDesc': 'Samtalsfunktionen kräver telefonbehörighet', 'smsPermissionDetailDesc': 'SMS-funktionen kräver SMS-behörighet', - 'alarmPermissionDetailDesc': - 'This permission is required to set exact alarms and ensure reminders trigger on time', - 'calendarWritePermissionDetailDesc': - 'Att skapa kalenderhändelser kräver skrivbehörighet till kalendern', - 'calendarFullAccessPermissionDetailDesc': - 'Att hantera kalenderhändelser kräver fullständig kalenderåtkomst', - 'locationPermissionDetailDesc': - 'Att hämta platsinformation kräver platsbehörighet', + 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'calendarWritePermissionDetailDesc': 'Att skapa kalenderhändelser kräver skrivbehörighet till kalendern', + 'calendarFullAccessPermissionDetailDesc': 'Att hantera kalenderhändelser kräver fullständig kalenderåtkomst', + 'locationPermissionDetailDesc': 'Att hämta platsinformation kräver platsbehörighet', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': - 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': - 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': - 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': - 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': - 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': - 'App needs notification permission to send you important alerts and messages', - 'appNeedsPermissionForFullFunction': - 'Appen behöver denna behörighet för full funktionalitet', - 'permanentDenialText': - 'Du har permanent nekat {permission}-behörighet, vänligen gå till appinställningarna för att aktivera den', + 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', + 'appNeedsPermissionForFullFunction': 'Appen behöver denna behörighet för full funktionalitet', + 'permanentDenialText': 'Du har permanent nekat {permission}-behörighet, vänligen gå till appinställningarna för att aktivera den', 'goToSettings': 'Gå till inställningar', // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': - 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': - 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': - 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': - 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': - 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': - 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': - 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': - 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': - 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': - 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': - 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': - 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': - 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', + '检测到您已永久拒绝录音权限。如需继续使用此功能,请前往应用设置中手动开启麦克风权限。', 'storagePermissionPermanentDenial': - 'Storage permission has been permanently denied. To continue using this feature, please go to app settings to manually enable storage permission.', + '检测到您已永久拒绝存储权限。如需继续使用此功能,请前往应用设置中手动开启存储权限。', //permission_util.dart 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': - 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -1080,10 +992,8 @@ const Map svSE = { 'updateNow': 'Uppdatera nu', // 立即更新按钮 'checkUpdate': 'Sök efter uppdatering', // 检查更新按钮 'updateFailed': 'Uppdatering misslyckades', // 更新失败提示 - 'cannotOpenAppStore': - 'Kan inte öppna appbutiken, vänligen gå till appbutiken manuellt för att uppdatera', // 无法打开应用商店提示 - 'updateErrorRetry': - 'Ett fel uppstod under uppdateringen, försök igen senare', // 更新错误重试提示 + 'cannotOpenAppStore': 'Kan inte öppna appbutiken, vänligen gå till appbutiken manuellt för att uppdatera', // 无法打开应用商店提示 + 'updateErrorRetry': 'Ett fel uppstod under uppdateringen, försök igen senare', // 更新错误重试提示 //国家列表 "邮箱": "E-post", @@ -1219,8 +1129,7 @@ const Map svSE = { "selectTargetLanguage": "Välj målspråk", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": - "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1236,12 +1145,10 @@ const Map svSE = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "Rensa historik", - "clearHistoryConfirm": - "Är du säker på att du vill rensa all översättningshistorik? Denna åtgärd kan inte ångras.", + "clearHistoryConfirm": "Är du säker på att du vill rensa all översättningshistorik? Denna åtgärd kan inte ångras.", "unknownLanguage": "Okänt språk", "deleteSessionRecord": "Ta bort sessionsinspelning", - "deleteSessionConfirm": - "Är du säker på att du vill ta bort alla översättningsinspelningar för denna session? Denna åtgärd kan inte ångras.", + "deleteSessionConfirm": "Är du säker på att du vill ta bort alla översättningsinspelningar för denna session? Denna åtgärd kan inte ångras.", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1273,20 +1180,15 @@ const Map svSE = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": - "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": - "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": - "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": - "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": - "Photo album permission required to pick images", + "photoAlbumPermissionRequired": "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1309,8 +1211,7 @@ const Map svSE = { // 翻译详情页 (translation_detail_view.dart) "originalRecord": "Originalinspelning", "recordSummary": "Inspelningssammanfattning", - "clickToGenerateSummary": - "Klicka på knappen nedan för att generera en sessionssammanfattning", + "clickToGenerateSummary": "Klicka på knappen nedan för att generera en sessionssammanfattning", "summaryContent": "Sammanfattningsinnehåll", "copied": "Kopierad", "summaryCopiledToClipboard": "Sammanfattning kopierad till urklipp", @@ -1318,11 +1219,9 @@ const Map svSE = { "summaryGenerated": "Sammanfattning genererad", "generating": "Genererar...", "regenerate": "Generera igen", - "summaryTimeoutMessage": - "Begäran om att generera sammanfattning nådde tidsgräns, det kan bero på nätverksproblem eller upptagen server.", + "summaryTimeoutMessage": "Begäran om att generera sammanfattning nådde tidsgräns, det kan bero på nätverksproblem eller upptagen server.", "deleteTranslationRecord": "Ta bort översättningsinspelning", - "deleteTranslationConfirm": - "Är du säker på att du vill ta bort denna översättningsinspelning? Denna åtgärd kan inte ångras.", + "deleteTranslationConfirm": "Är du säker på att du vill ta bort denna översättningsinspelning? Denna åtgärd kan inte ångras.", "originalText": "Originaltext", "translatedText": "Översatt text", "sessionSummary": "Sessionssammanfattning", @@ -1350,25 +1249,19 @@ const Map svSE = { // 配对状态文本 "readyToPair": "Redo att parkoppla", "preparingPairingEnvironment": "Förbereder parkopplingsmiljö...", - "connectDeepSoundViaSystemBluetooth": - "Anslut först till Voitrans-enheten via systemets Bluetooth", + "connectDeepSoundViaSystemBluetooth": "Anslut först till Voitrans-enheten via systemets Bluetooth", "deviceBindingConfirm": "Bekräftelse av enhetsbindning...", "establishingDeviceAssociation": "Upprättar enhetsassociation...", "waitingCompletePairing": "Vänta, slutför parkoppling...", - "pairingSuccessRedirecting": - "Parkoppling lyckades! Omdirigerar till startsidan...", + "pairingSuccessRedirecting": "Parkoppling lyckades! Omdirigerar till startsidan...", // 配对错误状态文本 - "ensureConnectedDeepSoundDevice": - "Se till att du är ansluten till en Voitrans-enhet", - "deviceAlreadyBoundToOtherAccount": - "Denna enhet är redan bunden till ett annat konto", + "ensureConnectedDeepSoundDevice": "Se till att du är ansluten till en Voitrans-enhet", + "deviceAlreadyBoundToOtherAccount": "Denna enhet är redan bunden till ett annat konto", "deviceAssociationFailed": "Enhetsassociation misslyckades, försök igen", - "scanTimeoutEnsureDeviceNearby": - "Skanningen nådde tidsgräns, se till att enheten är i närheten", + "scanTimeoutEnsureDeviceNearby": "Skanningen nådde tidsgräns, se till att enheten är i närheten", "networkError": "Nätverksfel", - "authorizationFailedCheckCode": - "Auktorisering misslyckades, kontrollera att auktoriseringskoden är korrekt", + "authorizationFailedCheckCode": "Auktorisering misslyckades, kontrollera att auktoriseringskoden är korrekt", "pairingFailedRetry": "Parkoppling misslyckades, försök igen", // 配对控制器相关 @@ -1377,8 +1270,7 @@ const Map svSE = { 'deviceDisconnected': 'Enheten frånkopplad', 'readyToStartPairing': 'Redo att starta parkoppling', 'checkingEnvironment': 'Kontrollerar miljö...', - 'ensureHeadsetOnAndPairingMode': - 'Se till att hörlurarna är på och i parkopplingsläge', + 'ensureHeadsetOnAndPairingMode': 'Se till att hörlurarna är på och i parkopplingsläge', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', @@ -1400,20 +1292,15 @@ const Map svSE = { 'bleConnectionTimeoutRetry': 'BLE-anslutningen nådde tidsgräns, försök igen', 'blePairingStartupFailed': 'Start av BLE-parkoppling misslyckades', 'bleConnectionFailed': 'BLE-anslutning misslyckades', - 'deviceAuthorizationFailedCheckCode': - 'Enhetsauktorisering misslyckades, kontrollera auktoriseringskoden', + 'deviceAuthorizationFailedCheckCode': 'Enhetsauktorisering misslyckades, kontrollera auktoriseringskoden', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': - 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': - 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': - 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': - 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 @@ -1426,12 +1313,10 @@ const Map svSE = { 'contactHint': 'E-post/Telefon, så att vi kan kontakta dig', 'submit': 'Skicka', 'feedbackSubmitSuccess': 'Feedback inskickad, tack för din feedback!', - 'feedbackSubmitFailed': - 'Inskickning av feedback misslyckades, försök igen senare', + 'feedbackSubmitFailed': 'Inskickning av feedback misslyckades, försök igen senare', // OTA升级模块 - "upgradeExitConfirm": - "Uppgradering pågår, att avsluta kommer att avbryta uppgraderingsprocessen, är du säker på att du vill avsluta?", + "upgradeExitConfirm": "Uppgradering pågår, att avsluta kommer att avbryta uppgraderingsprocessen, är du säker på att du vill avsluta?", "deviceModel": "Enhetsmodell", "unknownDevice": "Okänd enhet", "currentFirmwareVersion": "Nuvarande firmware-version", @@ -1444,18 +1329,14 @@ const Map svSE = { "retryConnection": "Försök ansluta igen", "ota_updateNow": "Uppdatera nu", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": - "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": - "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": - "Firmware version is abnormal. Please reconnect and retry.", + "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", "keepConnectedDontClose": "Håll enheten ansluten, stäng inte appen", "doNotDisconnect": "Koppla inte från", "charging": "Laddar", "updateContent": "Uppdateringsinnehåll", - "removeEarbudsEnsureBattery": - "Ta ut båda hörlurarna och se till att batterinivån är över 20 % på båda", + "removeEarbudsEnsureBattery": "Ta ut båda hörlurarna och se till att batterinivån är över 20 % på båda", // 音乐列表页面 "noMusic": "Ingen musik", // 暂无音乐 @@ -1465,9 +1346,9 @@ const Map svSE = { "playAll": "Spela alla", // 播放全部 // 语言名称 - "中文(简体)": "Kinesiska (förenklad)", - "中文(繁体)": "Kinesiska (traditionell)", - "中文(香港繁体)": "Kinesiska (Hongkong, traditionell)", + "中文(简体)": "中文(简体)", + "中文(繁体)": "中文(繁体)", + "中文(香港繁体)": "中文(香港繁体)", "英语": "Engelska", "日语": "Japanska", "韩语": "Koreanska", @@ -1517,10 +1398,8 @@ const Map svSE = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": - 'Insufficient balance, please go to the corresponding recharge page to recharge.', - "recharge": 'Go to Recharge', + "insufficientBalanceDesc": "Insufficient balance, please go to the corresponding recharge page to recharge.", + "recharge": "Go to Recharge", // 会员到期提示 - "aiMemberExpiredDesc": - 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": "AI membership expired, please go to the membership recharge page to renew.", }; diff --git a/lib/core/translations/language/th_th.dart b/lib/core/translations/language/th_th.dart index a15f16a44..69f0609a8 100644 --- a/lib/core/translations/language/th_th.dart +++ b/lib/core/translations/language/th_th.dart @@ -91,8 +91,7 @@ const Map thTH = { "tip": "เคล็ดลับ", "pleaseEnterCompleteCode": "กรุณากรอกรหัสยืนยันให้ครบถ้วน", "loginFailed": "เข้าสู่ระบบล้มเหลว กรุณาลองใหม่", - 'pleaseAcceptPrivacyPolicy': - 'กรุณาอ่านและยอมรับนโยบายความเป็นส่วนตัวและข้อตกลงผู้ใช้ก่อน', + 'pleaseAcceptPrivacyPolicy': 'กรุณาอ่านและยอมรับนโยบายความเป็นส่วนตัวและข้อตกลงผู้ใช้ก่อน', "enterVerificationCode": "กรอกรหัสยืนยัน", "verificationCodeSentTo": "รหัสยืนยันถูกส่งไปยัง", "resendVerificationCode": "ส่งรหัสยืนยันอีกครั้ง", @@ -101,12 +100,11 @@ const Map thTH = { // 隐私政策弹窗 "loginDeclaration": "คำประกาศของ Voitrans", // Voitrans 声明 - "welcomeToThisApp": - "ยินดีต้อนรับสู่ Voitrans กรุณาอ่านอย่างละเอียด", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": "ยินดีต้อนรับสู่ Voitrans กรุณาอ่านอย่างละเอียด", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": - " การคลิก 'ยอมรับและเข้าสู่' หมายความว่าคุณได้อ่านและยอมรับข้อตกลงข้างต้นแล้ว การคลิก 'ไม่ยอมรับ' จะเป็นการออกจากแอปพลิเคชัน", // ,点击"同意并进入"表示您已充分阅读并同意上述协议。点击"不同意"将退出应用。 + ",点击'同意并进入'表示您已充分阅读并同意上述协议。点击'不同意'将退出应用。", // ,点击"同意并进入"表示您已充分阅读并同意上述协议。点击"不同意"将退出应用。 "disagree": "ไม่ยอมรับ", // 不同意 "agreeAndEnter": "ยอมรับและเข้าสู่", // 同意并进入 @@ -124,8 +122,7 @@ const Map thTH = { "aiAssistant": "ผู้ช่วย AI รอบด้าน", "aiAssistantInfo": "ที่ปรึกษาส่วนตัว 24 ชั่วโมง ตอบคำถาม ให้คำแนะนำ", "interpretation": "การแปลภาษาพร้อมกัน", - "simultaneousInterpretationInfo": - "แปลภาษากว่า 80 ภาษาแบบเรียลไทม์ เดินทางต่างประเทศไร้กังวล", + "simultaneousInterpretationInfo": "แปลภาษากว่า 80 ภาษาแบบเรียลไทม์ เดินทางต่างประเทศไร้กังวล", "aiCompanion": "เพื่อนคู่คิดสำหรับครอบครัว", "aiCompanionInfo": "เข้าใจคุณ อยู่เคียงข้างอย่างอบอุ่น", "homeSlogan": "เชื่อมต่อโลก เหนือกว่าเสียง", @@ -222,8 +219,7 @@ const Map thTH = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": - "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -279,10 +275,8 @@ const Map thTH = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': - 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', - 'meetingHeaderDesc2': - 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', + 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -291,35 +285,27 @@ const Map thTH = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': - 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': - 'Real-time simultaneous interpretation and text translation with low-latency voice.', + 'transHeaderDesc1': 'Real-time simultaneous interpretation and text translation with low-latency voice.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'translateZhEn': 'Chinese-English translation', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'multiLangTextTranslation': 'Multilingual text translation', - 'termOptimizationContextPreserve': - 'Terminology optimization and context preservation', + 'termOptimizationContextPreserve': 'Terminology optimization and context preservation', 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'personalVocabularyMemory': 'Personal vocabulary memory', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'colorHighContrast': 'High color contrast', - 'transDisclaimer': - 'Translation performance depends on microphone, network latency, and ambient noise.', + 'transDisclaimer': 'Translation performance depends on microphone, network latency, and ambient noise.', // AI 商品页描述 - 'aiHeaderDesc1': - 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': - 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': - 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': - 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -328,10 +314,8 @@ const Map thTH = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': - 'Template messages and schedule reminders', - 'aiDisclaimer': - 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', + 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Benefits overview', @@ -346,11 +330,10 @@ const Map thTH = { 'generalPrivileges': 'General privileges', 'earlyAccessNewFeatures': 'Early access to new features', 'crossDeviceSync': 'Cross-device sync', - 'vipDisclaimer': - 'Actual benefits depend on the package details and may change with versions.', + 'vipDisclaimer': 'Actual benefits depend on the package details and may change with versions.', // 新手引导 / Onboarding - 'skip': "ข้าม", + 'skip': 'ข้าม', 'next': 'Next', 'sayLilyHint': 'Say "Lily Lily" to the mic', 'imHere': 'I’m here~', @@ -373,8 +356,7 @@ const Map thTH = { 'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavSend': 'Lily will plan the route', 'guideNavEnd': 'Navigation set—try other commands', - 'guideMeetingStart': - 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', + 'guideMeetingStart': 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingEnd': 'Reminder created—try other commands', @@ -424,8 +406,7 @@ const Map thTH = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': - 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -433,6 +414,23 @@ const Map thTH = { 'audioVideoRecording': 'Audio/Video Recording', 'callRecording': 'Call Recording', 'importAudio': 'Import Audio', + 'meetingRecordExitTitle': 'ออกจากการบันทึก', // 退出录音 + 'meetingRecordExitMessage': 'โปรดเลือกการดำเนินการหลังจากออก', // 请选择离开后的操作 + 'meetingRecordEndAndSave': 'จบและบันทึก', // 结束录音并保存 + 'meetingRecordEndWithoutSave': 'จบโดยไม่บันทึก', // 结束录音不保存 + 'meetingRecordContinueInBackground': 'บันทึกต่อในพื้นหลัง', // 后台继续录音 + 'meetingRecordStopTimeout': 'หมดเวลาหยุดการบันทึก โปรดลองอีกครั้ง', // 结束录音超时,请重试 + 'meetingRecordStopFailed': 'หยุดการบันทึกไม่สำเร็จ โปรดลองอีกครั้ง', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': 'บันทึกการบันทึกไม่สำเร็จ โปรดลองอีกครั้ง', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': 'กำลังบันทึก', // 录音进行中 + 'meetingRecordRecordingNotificationBody': 'กำลังบันทึกในพื้นหลัง แตะเพื่อกลับไปที่แอป', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': 'สิทธิ์หน้าต่างลอย', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': + 'เพื่อแสดงผลการแปลระหว่างการโทรหรือการแปลเสียง/วิดีโอ เราต้องใช้สิทธิ์แสดงทับแอปอื่น ซึ่งจะทำให้คุณเห็นคำแปลแบบเรียลไทม์ขณะใช้แอปอื่นได้', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': + 'เพื่อแสดงแถบลอยการบันทึก (ตัวจับเวลา/หยุดชั่วคราว/ทำต่อ) ระหว่างการบันทึก เราต้องใช้สิทธิ์แสดงทับแอปอื่น', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': + 'ไม่สามารถเปิดการตั้งค่าระบบอัตโนมัติได้ โปรดเปิดการตั้งค่าและเปิดสิทธิ์แสดงทับแอปอื่นด้วยตนเอง', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'Transcribing...', 'summarizing': 'Summarizing...', 'analyzing': 'Analyzing...', @@ -480,54 +478,40 @@ const Map thTH = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': - 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': - 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': - 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': - 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': - 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': - 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': - 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': - 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': - 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': - 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': - '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': - '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': - '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': - 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -539,8 +523,7 @@ const Map thTH = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': - 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -560,10 +543,9 @@ const Map thTH = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': - 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': - 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', + '检测到您已永久拒绝存储权限。如需继续使用此功能,请前往应用设置中手动开启存储权限。', // Meeting模块 - 思维导图相关 'shareMindMap': 'Share Mind Map', @@ -612,13 +594,12 @@ const Map thTH = { 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': - 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', 'syncToCloudTip': - 'Automatically sync your recordings to the cloud, you can play, manage and share recordings through any VOITRANS APP or VOITRANS Web (web.voitrans.com).', + '自动将你的录音同步到云端,你可以通过任意VOITRANS APP或VOITRANS Web(web.voitrans.com)播放、管理和分享录音。', 'syncToVoitransApp': 'Sync VOITRANS APP', 'transcriptionRecord': 'Transcription Record', @@ -638,8 +619,7 @@ const Map thTH = { "cloudSync": "การเติมเงินการ đồng bộ hóaคลาวด์", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": - "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", "joinDevice": "อุปกรณ์ที่เชื่อมต่อ:", "accountId": "ID บัญชี:", "systemSetting": "การตั้งค่าระบบ", @@ -652,8 +632,7 @@ const Map thTH = { "privacySettings": "การตั้งค่าความเป็นส่วนตัว", "privacySettingsInfo": "จัดการการรวบรวมข้อมูลและสิทธิ์", "permissionManagement": "การจัดการสิทธิ์", // 权限管理 - "permissionManagementInfo": - "จัดการการตั้งค่าสิทธิ์ของแอปพลิเคชัน", // 管理应用权限设置 + "permissionManagementInfo": "จัดการการตั้งค่าสิทธิ์ของแอปพลิเคชัน", // 管理应用权限设置 "aboutApplication": "เกี่ยวกับแอปพลิเคชัน", "versions": "เวอร์ชัน", "checkUpdates": "ตรวจสอบการอัปเดต", @@ -662,11 +641,9 @@ const Map thTH = { "voiceServiceInfo": "เลือกบริการรู้จำและสังเคราะห์เสียง", "selectVoiceService": "เลือกบริการเสียง", "azureVoiceService": "บริการเสียง Azure", - "azureVoiceServiceInfo": - "บริการเสียงบนคลาวด์ของ Microsoft รองรับการสังเคราะห์และรู้จำเสียงคุณภาพสูง", + "azureVoiceServiceInfo": "บริการเสียงบนคลาวด์ของ Microsoft รองรับการสังเคราะห์และรู้จำเสียงคุณภาพสูง", "flutterVoiceService": "บริการเสียงในเครื่อง Flutter", - "flutterVoiceServiceInfo": - "บริการเสียงในเครื่องของอุปกรณ์ สามารถใช้งานได้โดยไม่ต้องเชื่อมต่ออินเทอร์เน็ต", + "flutterVoiceServiceInfo": "บริการเสียงในเครื่องของอุปกรณ์ สามารถใช้งานได้โดยไม่ต้องเชื่อมต่ออินเทอร์เน็ต", 'timbreService': 'บริการโทนเสียง', 'timbreServiceInfo': 'เลือกบริการสังเคราะห์เสียงด้วยโทนเสียง', 'defaultTimbre': 'โทนเสียงเริ่มต้น', @@ -695,8 +672,7 @@ const Map thTH = { // 设置页面 - 实时语音对话 "realtimeVoiceChat": "แชทเสียงแบบเรียลไทม์", - "realtimeVoiceChatInfo": - "สัมผัสประสบการณ์การโต้ตอบด้วยเสียงอัจฉริยะ (ตัวอย่างฟังก์ชัน)", + "realtimeVoiceChatInfo": "สัมผัสประสบการณ์การโต้ตอบด้วยเสียงอัจฉริยะ (ตัวอย่างฟังก์ชัน)", "loading": "กำลังโหลด...", //设备管理页面 @@ -711,8 +687,7 @@ const Map thTH = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": - "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": "Are you sure you want to unbind device \\", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -760,22 +735,18 @@ const Map thTH = { "nearbyFood": "What delicious food is nearby?", // 美食 // Agent controller - 'welcomeMessage': 'สวัสดี! ฉันคือ **เสี่ยวเหยียน** ฉันสามารถช่วยคุณได้:\n\n' - '• ตอบคำถามและให้ข้อมูล\n\n' - '• แปลเสียงแบบเรียลไทม์\n\n' - '• แนะนำเพลงและพอดคาสต์\n\n' - '• บันทึกเสียงและเตือนความจำ\n\n' - '• ควบคุมฟังก์ชันของหูฟัง\n\n' - 'มีอะไรให้ฉันช่วยไหม', + 'welcomeMessage': '你好!我是**Lily**,我能帮你:\n\n' + '• 回答问题和提供信息\n\n' + '• 实时语音翻译\n\n' + '• 推荐音乐和播客\n\n' + '• 语音备忘录和提醒\n\n' + '• 控制耳机功能\n\n' + '有什么我可以帮你的吗?', 'microphonePermission': 'ไมโครโฟน', - 'voiceRecognitionPermissionText': - 'ฟังก์ชันรู้จำเสียงต้องการการเข้าถึงไมโครโฟน', - 'voiceTranslationPermissionText': - 'ฟังก์ชันรู้จำและแปลเสียงต้องการการเข้าถึงไมโครโฟน', - 'phoneCallPermissionText': - 'ฟังก์ชันโทรออกต้องการการเข้าถึงไมโครโฟนสำหรับการโทรด้วยเสียง', - 'permissionDeniedText': - 'คุณได้ปฏิเสธการอนุญาตใช้ไมโครโฟนอย่างถาวร โปรดไปที่การตั้งค่าระบบเพื่อเปิดใช้งาน', + 'voiceRecognitionPermissionText': 'ฟังก์ชันรู้จำเสียงต้องการการเข้าถึงไมโครโฟน', + 'voiceTranslationPermissionText': 'ฟังก์ชันรู้จำและแปลเสียงต้องการการเข้าถึงไมโครโฟน', + 'phoneCallPermissionText': 'ฟังก์ชันโทรออกต้องการการเข้าถึงไมโครโฟนสำหรับการโทรด้วยเสียง', + 'permissionDeniedText': 'คุณได้ปฏิเสธการอนุญาตใช้ไมโครโฟนอย่างถาวร โปรดไปที่การตั้งค่าระบบเพื่อเปิดใช้งาน', 'startVoiceInput': 'เริ่มการป้อนข้อมูลด้วยเสียง', 'startPhoneCallMode': 'เริ่มโหมดโทรศัพท์ เริ่มการป้อนข้อมูลด้วยเสียง', @@ -798,8 +769,7 @@ const Map thTH = { 'privacyRelated': 'เกี่ยวกับความเป็นส่วนตัว', 'copyrightViolation': 'ละเมิดลิขสิทธิ์ ชื่อเสียง ฯลฯ ของฉัน', 'other': 'อื่นๆ', - 'reportDescriptionHint': - 'เราต้องการทราบเหตุผลที่คุณรายงาน คุณสามารถอธิบายปัญหาที่คุณพบได้', + 'reportDescriptionHint': 'เราต้องการทราบเหตุผลที่คุณรายงาน คุณสามารถอธิบายปัญหาที่คุณพบได้', //'submit': '提交', //Message_bubble @@ -831,20 +801,13 @@ const Map thTH = { 'lowest': 'ต่ำสุด', 'futureForecast': 'พยากรณ์อากาศล่วงหน้า', 'hotWeatherTip': 'วันนี้อากาศร้อน โปรดระวังโรคลมแดด ดื่มน้ำมากๆ', - 'coldWeatherTip': - 'วันนี้อากาศเย็น โปรดใส่ใจเรื่องความอบอุ่นเมื่อออกไปข้างนอก ระวังเป็นหวัด', - 'rainyWeatherTip': - 'วันนี้มีฝน โปรดพกร่มเมื่อออกไปข้างนอก ระมัดระวังในการเดินทาง', - 'snowyWeatherTip': - 'วันนี้มีหิมะ ถนนลื่นโปรดระวังความปลอดภัย เตรียมมาตรการป้องกันความหนาว', - 'foggyWeatherTip': - 'วันนี้มีหมอก ทัศนวิสัยต่ำ โปรดสวมหน้ากากเมื่อออกไปข้างนอก', - 'windyWeatherTip': - 'วันนี้ลมแรง โปรดระวังความปลอดภัยเมื่อออกไปข้างนอก ยึดของให้แน่น', - 'sunnyWeatherTip': - 'วันนี้แดดจัด รังสียูวีแรง โปรดป้องกันแสงแดดเมื่อออกไปข้างนอก', - 'temperatureDifferenceTip': - 'วันนี้อุณหภูมิต่างกันมากระหว่างกลางวันและกลางคืน โปรดเพิ่มหรือลดเสื้อผ้าให้เหมาะสม', + 'coldWeatherTip': 'วันนี้อากาศเย็น โปรดใส่ใจเรื่องความอบอุ่นเมื่อออกไปข้างนอก ระวังเป็นหวัด', + 'rainyWeatherTip': 'วันนี้มีฝน โปรดพกร่มเมื่อออกไปข้างนอก ระมัดระวังในการเดินทาง', + 'snowyWeatherTip': 'วันนี้มีหิมะ ถนนลื่นโปรดระวังความปลอดภัย เตรียมมาตรการป้องกันความหนาว', + 'foggyWeatherTip': 'วันนี้มีหมอก ทัศนวิสัยต่ำ โปรดสวมหน้ากากเมื่อออกไปข้างนอก', + 'windyWeatherTip': 'วันนี้ลมแรง โปรดระวังความปลอดภัยเมื่อออกไปข้างนอก ยึดของให้แน่น', + 'sunnyWeatherTip': 'วันนี้แดดจัด รังสียูวีแรง โปรดป้องกันแสงแดดเมื่อออกไปข้างนอก', + 'temperatureDifferenceTip': 'วันนี้อุณหภูมิต่างกันมากระหว่างกลางวันและกลางคืน โปรดเพิ่มหรือลดเสื้อผ้าให้เหมาะสม', 'comfortableWeatherTip': 'วันนี้อากาศดี เป็นเวลาที่ดีสำหรับกิจกรรมกลางแจ้ง', "monday": "จ.", "tuesday": "อ.", @@ -897,29 +860,22 @@ const Map thTH = { "logout": "ออกจากระบบ", "logoutTips": "คุณแน่ใจหรือไม่ว่าต้องการออกจากระบบบัญชีปัจจุบัน", 'deleteAccount': 'ลบบัญชี', - 'deleteAccountTips': - 'คุณแน่ใจหรือไม่ว่าต้องการลบบัญชีของคุณอย่างถาวร การกระทำนี้ไม่สามารถย้อนกลับได้', + 'deleteAccountTips': 'คุณแน่ใจหรือไม่ว่าต้องการลบบัญชีของคุณอย่างถาวร การกระทำนี้ไม่สามารถย้อนกลับได้', 'clean': 'Clear Cache', 'cleanTips': 'Are you sure you want to clear personal cache?', // Profile 错误信息 - 'networkConnectionFailed': - 'การเชื่อมต่อเครือข่ายล้มเหลว โปรดตรวจสอบการตั้งค่าเครือข่ายแล้วลองใหม่', - 'serverTemporarilyUnavailable': - 'เซิร์ฟเวอร์ไม่สามารถตอบสนองได้ชั่วคราว โปรดลองใหม่ในภายหลัง', - 'loginExpiredPleaseRelogin': - 'การเข้าสู่ระบบหมดอายุแล้ว โปรดเข้าสู่ระบบอีกครั้ง', + 'networkConnectionFailed': 'การเชื่อมต่อเครือข่ายล้มเหลว โปรดตรวจสอบการตั้งค่าเครือข่ายแล้วลองใหม่', + 'serverTemporarilyUnavailable': 'เซิร์ฟเวอร์ไม่สามารถตอบสนองได้ชั่วคราว โปรดลองใหม่ในภายหลัง', + 'loginExpiredPleaseRelogin': 'การเข้าสู่ระบบหมดอายุแล้ว โปรดเข้าสู่ระบบอีกครั้ง', 'noPermissionForThisOperation': 'ไม่มีสิทธิ์ดำเนินการนี้', 'requestedResourceNotFound': 'ไม่พบทรัพยากรที่ร้องขอ', - 'imageProcessingFailedPleaseReselect': - 'การประมวลผลรูปภาพล้มเหลว โปรดเลือกรูปภาพอีกครั้ง', + 'imageProcessingFailedPleaseReselect': 'การประมวลผลรูปภาพล้มเหลว โปรดเลือกรูปภาพอีกครั้ง', 'operationFailedPleaseRetry': 'การดำเนินการล้มเหลว โปรดลองใหม่', 'serverReturnedError': 'เซิร์ฟเวอร์ส่งคืนข้อผิดพลาด', 'serverError': 'ข้อผิดพลาดของเซิร์ฟเวอร์', - 'networkConnectionFailedCheckSettings': - 'การเชื่อมต่อเครือข่ายล้มเหลว โปรดตรวจสอบการตั้งค่าเครือข่าย', - 'serverInternalErrorRetryLater': - 'ข้อผิดพลาดภายในเซิร์ฟเวอร์ โปรดลองใหม่ในภายหลัง', + 'networkConnectionFailedCheckSettings': 'การเชื่อมต่อเครือข่ายล้มเหลว โปรดตรวจสอบการตั้งค่าเครือข่าย', + 'serverInternalErrorRetryLater': 'ข้อผิดพลาดภายในเซิร์ฟเวอร์ โปรดลองใหม่ในภายหลัง', // Profile 用户交互 //'error': '错误', @@ -941,12 +897,10 @@ const Map thTH = { 'thirdPartyLogoutSuccess': 'ออกจากระบบบุคคลที่สามสำเร็จ', // 第三方登录退出成功 'thirdPartyLogoutFailed': 'ออกจากระบบบุคคลที่สามล้มเหลว', // 第三方登录退出失败 'signOutProcessError': 'เกิดข้อผิดพลาดระหว่างกระบวนการออกจากระบบ', // 登出过程发生错误 - 'deleteAccountProcessError': - 'เกิดข้อผิดพลาดระหว่างกระบวนการลบบัญชี', // 删除账号过程发生错误 + 'deleteAccountProcessError': 'เกิดข้อผิดพลาดระหว่างกระบวนการลบบัญชี', // 删除账号过程发生错误 'userDataClearSuccess': 'ล้างข้อมูลผู้ใช้สำเร็จ', // 用户数据清理成功 'allUserDataClearSuccess': 'ล้างข้อมูลผู้ใช้ทั้งหมดสำเร็จ', // 所有用户数据清理成功 - 'accountServiceInitialized': - 'AccountService ได้รับการเริ่มต้นแล้ว', // AccountService 已初始化 + 'accountServiceInitialized': 'AccountService ได้รับการเริ่มต้นแล้ว', // AccountService 已初始化 // 权限管理页面 'getPermissionStatusFailed': 'รับสถานะสิทธิ์ล้มเหลว', @@ -969,11 +923,9 @@ const Map thTH = { 'locationInfo': 'ข้อมูลตำแหน่ง', 'phonePermissionDesc': 'ใช้สำหรับฟังก์ชันการโทรออก', 'smsPermissionDesc': 'ใช้สำหรับฟังก์ชันการส่ง SMS', - 'alarmPermissionDesc': - 'Used to set exact alarms to ensure reminders trigger on time', + 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', 'calendarWritePermissionDesc': 'ใช้สำหรับสร้างกิจกรรมและการแจ้งเตือนในปฏิทิน', - 'calendarFullAccessPermissionDesc': - 'ใช้สำหรับอ่านและจัดการกิจกรรมและการแจ้งเตือนในปฏิทิน', + 'calendarFullAccessPermissionDesc': 'ใช้สำหรับอ่านและจัดการกิจกรรมและการแจ้งเตือนในปฏิทิน', 'locationPermissionDesc': 'ใช้สำหรับรับข้อมูลตำแหน่งปัจจุบัน', 'appFunctionNeeds': 'ฟังก์ชันแอปพลิเคชันต้องการ', 'authorized': 'ได้รับอนุญาต', @@ -985,77 +937,53 @@ const Map thTH = { 'permissionRequestError': 'เกิดข้อผิดพลาดขณะขอสิทธิ์', 'phonePermissionDetailDesc': 'ฟังก์ชันโทรออกต้องการสิทธิ์โทรศัพท์', 'smsPermissionDetailDesc': 'ฟังก์ชันส่ง SMS ต้องการสิทธิ์ SMS', - 'alarmPermissionDetailDesc': - 'This permission is required to set exact alarms and ensure reminders trigger on time', - 'calendarWritePermissionDetailDesc': - 'การสร้างกิจกรรมในปฏิทินต้องการสิทธิ์เขียนปฏิทิน', - 'calendarFullAccessPermissionDetailDesc': - 'การจัดการกิจกรรมในปฏิทินต้องการสิทธิ์เข้าถึงปฏิทินเต็มรูปแบบ', + 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'calendarWritePermissionDetailDesc': 'การสร้างกิจกรรมในปฏิทินต้องการสิทธิ์เขียนปฏิทิน', + 'calendarFullAccessPermissionDetailDesc': 'การจัดการกิจกรรมในปฏิทินต้องการสิทธิ์เข้าถึงปฏิทินเต็มรูปแบบ', 'locationPermissionDetailDesc': 'การรับข้อมูลตำแหน่งต้องการสิทธิ์ตำแหน่ง', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': - 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': - 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': - 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': - 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': - 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': - 'App needs notification permission to send you important alerts and messages', - 'appNeedsPermissionForFullFunction': - 'แอปพลิเคชันต้องการสิทธิ์นี้เพื่อให้บริการเต็มรูปแบบ', - 'permanentDenialText': - 'คุณได้ปฏิเสธสิทธิ์ {permission} อย่างถาวร โปรดไปที่การตั้งค่าแอปเพื่อเปิดใช้งาน', + 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', + 'appNeedsPermissionForFullFunction': 'แอปพลิเคชันต้องการสิทธิ์นี้เพื่อให้บริการเต็มรูปแบบ', + 'permanentDenialText': 'คุณได้ปฏิเสธสิทธิ์ {permission} อย่างถาวร โปรดไปที่การตั้งค่าแอปเพื่อเปิดใช้งาน', 'goToSettings': 'ไปที่การตั้งค่า', // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': - 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': - 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': - 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': - 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': - 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': - 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': - 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': - 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': - 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': - 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': - 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': - 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': - 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', + '检测到您已永久拒绝录音权限。如需继续使用此功能,请前往应用设置中手动开启麦克风权限。', 'storagePermissionPermanentDenial': - 'Storage permission has been permanently denied. To continue using this feature, please go to app settings to manually enable storage permission.', + '检测到您已永久拒绝存储权限。如需继续使用此功能,请前往应用设置中手动开启存储权限。', //permission_util.dart 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': - 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -1064,10 +992,8 @@ const Map thTH = { 'updateNow': 'อัปเดตทันที', // 立即更新按钮 'checkUpdate': 'ตรวจสอบการอัปเดต', // 检查更新按钮 'updateFailed': 'อัปเดตล้มเหลว', // 更新失败提示 - 'cannotOpenAppStore': - 'ไม่สามารถเปิด App Store ได้ โปรดไปที่ App Store เพื่ออัปเดตด้วยตนเอง', // 无法打开应用商店提示 - 'updateErrorRetry': - 'เกิดข้อผิดพลาดระหว่างการอัปเดต โปรดลองใหม่ในภายหลัง', // 更新错误重试提示 + 'cannotOpenAppStore': 'ไม่สามารถเปิด App Store ได้ โปรดไปที่ App Store เพื่ออัปเดตด้วยตนเอง', // 无法打开应用商店提示 + 'updateErrorRetry': 'เกิดข้อผิดพลาดระหว่างการอัปเดต โปรดลองใหม่ในภายหลัง', // 更新错误重试提示 //国家列表 "邮箱": "อีเมล", @@ -1203,8 +1129,7 @@ const Map thTH = { "selectTargetLanguage": "เลือกภาษาเป้าหมาย", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": - "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1220,12 +1145,10 @@ const Map thTH = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "ล้างประวัติ", - "clearHistoryConfirm": - "คุณแน่ใจหรือไม่ว่าต้องการล้างประวัติการแปลทั้งหมด การกระทำนี้ไม่สามารถย้อนกลับได้", + "clearHistoryConfirm": "คุณแน่ใจหรือไม่ว่าต้องการล้างประวัติการแปลทั้งหมด การกระทำนี้ไม่สามารถย้อนกลับได้", "unknownLanguage": "ภาษาที่ไม่รู้จัก", "deleteSessionRecord": "ลบบันทึกเซสชัน", - "deleteSessionConfirm": - "คุณแน่ใจหรือไม่ว่าต้องการลบบันทึกการแปลทั้งหมดของเซสชันนี้ การกระทำนี้ไม่สามารถย้อนกลับได้", + "deleteSessionConfirm": "คุณแน่ใจหรือไม่ว่าต้องการลบบันทึกการแปลทั้งหมดของเซสชันนี้ การกระทำนี้ไม่สามารถย้อนกลับได้", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1257,20 +1180,15 @@ const Map thTH = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": - "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": - "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": - "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": - "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": - "Photo album permission required to pick images", + "photoAlbumPermissionRequired": "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1301,11 +1219,9 @@ const Map thTH = { "summaryGenerated": "สร้างสรุปแล้ว", "generating": "กำลังสร้าง...", "regenerate": "สร้างใหม่", - "summaryTimeoutMessage": - "คำขอสร้างสรุปหมดเวลา อาจเป็นเพราะปัญหาเครือข่ายหรือเซิร์ฟเวอร์ไม่ว่าง", + "summaryTimeoutMessage": "คำขอสร้างสรุปหมดเวลา อาจเป็นเพราะปัญหาเครือข่ายหรือเซิร์ฟเวอร์ไม่ว่าง", "deleteTranslationRecord": "ลบบันทึกการแปล", - "deleteTranslationConfirm": - "คุณแน่ใจหรือไม่ว่าต้องการลบบันทึกการแปลนี้ การกระทำนี้ไม่สามารถย้อนกลับได้", + "deleteTranslationConfirm": "คุณแน่ใจหรือไม่ว่าต้องการลบบันทึกการแปลนี้ การกระทำนี้ไม่สามารถย้อนกลับได้", "originalText": "ข้อความต้นฉบับ", "translatedText": "ข้อความที่แปลแล้ว", "sessionSummary": "สรุปเซสชัน", @@ -1333,24 +1249,19 @@ const Map thTH = { // 配对状态文本 "readyToPair": "พร้อมที่จะจับคู่", "preparingPairingEnvironment": "กำลังเตรียมสภาพแวดล้อมการจับคู่...", - "connectDeepSoundViaSystemBluetooth": - "กรุณาเชื่อมต่อกับอุปกรณ์ Voitrans ผ่านบลูทูธของระบบก่อน", + "connectDeepSoundViaSystemBluetooth": "กรุณาเชื่อมต่อกับอุปกรณ์ Voitrans ผ่านบลูทูธของระบบก่อน", "deviceBindingConfirm": "ยืนยันการผูกอุปกรณ์...", "establishingDeviceAssociation": "กำลังสร้างการเชื่อมโยงอุปกรณ์...", "waitingCompletePairing": "กรุณารอสักครู่ กำลังทำการจับคู่ให้เสร็จสิ้น...", - "pairingSuccessRedirecting": - "การจับคู่สำเร็จ! กำลังเปลี่ยนเส้นทางไปยังหน้าหลัก...", + "pairingSuccessRedirecting": "การจับคู่สำเร็จ! กำลังเปลี่ยนเส้นทางไปยังหน้าหลัก...", // 配对错误状态文本 - "ensureConnectedDeepSoundDevice": - "โปรดตรวจสอบให้แน่ใจว่าคุณเชื่อมต่อกับอุปกรณ์ Voitrans", + "ensureConnectedDeepSoundDevice": "โปรดตรวจสอบให้แน่ใจว่าคุณเชื่อมต่อกับอุปกรณ์ Voitrans", "deviceAlreadyBoundToOtherAccount": "อุปกรณ์นี้ถูกผูกไว้กับบัญชีอื่นแล้ว", "deviceAssociationFailed": "การเชื่อมโยงอุปกรณ์ล้มเหลว โปรดลองอีกครั้ง", - "scanTimeoutEnsureDeviceNearby": - "การสแกนหมดเวลา โปรดตรวจสอบให้แน่ใจว่าอุปกรณ์อยู่ใกล้ๆ", + "scanTimeoutEnsureDeviceNearby": "การสแกนหมดเวลา โปรดตรวจสอบให้แน่ใจว่าอุปกรณ์อยู่ใกล้ๆ", "networkError": "ข้อผิดพลาดเครือข่าย", - "authorizationFailedCheckCode": - "การอนุญาตล้มเหลว โปรดตรวจสอบว่ารหัสอนุญาตถูกต้องหรือไม่", + "authorizationFailedCheckCode": "การอนุญาตล้มเหลว โปรดตรวจสอบว่ารหัสอนุญาตถูกต้องหรือไม่", "pairingFailedRetry": "การจับคู่ล้มเหลว โปรดลองอีกครั้ง", // 配对控制器相关 @@ -1359,8 +1270,7 @@ const Map thTH = { 'deviceDisconnected': 'อุปกรณ์ตัดการเชื่อมต่อแล้ว', 'readyToStartPairing': 'พร้อมที่จะเริ่มการจับคู่', 'checkingEnvironment': 'กำลังตรวจสอบสภาพแวดล้อม...', - 'ensureHeadsetOnAndPairingMode': - 'โปรดตรวจสอบให้แน่ใจว่าหูฟังเปิดอยู่และอยู่ในโหมดจับคู่', + 'ensureHeadsetOnAndPairingMode': 'โปรดตรวจสอบให้แน่ใจว่าหูฟังเปิดอยู่และอยู่ในโหมดจับคู่', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', @@ -1382,20 +1292,15 @@ const Map thTH = { 'bleConnectionTimeoutRetry': 'การเชื่อมต่อ BLE หมดเวลา โปรดลองอีกครั้ง', 'blePairingStartupFailed': 'การเริ่มต้นการจับคู่ BLE ล้มเหลว', 'bleConnectionFailed': 'การเชื่อมต่อ BLE ล้มเหลว', - 'deviceAuthorizationFailedCheckCode': - 'การอนุญาตอุปกรณ์ล้มเหลว โปรดตรวจสอบรหัสอนุญาต', + 'deviceAuthorizationFailedCheckCode': 'การอนุญาตอุปกรณ์ล้มเหลว โปรดตรวจสอบรหัสอนุญาต', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': - 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': - 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': - 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': - 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 @@ -1407,13 +1312,11 @@ const Map thTH = { 'contactInfo': 'ข้อมูลติดต่อ', 'contactHint': 'อีเมล/หมายเลขโทรศัพท์ เพื่อให้เราสามารถติดต่อคุณได้', 'submit': 'ส่ง', - 'feedbackSubmitSuccess': - 'ส่งความคิดเห็นสำเร็จ ขอบคุณสำหรับความคิดเห็นของคุณ!', + 'feedbackSubmitSuccess': 'ส่งความคิดเห็นสำเร็จ ขอบคุณสำหรับความคิดเห็นของคุณ!', 'feedbackSubmitFailed': 'ส่งความคิดเห็นล้มเหลว โปรดลองใหม่ในภายหลัง', // OTA升级模块 - "upgradeExitConfirm": - "กำลังอัปเกรด การออกจะขัดจังหวะกระบวนการอัปเกรด คุณแน่ใจหรือไม่ว่าต้องการออก", + "upgradeExitConfirm": "กำลังอัปเกรด การออกจะขัดจังหวะกระบวนการอัปเกรด คุณแน่ใจหรือไม่ว่าต้องการออก", "deviceModel": "รุ่นอุปกรณ์", "unknownDevice": "อุปกรณ์ที่ไม่รู้จัก", "currentFirmwareVersion": "เวอร์ชันเฟิร์มแวร์ปัจจุบัน", @@ -1426,19 +1329,14 @@ const Map thTH = { "retryConnection": "ลองเชื่อมต่อใหม่", "ota_updateNow": "อัปเดตทันที", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": - "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": - "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": - "Firmware version is abnormal. Please reconnect and retry.", - "keepConnectedDontClose": - "โปรดให้อุปกรณ์เชื่อมต่ออยู่เสมอ อย่าปิดแอปพลิเคชัน", + "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", + "keepConnectedDontClose": "โปรดให้อุปกรณ์เชื่อมต่ออยู่เสมอ อย่าปิดแอปพลิเคชัน", "doNotDisconnect": "โปรดอย่าตัดการเชื่อมต่อ", "charging": "กำลังชาร์จ", "updateContent": "เนื้อหาการอัปเดต", - "removeEarbudsEnsureBattery": - "ถอดหูฟังทั้งสองข้างออก และตรวจสอบให้แน่ใจว่าแบตเตอรี่ทั้งสองข้างมีพลังงานมากกว่า 20%", + "removeEarbudsEnsureBattery": "ถอดหูฟังทั้งสองข้างออก และตรวจสอบให้แน่ใจว่าแบตเตอรี่ทั้งสองข้างมีพลังงานมากกว่า 20%", // 音乐列表页面 "noMusic": "ไม่มีเพลง", // 暂无音乐 @@ -1448,9 +1346,9 @@ const Map thTH = { "playAll": "เล่นทั้งหมด", // 播放全部 // 语言名称 - "中文(简体)": "ภาษาจีน (ตัวย่อ)", - "中文(繁体)": "ภาษาจีน (ตัวเต็ม)", - "中文(香港繁体)": "ภาษาจีน (ฮ่องกงตัวเต็ม)", + "中文(简体)": "中文(简体)", + "中文(繁体)": "中文(繁体)", + "中文(香港繁体)": "中文(香港繁体)", "英语": "ภาษาอังกฤษ", "日语": "ภาษาญี่ปุ่น", "韩语": "ภาษาเกาหลี", @@ -1500,10 +1398,8 @@ const Map thTH = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": - 'Insufficient balance, please go to the corresponding recharge page to recharge.', - "recharge": 'Go to Recharge', + "insufficientBalanceDesc": "Insufficient balance, please go to the corresponding recharge page to recharge.", + "recharge": "Go to Recharge", // 会员到期提示 - "aiMemberExpiredDesc": - 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": "AI membership expired, please go to the membership recharge page to renew.", }; diff --git a/lib/core/translations/language/tl_ph.dart b/lib/core/translations/language/tl_ph.dart index cfc036b70..ee51aa5af 100644 --- a/lib/core/translations/language/tl_ph.dart +++ b/lib/core/translations/language/tl_ph.dart @@ -72,8 +72,7 @@ const Map tlPH = { // 登录页 "welcome": "Maligayang pagdating", - "loginTips": - "Mangyaring mag-login o mag-signup gamit ang iyong numero ng telepono o email", + "loginTips": "Mangyaring mag-login o mag-signup gamit ang iyong numero ng telepono o email", "accountNumber": "Numero ng Telepono o Email", "verificationCode": "Verification Code", "getCode": "Kunin ang Code", @@ -92,8 +91,7 @@ const Map tlPH = { "tip": "Paalala", "pleaseEnterCompleteCode": "Pakilagay ang kumpletong verification code", "loginFailed": "Nabigo ang pag-login, pakisubukang muli", - 'pleaseAcceptPrivacyPolicy': - 'Pakibasa at sumang-ayon muna sa Patakaran sa Privacy at Kasunduan ng User', + 'pleaseAcceptPrivacyPolicy': 'Pakibasa at sumang-ayon muna sa Patakaran sa Privacy at Kasunduan ng User', "enterVerificationCode": "Ilagay ang Verification Code", "verificationCodeSentTo": "Ang verification code ay ipinadala sa", "resendVerificationCode": "Ipadala muli ang verification code", @@ -102,12 +100,11 @@ const Map tlPH = { // 隐私政策弹窗 "loginDeclaration": "Pahayag ng Voitrans", // Voitrans 声明 - "welcomeToThisApp": - "Maligayang pagdating sa Voitrans, mangyaring basahin nang mabuti", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": "Maligayang pagdating sa Voitrans, mangyaring basahin nang mabuti", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": - ", ang pag-click sa 'Sumang-ayon at Pumasok' ay nangangahulugang nabasa mo nang buo at sumasang-ayon ka sa mga nabanggit na kasunduan. Ang pag-click sa 'Hindi Sumasang-ayon' ay magsasara ng app.", // ,点击"同意并进入"表示您已充分阅读并同意上述协议。点击"不同意"将退出应用。 + ",点击'同意并进入'表示您已充分阅读并同意上述协议。点击'不同意'将退出应用。", // ,点击"同意并进入"表示您已充分阅读并同意上述协议。点击"不同意"将退出应用。 "disagree": "Hindi Sumasang-ayon", // 不同意 "agreeAndEnter": "Sumang-ayon at Pumasok", // 同意并进入 @@ -119,30 +116,24 @@ const Map tlPH = { "signal": "Signal", "deviceId": "Device ID", "firmwareVersion": "Bersyon ng Firmware", - "disconnectedDevice": - "Walang device na konektado, i-click ang button sa ibaba para kumonekta", + "disconnectedDevice": "Walang device na konektado, i-click ang button sa ibaba para kumonekta", "connectDevice": "Ikonekta ang Device", "topAiExperiences": "Mga Nangungunang Karanasan sa AI", "aiAssistant": "AI All-in-One Assistant", - "aiAssistantInfo": - "24/7 na eksklusibong consultant, sumasagot sa mga tanong, nagbibigay ng payo", + "aiAssistantInfo": "24/7 na eksklusibong consultant, sumasagot sa mga tanong, nagbibigay ng payo", "interpretation": "Sabayang Pagsasalin", - "simultaneousInterpretationInfo": - "Real-time na pagsasalin sa 80+ na wika, walang alalahanin sa paglalakbay sa ibang bansa", + "simultaneousInterpretationInfo": "Real-time na pagsasalin sa 80+ na wika, walang alalahanin sa paglalakbay sa ibang bansa", "aiCompanion": "Kasama ng Pamilya", "aiCompanionInfo": "Nakakaintindi sa iyo, mainit na samahan", "homeSlogan": "Ikonekta ang mundo, lampas sa tunog", - "turnEarphones": - "Pakibuksan ang charging case ng earphones, at ilagay ang earphones sa iyong mga tainga", + "turnEarphones": "Pakibuksan ang charging case ng earphones, at ilagay ang earphones sa iyong mga tainga", "currentlyConnected": "Kasalukuyang konektado:", "unsystemSetup": "Pumunta sa Mga Setting ng System", "talkLater": "Mamaya na", "initializing": "Nag-i-initialize...", - "bluetoothInitializationFailure": - "Nabigo ang pag-initialize ng serbisyo ng Bluetooth", + "bluetoothInitializationFailure": "Nabigo ang pag-initialize ng serbisyo ng Bluetooth", "checkingPermissions": "Sinusuri ang mga pahintulot...", - "lackPermissions": - "Kulang sa mga pahintulot ng Bluetooth at sumasang-ayon ka sa lokasyon", + "lackPermissions": "Kulang sa mga pahintulot ng Bluetooth at sumasang-ayon ka sa lokasyon", "searchingDevice": "Naghahanap ng mga device...", "findConnectedDevice": "Natagpuan ang konektadong device", "notFound": "Walang natagpuang konektadong Bluetooth device", @@ -174,8 +165,7 @@ const Map tlPH = { "exploreAi": "Galugarin ang mga function ng AI na inaalok ng Voitrans", "aiFunction": "Mga Function ng AI", "allRoundAssistant": "All-in-One Assistant", - "allRoundAssistantInfo": - "Tumutulong sa iyong malutas ang iba't ibang problema", + "allRoundAssistantInfo": "Tumutulong sa iyong malutas ang iba't ibang problema", "simultaneousTranslation": "Sabayang Pagsasalin", "faceToFaceTranslation": "Pagsasalin ng Harapan", 'audioVideoTranslation': 'Pagsasalin ng Audio at Video', @@ -186,8 +176,7 @@ const Map tlPH = { "healthConsultant": "Multi-functional na AI Chat", "healthConsultantInfo": "Nagbibigay ng mas maraming function ng AI chat", "conferenceAssistant": "Business Meeting Assistant", - "conferenceAssistantInfo": - "Real-time na pagtatala ng mga minuto ng pulong, pagsasalin sa maraming wika", + "conferenceAssistantInfo": "Real-time na pagtatala ng mga minuto ng pulong, pagsasalin sa maraming wika", "usageStats": "Usage Statistics", "usageStatsInfo": "View your usage statistics", "scene": "Eksena", @@ -230,8 +219,7 @@ const Map tlPH = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": - "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -287,10 +275,8 @@ const Map tlPH = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': - 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', - 'meetingHeaderDesc2': - 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', + 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -299,35 +285,27 @@ const Map tlPH = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': - 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': - 'Real-time simultaneous interpretation and text translation with low-latency voice.', + 'transHeaderDesc1': 'Real-time simultaneous interpretation and text translation with low-latency voice.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'translateZhEn': 'Chinese-English translation', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'multiLangTextTranslation': 'Multilingual text translation', - 'termOptimizationContextPreserve': - 'Terminology optimization and context preservation', + 'termOptimizationContextPreserve': 'Terminology optimization and context preservation', 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'personalVocabularyMemory': 'Personal vocabulary memory', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'colorHighContrast': 'High color contrast', - 'transDisclaimer': - 'Translation performance depends on microphone, network latency, and ambient noise.', + 'transDisclaimer': 'Translation performance depends on microphone, network latency, and ambient noise.', // AI 商品页描述 - 'aiHeaderDesc1': - 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': - 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': - 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': - 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -336,10 +314,8 @@ const Map tlPH = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': - 'Template messages and schedule reminders', - 'aiDisclaimer': - 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', + 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Benefits overview', @@ -354,11 +330,10 @@ const Map tlPH = { 'generalPrivileges': 'General privileges', 'earlyAccessNewFeatures': 'Early access to new features', 'crossDeviceSync': 'Cross-device sync', - 'vipDisclaimer': - 'Actual benefits depend on the package details and may change with versions.', + 'vipDisclaimer': 'Actual benefits depend on the package details and may change with versions.', // 新手引导 / Onboarding - 'skip': "Laktawan", + 'skip': 'Laktawan', 'next': 'Next', 'sayLilyHint': 'Say "Lily Lily" to the mic', 'imHere': 'I’m here~', @@ -381,8 +356,7 @@ const Map tlPH = { 'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavSend': 'Lily will plan the route', 'guideNavEnd': 'Navigation set—try other commands', - 'guideMeetingStart': - 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', + 'guideMeetingStart': 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingEnd': 'Reminder created—try other commands', @@ -432,8 +406,7 @@ const Map tlPH = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': - 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -441,6 +414,23 @@ const Map tlPH = { 'audioVideoRecording': 'Audio/Video Recording', 'callRecording': 'Call Recording', 'importAudio': 'Import Audio', + 'meetingRecordExitTitle': 'Lumabas sa Pag-record', // 退出录音 + 'meetingRecordExitMessage': 'Pumili ng aksyon pagkatapos umalis', // 请选择离开后的操作 + 'meetingRecordEndAndSave': 'Tapusin at I-save', // 结束录音并保存 + 'meetingRecordEndWithoutSave': 'Tapusin nang Hindi Ise-save', // 结束录音不保存 + 'meetingRecordContinueInBackground': 'Ituloy ang pag-record sa background', // 后台继续录音 + 'meetingRecordStopTimeout': 'Nag-timeout ang paghinto ng record, pakisubukang muli', // 结束录音超时,请重试 + 'meetingRecordStopFailed': 'Nabigong ihinto ang pag-record, pakisubukang muli', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': 'Nabigong i-save ang pag-record, pakisubukang muli', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': 'Nagre-record', // 录音进行中 + 'meetingRecordRecordingNotificationBody': 'Nagre-record sa background, i-tap para bumalik', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': 'Pahintulot sa Floating Window', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': + 'Para maipakita ang mga resulta ng pagsasalin habang tumatawag o nagsasalin ng audio/video, kailangan namin ang overlay permission. Pinapayagan ka nitong makita ang real-time na pagsasalin habang gumagamit ng ibang mga app.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': + 'Para maipakita ang lumulutang na bar ng pagre-record (timer/pause/ituloy) habang nagre-record, kailangan namin ang overlay permission.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': + 'Hindi awtomatikong mabuksan ang system settings. Pakibuksan ang Settings at i-enable nang manu-mano ang overlay permission.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'Transcribing...', 'summarizing': 'Summarizing...', 'analyzing': 'Analyzing...', @@ -488,54 +478,40 @@ const Map tlPH = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': - 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': - 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': - 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': - 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': - 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': - 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': - 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': - 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': - 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': - 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': - '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': - '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': - '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': - 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -547,8 +523,7 @@ const Map tlPH = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': - 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -568,10 +543,9 @@ const Map tlPH = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': - 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': - 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', + '检测到您已永久拒绝存储权限。如需继续使用此功能,请前往应用设置中手动开启存储权限。', // Meeting模块 - 思维导图相关 'shareMindMap': 'Share Mind Map', @@ -615,19 +589,17 @@ const Map tlPH = { // Meeting模块 - 发言者相关 'applyToAllParagraphs': 'Ilapat sa lahat ng talata ng tagapagsalitang ito', - 'summaryWillBeUpdatedAutomatically': - 'Awtomatikong maa-update ang buod batay sa template', + 'summaryWillBeUpdatedAutomatically': 'Awtomatikong maa-update ang buod batay sa template', 'nameCurrentSpeaker': 'Name Current Speaker', 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': - 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', 'syncToCloudTip': - 'Automatically sync your recordings to the cloud, you can play, manage and share recordings through any VOITRANS APP or VOITRANS Web (web.voitrans.com).', + '自动将你的录音同步到云端,你可以通过任意VOITRANS APP或VOITRANS Web(web.voitrans.com)播放、管理和分享录音。', 'syncToVoitransApp': 'Sync VOITRANS APP', 'transcriptionRecord': 'Transcription Record', @@ -647,8 +619,7 @@ const Map tlPH = { "cloudSync": "Pagsasalin ng Recharge ng Cloud", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": - "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", "joinDevice": "Konektadong device:", "accountId": "Account ID:", "systemSetting": "Setting ng System", @@ -661,22 +632,18 @@ const Map tlPH = { "privacySettings": "Mga Setting ng Privacy", "privacySettingsInfo": "Pamahalaan ang koleksyon ng data at mga pahintulot", "permissionManagement": "Pamamahala ng Pahintulot", // 权限管理 - "permissionManagementInfo": - "Pamahalaan ang mga setting ng pahintulot ng app", // 管理应用权限设置 + "permissionManagementInfo": "Pamahalaan ang mga setting ng pahintulot ng app", // 管理应用权限设置 "aboutApplication": "Tungkol sa App", "versions": "Bersyon", "checkUpdates": "Suriin kung may mga Update", "selectLanguage": "Pumili ng Wika", "voiceService": "Serbisyo ng Boses", - "voiceServiceInfo": - "Pumili ng serbisyo para sa pagkilala at pag-synthesize ng boses", + "voiceServiceInfo": "Pumili ng serbisyo para sa pagkilala at pag-synthesize ng boses", "selectVoiceService": "Pumili ng Serbisyo ng Boses", "azureVoiceService": "Azure Voice Service", - "azureVoiceServiceInfo": - "Serbisyo ng boses sa cloud ng Microsoft, sumusuporta sa mataas na kalidad na voice synthesis at recognition", + "azureVoiceServiceInfo": "Serbisyo ng boses sa cloud ng Microsoft, sumusuporta sa mataas na kalidad na voice synthesis at recognition", "flutterVoiceService": "Flutter Local Voice Service", - "flutterVoiceServiceInfo": - "Lokal na serbisyo ng boses sa device, maaaring gamitin nang walang koneksyon sa internet", + "flutterVoiceServiceInfo": "Lokal na serbisyo ng boses sa device, maaaring gamitin nang walang koneksyon sa internet", 'timbreService': 'Serbisyo ng Timbre', 'timbreServiceInfo': 'Pumili ng serbisyo ng voice synthesis na may timbre', 'defaultTimbre': 'Default na Timbre', @@ -687,8 +654,7 @@ const Map tlPH = { 'pleaseRead': 'Pakibasa nang malakas', 'completeRecording': 'Kumpletuhin ang Pag-record', "firmwareUpgrade": "Pag-upgrade ng Firmware", - "bleHeadsetFirmwareUpgrade": - "Pag-upgrade ng Bersyon ng Firmware ng BLE Headset", + "bleHeadsetFirmwareUpgrade": "Pag-upgrade ng Bersyon ng Firmware ng BLE Headset", "deviceManagement": "Pamamahala ng Device", "manageConnectedDevices": "Pamahalaan ang mga naka-pair na Bluetooth device", @@ -706,8 +672,7 @@ const Map tlPH = { // 设置页面 - 实时语音对话 "realtimeVoiceChat": "Real-time na Voice Chat", - "realtimeVoiceChatInfo": - "Damhin ang matalinong voice interaction function (feature preview)", + "realtimeVoiceChatInfo": "Damhin ang matalinong voice interaction function (feature preview)", "loading": "Naglo-load...", //设备管理页面 @@ -722,8 +687,7 @@ const Map tlPH = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": - "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": "Are you sure you want to unbind device \\", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -736,8 +700,7 @@ const Map tlPH = { "inputMessage": "Mag-type ng mensahe...", "imListening": "Nakikinig...", "canStartTalking": "Maaari ka nang magsalita", - "addQuestionAboutImage": - "Magdagdag ng tanong o paglalarawan tungkol sa larawan...", + "addQuestionAboutImage": "Magdagdag ng tanong o paglalarawan tungkol sa larawan...", "summarizeImageContent": "Ibuod ang nilalaman ng larawan", "extractImageText": "I-extract ang teksto sa imahe", "translateImageText": "Isalin ang teksto sa imahe", @@ -772,22 +735,18 @@ const Map tlPH = { "nearbyFood": "What delicious food is nearby?", // 美食 // Agent controller - 'welcomeMessage': 'Kumusta! Ako si **Lily**, matutulungan kita sa:\n\n' - '• Pagsagot sa mga tanong at pagbibigay ng impormasyon\n\n' - '• Real-time na pagsasalin ng boses\n\n' - '• Pagrekomenda ng musika at mga podcast\n\n' - '• Mga voice memo at paalala\n\n' - '• Pagkontrol sa mga function ng earphone\n\n' - 'Paano kita matutulungan?', + 'welcomeMessage': '你好!我是**Lily**,我能帮你:\n\n' + '• 回答问题和提供信息\n\n' + '• 实时语音翻译\n\n' + '• 推荐音乐和播客\n\n' + '• 语音备忘录和提醒\n\n' + '• 控制耳机功能\n\n' + '有什么我可以帮你的吗?', 'microphonePermission': 'Mikropono', - 'voiceRecognitionPermissionText': - 'Ang pagkilala sa boses ay nangangailangan ng access sa mikropono.', - 'voiceTranslationPermissionText': - 'Ang pagkilala at pagsasalin ng boses ay nangangailangan ng access sa mikropono.', - 'phoneCallPermissionText': - 'Ang pagtawag ay nangangailangan ng access sa mikropono para sa mga voice call.', - 'permissionDeniedText': - 'Permanenteng tinanggihan mo ang pahintulot sa mikropono, mangyaring pumunta sa mga setting ng system para paganahin ito.', + 'voiceRecognitionPermissionText': 'Ang pagkilala sa boses ay nangangailangan ng access sa mikropono.', + 'voiceTranslationPermissionText': 'Ang pagkilala at pagsasalin ng boses ay nangangailangan ng access sa mikropono.', + 'phoneCallPermissionText': 'Ang pagtawag ay nangangailangan ng access sa mikropono para sa mga voice call.', + 'permissionDeniedText': 'Permanenteng tinanggihan mo ang pahintulot sa mikropono, mangyaring pumunta sa mga setting ng system para paganahin ito.', 'startVoiceInput': 'Simulan ang voice input', 'startPhoneCallMode': 'Simulan ang mode ng pagtawag, simulan ang voice input', @@ -801,8 +760,7 @@ const Map tlPH = { 'report': 'I-report', 'submitSuccess': 'Matagumpay na naisumite', 'submitFailed': 'Nabigo ang pagsusumite', - 'reportSubmitted': - 'Naisumite na ang report, ipoproseso namin ito sa lalong madaling panahon', + 'reportSubmitted': 'Naisumite na ang report, ipoproseso namin ito sa lalong madaling panahon', //'networkError': '网络错误,请稍后重试', 'harmfulUnsafe': 'Nakapipinsala/Hindi Ligtas', 'pornographicVulgar': 'Pornograpiko/Bastos', @@ -811,8 +769,7 @@ const Map tlPH = { 'privacyRelated': 'May kaugnayan sa Privacy', 'copyrightViolation': 'Lumabag sa aking copyright, reputasyon, atbp.', 'other': 'Iba pa', - 'reportDescriptionHint': - 'Gusto naming malaman kung bakit ka nagre-report, maaari mong ilarawan ang problemang iyong naranasan.', + 'reportDescriptionHint': 'Gusto naming malaman kung bakit ka nagre-report, maaari mong ilarawan ang problemang iyong naranasan.', //'submit': '提交', //Message_bubble @@ -843,24 +800,15 @@ const Map tlPH = { 'highest': 'Pinakamataas', 'lowest': 'Pinakamababa', 'futureForecast': 'Pagtataya sa Hinaharap', - 'hotWeatherTip': - 'Mainit ngayon, mag-ingat sa heatstroke, uminom ng maraming tubig', - 'coldWeatherTip': - 'Malamig ang temperatura ngayon, magsuot ng mainit na damit kapag lalabas para maiwasan ang sipon', - 'rainyWeatherTip': - 'May ulan ngayon, magdala ng payong kapag lalabas, mag-ingat sa paglalakbay', - 'snowyWeatherTip': - 'May snow ngayon, madulas ang daan, mag-ingat at magsuot ng panlamig', - 'foggyWeatherTip': - 'May hamog ngayon, mababa ang visibility, magsuot ng mask kapag lalabas', - 'windyWeatherTip': - 'Mahangin ngayon, mag-ingat kapag lalabas, i-secure ang mga gamit', - 'sunnyWeatherTip': - 'Maaraw at malakas ang UV rays ngayon, maglagay ng sunscreen kapag lalabas', - 'temperatureDifferenceTip': - 'Malaki ang pagkakaiba ng temperatura sa araw at gabi, magsuot ng damit na angkop', - 'comfortableWeatherTip': - 'Maganda ang panahon ngayon, magandang oras para sa mga aktibidad sa labas', + 'hotWeatherTip': 'Mainit ngayon, mag-ingat sa heatstroke, uminom ng maraming tubig', + 'coldWeatherTip': 'Malamig ang temperatura ngayon, magsuot ng mainit na damit kapag lalabas para maiwasan ang sipon', + 'rainyWeatherTip': 'May ulan ngayon, magdala ng payong kapag lalabas, mag-ingat sa paglalakbay', + 'snowyWeatherTip': 'May snow ngayon, madulas ang daan, mag-ingat at magsuot ng panlamig', + 'foggyWeatherTip': 'May hamog ngayon, mababa ang visibility, magsuot ng mask kapag lalabas', + 'windyWeatherTip': 'Mahangin ngayon, mag-ingat kapag lalabas, i-secure ang mga gamit', + 'sunnyWeatherTip': 'Maaraw at malakas ang UV rays ngayon, maglagay ng sunscreen kapag lalabas', + 'temperatureDifferenceTip': 'Malaki ang pagkakaiba ng temperatura sa araw at gabi, magsuot ng damit na angkop', + 'comfortableWeatherTip': 'Maganda ang panahon ngayon, magandang oras para sa mga aktibidad sa labas', "monday": "Lunes", "tuesday": "Martes", "wednesday": "Miyerkules", @@ -910,33 +858,24 @@ const Map tlPH = { "notSet": "Hindi Naitakda", "accountSetting": "Setting ng Account", "logout": "Mag-logout", - "logoutTips": - "Sigurado ka bang gusto mong mag-logout sa kasalukuyang account?", + "logoutTips": "Sigurado ka bang gusto mong mag-logout sa kasalukuyang account?", 'deleteAccount': 'Burahin ang Account', - 'deleteAccountTips': - 'Sigurado ka bang gusto mong permanenteng burahin ang iyong account? Hindi na ito maibabalik.', + 'deleteAccountTips': 'Sigurado ka bang gusto mong permanenteng burahin ang iyong account? Hindi na ito maibabalik.', 'clean': 'Clear Cache', 'cleanTips': 'Are you sure you want to clear personal cache?', // Profile 错误信息 - 'networkConnectionFailed': - 'Nabigo ang koneksyon sa network, pakisuri ang iyong mga setting ng network at subukang muli', - 'serverTemporarilyUnavailable': - 'Pansamantalang hindi available ang server, pakisubukang muli mamaya', - 'loginExpiredPleaseRelogin': - 'Nag-expire na ang iyong pag-login, mangyaring mag-login muli', - 'noPermissionForThisOperation': - 'Walang pahintulot na gawin ang operasyong ito', + 'networkConnectionFailed': 'Nabigo ang koneksyon sa network, pakisuri ang iyong mga setting ng network at subukang muli', + 'serverTemporarilyUnavailable': 'Pansamantalang hindi available ang server, pakisubukang muli mamaya', + 'loginExpiredPleaseRelogin': 'Nag-expire na ang iyong pag-login, mangyaring mag-login muli', + 'noPermissionForThisOperation': 'Walang pahintulot na gawin ang operasyong ito', 'requestedResourceNotFound': 'Hindi natagpuan ang hiniling na mapagkukunan', - 'imageProcessingFailedPleaseReselect': - 'Nabigo ang pagproseso ng imahe, mangyaring pumili muli ng imahe', + 'imageProcessingFailedPleaseReselect': 'Nabigo ang pagproseso ng imahe, mangyaring pumili muli ng imahe', 'operationFailedPleaseRetry': 'Nabigo ang operasyon, pakisubukang muli', 'serverReturnedError': 'Nagbalik ng error ang server', 'serverError': 'Error sa Server', - 'networkConnectionFailedCheckSettings': - 'Nabigo ang koneksyon sa network, pakisuri ang iyong mga setting ng network', - 'serverInternalErrorRetryLater': - 'Internal na error sa server, pakisubukang muli mamaya', + 'networkConnectionFailedCheckSettings': 'Nabigo ang koneksyon sa network, pakisuri ang iyong mga setting ng network', + 'serverInternalErrorRetryLater': 'Internal na error sa server, pakisubukang muli mamaya', // Profile 用户交互 //'error': '错误', @@ -955,18 +894,13 @@ const Map tlPH = { // 账号服务相关 'clearUserDataFailed': 'Nabigong i-clear ang data ng user', // 清理用户数据失败 'deleteUserDataFailed': 'Nabigong burahin ang data ng user', // 删除用户数据失败 - 'thirdPartyLogoutSuccess': - 'Matagumpay na naka-logout sa third-party', // 第三方登录退出成功 + 'thirdPartyLogoutSuccess': 'Matagumpay na naka-logout sa third-party', // 第三方登录退出成功 'thirdPartyLogoutFailed': 'Nabigo ang pag-logout sa third-party', // 第三方登录退出失败 - 'signOutProcessError': - 'Nagkaroon ng error sa proseso ng pag-sign out', // 登出过程发生错误 - 'deleteAccountProcessError': - 'Nagkaroon ng error sa proseso ng pagbura ng account', // 删除账号过程发生错误 + 'signOutProcessError': 'Nagkaroon ng error sa proseso ng pag-sign out', // 登出过程发生错误 + 'deleteAccountProcessError': 'Nagkaroon ng error sa proseso ng pagbura ng account', // 删除账号过程发生错误 'userDataClearSuccess': 'Matagumpay na na-clear ang data ng user', // 用户数据清理成功 - 'allUserDataClearSuccess': - 'Matagumpay na na-clear ang lahat ng data ng user', // 所有用户数据清理成功 - 'accountServiceInitialized': - 'Naisimulan na ang AccountService', // AccountService 已初始化 + 'allUserDataClearSuccess': 'Matagumpay na na-clear ang lahat ng data ng user', // 所有用户数据清理成功 + 'accountServiceInitialized': 'Naisimulan na ang AccountService', // AccountService 已初始化 // 权限管理页面 'getPermissionStatusFailed': 'Nabigong makuha ang katayuan ng pahintulot', @@ -989,14 +923,10 @@ const Map tlPH = { 'locationInfo': 'Impormasyon sa Lokasyon', 'phonePermissionDesc': 'Ginagamit para sa function ng pagtawag', 'smsPermissionDesc': 'Ginagamit para sa function ng pagpapadala ng SMS', - 'alarmPermissionDesc': - 'Used to set exact alarms to ensure reminders trigger on time', - 'calendarWritePermissionDesc': - 'Ginagamit para sa paglikha ng mga kaganapan at paalala sa kalendaryo', - 'calendarFullAccessPermissionDesc': - 'Ginagamit para sa pagbabasa at pamamahala ng mga kaganapan at paalala sa kalendaryo', - 'locationPermissionDesc': - 'Ginagamit para sa pagkuha ng kasalukuyang impormasyon sa lokasyon', + 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', + 'calendarWritePermissionDesc': 'Ginagamit para sa paglikha ng mga kaganapan at paalala sa kalendaryo', + 'calendarFullAccessPermissionDesc': 'Ginagamit para sa pagbabasa at pamamahala ng mga kaganapan at paalala sa kalendaryo', + 'locationPermissionDesc': 'Ginagamit para sa pagkuha ng kasalukuyang impormasyon sa lokasyon', 'appFunctionNeeds': 'Kailangan ng function ng app', 'authorized': 'Pinahintulutan', 'unauthorized': 'Hindi Pinahintulutan', @@ -1005,82 +935,55 @@ const Map tlPH = { 'unknownStatus': 'Hindi Malamang Katayuan', 'permissionGranted': 'Naibigay na ang pahintulot', 'permissionRequestError': 'Error sa paghiling ng pahintulot', - 'phonePermissionDetailDesc': - 'Ang function ng pagtawag ay nangangailangan ng pahintulot sa telepono', - 'smsPermissionDetailDesc': - 'Ang function ng pagpapadala ng SMS ay nangangailangan ng pahintulot sa SMS', - 'alarmPermissionDetailDesc': - 'This permission is required to set exact alarms and ensure reminders trigger on time', - 'calendarWritePermissionDetailDesc': - 'Ang paglikha ng mga kaganapan sa kalendaryo ay nangangailangan ng pahintulot sa pagsulat sa kalendaryo', - 'calendarFullAccessPermissionDetailDesc': - 'Ang pamamahala ng mga kaganapan sa kalendaryo ay nangangailangan ng buong pahintulot sa kalendaryo', - 'locationPermissionDetailDesc': - 'Ang pagkuha ng impormasyon sa lokasyon ay nangangailangan ng pahintulot sa lokasyon', + 'phonePermissionDetailDesc': 'Ang function ng pagtawag ay nangangailangan ng pahintulot sa telepono', + 'smsPermissionDetailDesc': 'Ang function ng pagpapadala ng SMS ay nangangailangan ng pahintulot sa SMS', + 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'calendarWritePermissionDetailDesc': 'Ang paglikha ng mga kaganapan sa kalendaryo ay nangangailangan ng pahintulot sa pagsulat sa kalendaryo', + 'calendarFullAccessPermissionDetailDesc': 'Ang pamamahala ng mga kaganapan sa kalendaryo ay nangangailangan ng buong pahintulot sa kalendaryo', + 'locationPermissionDetailDesc': 'Ang pagkuha ng impormasyon sa lokasyon ay nangangailangan ng pahintulot sa lokasyon', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': - 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': - 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': - 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': - 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': - 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': - 'App needs notification permission to send you important alerts and messages', - 'appNeedsPermissionForFullFunction': - 'Kailangan ng app ang pahintulot na ito para sa buong paggana', - 'permanentDenialText': - 'Permanenteng tinanggihan mo ang pahintulot sa {permission}, mangyaring pumunta sa mga setting ng app para paganahin ito', + 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', + 'appNeedsPermissionForFullFunction': 'Kailangan ng app ang pahintulot na ito para sa buong paggana', + 'permanentDenialText': 'Permanenteng tinanggihan mo ang pahintulot sa {permission}, mangyaring pumunta sa mga setting ng app para paganahin ito', 'goToSettings': 'Pumunta sa Mga Setting', // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': - 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': - 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': - 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': - 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': - 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': - 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': - 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': - 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': - 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': - 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': - 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': - 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': - 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', + '检测到您已永久拒绝录音权限。如需继续使用此功能,请前往应用设置中手动开启麦克风权限。', 'storagePermissionPermanentDenial': - 'Storage permission has been permanently denied. To continue using this feature, please go to app settings to manually enable storage permission.', + '检测到您已永久拒绝存储权限。如需继续使用此功能,请前往应用设置中手动开启存储权限。', //permission_util.dart 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': - 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -1089,10 +992,8 @@ const Map tlPH = { 'updateNow': 'I-update Ngayon', // 立即更新按钮 'checkUpdate': 'Suriin kung may Update', // 检查更新按钮 'updateFailed': 'Nabigo ang Pag-update', // 更新失败提示 - 'cannotOpenAppStore': - 'Hindi mabuksan ang app store, mangyaring pumunta nang manu-mano sa app store para mag-update', // 无法打开应用商店提示 - 'updateErrorRetry': - 'Nagkaroon ng error habang nag-a-update, pakisubukang muli mamaya', // 更新错误重试提示 + 'cannotOpenAppStore': 'Hindi mabuksan ang app store, mangyaring pumunta nang manu-mano sa app store para mag-update', // 无法打开应用商店提示 + 'updateErrorRetry': 'Nagkaroon ng error habang nag-a-update, pakisubukang muli mamaya', // 更新错误重试提示 //国家列表 "邮箱": "Email", @@ -1228,8 +1129,7 @@ const Map tlPH = { "selectTargetLanguage": "Pumili ng target na wika", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": - "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1245,12 +1145,10 @@ const Map tlPH = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "Burahin ang Kasaysayan", - "clearHistoryConfirm": - "Sigurado ka bang gusto mong burahin ang lahat ng kasaysayan ng pagsasalin? Hindi na ito maibabalik.", + "clearHistoryConfirm": "Sigurado ka bang gusto mong burahin ang lahat ng kasaysayan ng pagsasalin? Hindi na ito maibabalik.", "unknownLanguage": "Hindi Kilalang Wika", "deleteSessionRecord": "Burahin ang Record ng Session", - "deleteSessionConfirm": - "Sigurado ka bang gusto mong burahin ang lahat ng record ng pagsasalin para sa session na ito? Hindi na ito maibabalik.", + "deleteSessionConfirm": "Sigurado ka bang gusto mong burahin ang lahat ng record ng pagsasalin para sa session na ito? Hindi na ito maibabalik.", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1282,20 +1180,15 @@ const Map tlPH = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": - "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": - "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": - "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": - "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": - "Photo album permission required to pick images", + "photoAlbumPermissionRequired": "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1318,8 +1211,7 @@ const Map tlPH = { // 翻译详情页 (translation_detail_view.dart) "originalRecord": "Orihinal na Record", "recordSummary": "Buod ng Record", - "clickToGenerateSummary": - "I-click ang button sa ibaba para bumuo ng buod ng session", + "clickToGenerateSummary": "I-click ang button sa ibaba para bumuo ng buod ng session", "summaryContent": "Nilalaman ng Buod", "copied": "Nakopya", "summaryCopiledToClipboard": "Nakopya ang buod sa clipboard", @@ -1327,11 +1219,9 @@ const Map tlPH = { "summaryGenerated": "Nabuong buod", "generating": "Gumagawa...", "regenerate": "Muling buuin", - "summaryTimeoutMessage": - "Nag-time out ang kahilingan sa pagbuo ng buod, maaaring dahil sa problema sa network o abala ang server.", + "summaryTimeoutMessage": "Nag-time out ang kahilingan sa pagbuo ng buod, maaaring dahil sa problema sa network o abala ang server.", "deleteTranslationRecord": "Burahin ang Record ng Pagsasalin", - "deleteTranslationConfirm": - "Sigurado ka bang gusto mong burahin ang record ng pagsasalin na ito? Hindi na ito maibabalik.", + "deleteTranslationConfirm": "Sigurado ka bang gusto mong burahin ang record ng pagsasalin na ito? Hindi na ito maibabalik.", "originalText": "Orihinal na Teksto", "translatedText": "Isinaling Teksto", "sessionSummary": "Buod ng Session", @@ -1358,28 +1248,20 @@ const Map tlPH = { // 配对状态文本 "readyToPair": "Handa nang i-pair", - "preparingPairingEnvironment": - "Inihahanda ang kapaligiran para sa pag-pair...", - "connectDeepSoundViaSystemBluetooth": - "Mangyaring kumonekta muna sa Voitrans device sa pamamagitan ng system Bluetooth", + "preparingPairingEnvironment": "Inihahanda ang kapaligiran para sa pag-pair...", + "connectDeepSoundViaSystemBluetooth": "Mangyaring kumonekta muna sa Voitrans device sa pamamagitan ng system Bluetooth", "deviceBindingConfirm": "Kumpirmasyon sa pag-bind ng device...", "establishingDeviceAssociation": "Itinatatag ang ugnayan ng device...", "waitingCompletePairing": "Pakihintay, kinukumpleto ang pag-pair...", - "pairingSuccessRedirecting": - "Matagumpay ang pag-pair! Papunta na sa home page...", + "pairingSuccessRedirecting": "Matagumpay ang pag-pair! Papunta na sa home page...", // 配对错误状态文本 - "ensureConnectedDeepSoundDevice": - "Pakitiyak na konektado ka sa isang Voitrans device", - "deviceAlreadyBoundToOtherAccount": - "Ang device na ito ay naka-bind na sa ibang account", - "deviceAssociationFailed": - "Nabigo ang pag-uugnay ng device, pakisubukang muli", - "scanTimeoutEnsureDeviceNearby": - "Nag-time out ang pag-scan, pakitiyak na malapit ang device", + "ensureConnectedDeepSoundDevice": "Pakitiyak na konektado ka sa isang Voitrans device", + "deviceAlreadyBoundToOtherAccount": "Ang device na ito ay naka-bind na sa ibang account", + "deviceAssociationFailed": "Nabigo ang pag-uugnay ng device, pakisubukang muli", + "scanTimeoutEnsureDeviceNearby": "Nag-time out ang pag-scan, pakitiyak na malapit ang device", "networkError": "Error sa Network", - "authorizationFailedCheckCode": - "Nabigo ang awtorisasyon, pakisuri kung tama ang authorization code", + "authorizationFailedCheckCode": "Nabigo ang awtorisasyon, pakisuri kung tama ang authorization code", "pairingFailedRetry": "Nabigo ang pag-pair, pakisubukang muli", // 配对控制器相关 @@ -1388,67 +1270,53 @@ const Map tlPH = { 'deviceDisconnected': 'Nadiskonekta ang device', 'readyToStartPairing': 'Handa nang simulan ang pag-pair', 'checkingEnvironment': 'Sinusuri ang kapaligiran...', - 'ensureHeadsetOnAndPairingMode': - 'Pakitiyak na naka-on ang headset at nasa pairing mode', + 'ensureHeadsetOnAndPairingMode': 'Pakitiyak na naka-on ang headset at nasa pairing mode', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', //'associatingDevice': '正在关联设备...', 'establishingSecureConnection': 'Itinatatag ang secure na koneksyon...', - 'needManualBindingAuthCode': - 'Kailangan ng manual binding authorization code...', + 'needManualBindingAuthCode': 'Kailangan ng manual binding authorization code...', 'pairingSuccessful': 'Matagumpay ang pag-pair!', 'enableBluetooth': 'Paganahin ang Bluetooth', 'grantPermissions': 'Magbigay ng mga Pahintulot', 'retryAssociation': 'Muling iugnay', 'retryAuthorization': 'Muling pahintulutan', - 'pleaseGrantNecessaryPermissions': - 'Pakibigay ang mga kinakailangang pahintulot', + 'pleaseGrantNecessaryPermissions': 'Pakibigay ang mga kinakailangang pahintulot', 'checkFailedRetry': 'Nabigo ang pagsuri, pakisubukang muli', 'pleaseConnectDeepSoundDevice': 'Pakikonekta ang isang Voitrans device', 'verificationFailedRetry': 'Nabigo ang pag-verify, pakisubukang muli', 'invalidDeviceAddress': 'Hindi wastong address ng device', 'bleDeviceAssociationFailed': 'Nabigo ang pag-uugnay ng BLE device', - 'deviceAssociationFailedRetry': - 'Nabigo ang pag-uugnay ng device, pakisubukang muli', - 'bleConnectionTimeoutRetry': - 'Nag-time out ang koneksyon ng BLE, pakisubukang muli', + 'deviceAssociationFailedRetry': 'Nabigo ang pag-uugnay ng device, pakisubukang muli', + 'bleConnectionTimeoutRetry': 'Nag-time out ang koneksyon ng BLE, pakisubukang muli', 'blePairingStartupFailed': 'Nabigo ang pagsisimula ng BLE pairing', 'bleConnectionFailed': 'Nabigo ang koneksyon ng BLE', - 'deviceAuthorizationFailedCheckCode': - 'Nabigo ang awtorisasyon ng device, pakisuri ang authorization code', + 'deviceAuthorizationFailedCheckCode': 'Nabigo ang awtorisasyon ng device, pakisuri ang authorization code', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': - 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': - 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': - 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': - 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 "feedback": "Feedback ng User", 'feedbackInfo': 'Magbigay ng feedback o suhestiyon', - 'feedbackDescription': - 'Pakilarawan ang problemang naranasan o ang iyong suhestiyon', + 'feedbackDescription': 'Pakilarawan ang problemang naranasan o ang iyong suhestiyon', 'feedbackHint': 'Pakilagay ang iyong feedback...', 'feedbackRequired': 'Pakilagay ang nilalaman ng feedback', 'contactInfo': 'Impormasyon sa Pakikipag-ugnayan', 'contactHint': 'Email/Numero ng telepono, para makontak ka namin', 'submit': 'Isumite', - 'feedbackSubmitSuccess': - 'Matagumpay na naisumite ang feedback, salamat sa iyong feedback!', - 'feedbackSubmitFailed': - 'Nabigong isumite ang feedback, pakisubukang muli mamaya', + 'feedbackSubmitSuccess': 'Matagumpay na naisumite ang feedback, salamat sa iyong feedback!', + 'feedbackSubmitFailed': 'Nabigong isumite ang feedback, pakisubukang muli mamaya', // OTA升级模块 - "upgradeExitConfirm": - "Kasalukuyang nag-a-upgrade, ang pag-exit ay makakaantala sa proseso, sigurado ka bang gusto mong mag-exit?", + "upgradeExitConfirm": "Kasalukuyang nag-a-upgrade, ang pag-exit ay makakaantala sa proseso, sigurado ka bang gusto mong mag-exit?", "deviceModel": "Modelo ng Device", "unknownDevice": "Hindi Kilalang Device", "currentFirmwareVersion": "Kasalukuyang Bersyon ng Firmware", @@ -1461,19 +1329,14 @@ const Map tlPH = { "retryConnection": "Muling kumonekta", "ota_updateNow": "I-update Ngayon", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": - "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": - "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": - "Firmware version is abnormal. Please reconnect and retry.", - "keepConnectedDontClose": - "Panatilihing konektado ang device, huwag isara ang app", + "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", + "keepConnectedDontClose": "Panatilihing konektado ang device, huwag isara ang app", "doNotDisconnect": "Huwag idiskonekta", "charging": "Nagcha-charge", "updateContent": "Nilalaman ng Update", - "removeEarbudsEnsureBattery": - "Alisin ang parehong earbuds, at tiyaking parehong may 20% o higit pang baterya", + "removeEarbudsEnsureBattery": "Alisin ang parehong earbuds, at tiyaking parehong may 20% o higit pang baterya", // 音乐列表页面 "noMusic": "Walang Musika", // 暂无音乐 @@ -1483,9 +1346,9 @@ const Map tlPH = { "playAll": "I-play Lahat", // 播放全部 // 语言名称 - "中文(简体)": "Chinese (Pinasimple)", - "中文(繁体)": "Chinese (Tradisyonal)", - "中文(香港繁体)": "Chinese (Hong Kong Tradisyonal)", + "中文(简体)": "中文(简体)", + "中文(繁体)": "中文(繁体)", + "中文(香港繁体)": "中文(香港繁体)", "英语": "Ingles", "日语": "Hapon", "韩语": "Koreano", @@ -1535,10 +1398,8 @@ const Map tlPH = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": - 'Insufficient balance, please go to the corresponding recharge page to recharge.', - "recharge": 'Go to Recharge', + "insufficientBalanceDesc": "Insufficient balance, please go to the corresponding recharge page to recharge.", + "recharge": "Go to Recharge", // 会员到期提示 - "aiMemberExpiredDesc": - 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": "AI membership expired, please go to the membership recharge page to renew.", }; diff --git a/lib/core/translations/language/tr_tr.dart b/lib/core/translations/language/tr_tr.dart index 51d84969e..a5633e267 100644 --- a/lib/core/translations/language/tr_tr.dart +++ b/lib/core/translations/language/tr_tr.dart @@ -72,8 +72,7 @@ const Map trTR = { // 登录页 "welcome": "Hoş Geldiniz", - "loginTips": - "Lütfen telefon numaranızı veya e-postanızı kullanarak giriş yapın veya hesap oluşturun", + "loginTips": "Lütfen telefon numaranızı veya e-postanızı kullanarak giriş yapın veya hesap oluşturun", "accountNumber": "Telefon Numarası veya E-posta", "verificationCode": "Doğrulama Kodu", "getCode": "Kodu Al", @@ -92,8 +91,7 @@ const Map trTR = { "tip": "İpucu", "pleaseEnterCompleteCode": "Lütfen tam doğrulama kodunu girin", "loginFailed": "Giriş başarısız, lütfen tekrar deneyin", - 'pleaseAcceptPrivacyPolicy': - 'Lütfen önce Gizlilik Politikasını ve Kullanıcı Sözleşmesini okuyup kabul edin', + 'pleaseAcceptPrivacyPolicy': 'Lütfen önce Gizlilik Politikasını ve Kullanıcı Sözleşmesini okuyup kabul edin', "enterVerificationCode": "Doğrulama kodunu girin", "verificationCodeSentTo": "Doğrulama kodu şuraya gönderildi:", "resendVerificationCode": "Doğrulama kodunu tekrar gönder", @@ -102,12 +100,11 @@ const Map trTR = { // 隐私政策弹窗 "loginDeclaration": "Voitrans Beyanı", // Voitrans 声明 - "welcomeToThisApp": - "Voitrans'a hoş geldiniz, lütfen dikkatlice okuyun", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": "Voitrans'a hoş geldiniz, lütfen dikkatlice okuyun", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": - ", 'Kabul Et ve Gir' düğmesine tıklamak, yukarıdaki sözleşmeleri tamamen okuduğunuzu ve kabul ettiğinizi gösterir. 'Reddet' düğmesine tıklamak uygulamadan çıkacaktır.", // ,点击"同意并进入"表示您已充分阅读并同意上述协议。点击"不同意"将退出应用。 + ",点击'同意并进入'表示您已充分阅读并同意上述协议。点击'不同意'将退出应用。", // ,点击"同意并进入"表示您已充分阅读并同意上述协议。点击"不同意"将退出应用。 "disagree": "Reddet", // 不同意 "agreeAndEnter": "Kabul Et ve Gir", // 同意并进入 @@ -119,20 +116,17 @@ const Map trTR = { "signal": "Sinyal", "deviceId": "Cihaz Kimliği", "firmwareVersion": "Donanım Yazılımı Sürümü", - "disconnectedDevice": - "Bağlı cihaz yok, bağlanmak için aşağıdaki düğmeye tıklayın", + "disconnectedDevice": "Bağlı cihaz yok, bağlanmak için aşağıdaki düğmeye tıklayın", "connectDevice": "Cihaz Bağla", "topAiExperiences": "En İyi Yapay Zeka Deneyimleri", "aiAssistant": "Her Şey Dahil Yapay Zeka Asistanı", "aiAssistantInfo": "Sorular ve tavsiyeler için 7/24 özel danışman", "interpretation": "Simultane Çeviri", - "simultaneousInterpretationInfo": - "80'den fazla dil için gerçek zamanlı çeviri, sorunsuz yurt dışı seyahati", + "simultaneousInterpretationInfo": "80'den fazla dil için gerçek zamanlı çeviri, sorunsuz yurt dışı seyahati", "aiCompanion": "Aile Arkadaşı", "aiCompanionInfo": "Sizi anlar ve sıcak bir arkadaşlık sunar", "homeSlogan": "Dünyayla bağlan, sesin ötesine geç", - "turnEarphones": - "Lütfen kulaklık şarj kutusunu açın ve kulaklıkları kulaklarınıza takın", + "turnEarphones": "Lütfen kulaklık şarj kutusunu açın ve kulaklıkları kulaklarınıza takın", "currentlyConnected": "Şu anda bağlı:", "unsystemSetup": "Sistem ayarlarına git", "talkLater": "Daha Sonra", @@ -154,7 +148,7 @@ const Map trTR = { "fine": "Çok İyi", "excellent": "Mükemmel", "unknown": "Bilinmiyor", - 'bluetoothTurnedOff': 'Bluetooth kapalı, lütfen Bluetooth\'u açın', + 'bluetoothTurnedOff': 'Bluetooth kapalı, lütfen Bluetooth\\', 'bluetoothOff': 'Bluetooth Kapalı', 'leftEar': 'Sol Kulak', 'rightEar': 'Sağ Kulak', @@ -182,8 +176,7 @@ const Map trTR = { "healthConsultant": "Çok Fonksiyonlu Yapay Zeka Sohbeti", "healthConsultantInfo": "Daha fazla yapay zeka sohbet özelliği sunar", "conferenceAssistant": "İş Toplantısı Asistanı", - "conferenceAssistantInfo": - "Gerçek zamanlı toplantı tutanakları, çok dilli çeviri", + "conferenceAssistantInfo": "Gerçek zamanlı toplantı tutanakları, çok dilli çeviri", "usageStats": "Kullanım İstatistikleri", "usageStatsInfo": "Kullanım istatistiklerinizi görüntüleyin", "scene": "Senaryo", @@ -226,8 +219,7 @@ const Map trTR = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": - "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -283,10 +275,8 @@ const Map trTR = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': - 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', - 'meetingHeaderDesc2': - 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', + 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -295,35 +285,27 @@ const Map trTR = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': - 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': - 'Real-time simultaneous interpretation and text translation with low-latency voice.', + 'transHeaderDesc1': 'Real-time simultaneous interpretation and text translation with low-latency voice.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'translateZhEn': 'Chinese-English translation', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'multiLangTextTranslation': 'Multilingual text translation', - 'termOptimizationContextPreserve': - 'Terminology optimization and context preservation', + 'termOptimizationContextPreserve': 'Terminology optimization and context preservation', 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'personalVocabularyMemory': 'Personal vocabulary memory', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'colorHighContrast': 'High color contrast', - 'transDisclaimer': - 'Translation performance depends on microphone, network latency, and ambient noise.', + 'transDisclaimer': 'Translation performance depends on microphone, network latency, and ambient noise.', // AI 商品页描述 - 'aiHeaderDesc1': - 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': - 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': - 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': - 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -332,10 +314,8 @@ const Map trTR = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': - 'Template messages and schedule reminders', - 'aiDisclaimer': - 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', + 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Benefits overview', @@ -350,11 +330,10 @@ const Map trTR = { 'generalPrivileges': 'General privileges', 'earlyAccessNewFeatures': 'Early access to new features', 'crossDeviceSync': 'Cross-device sync', - 'vipDisclaimer': - 'Actual benefits depend on the package details and may change with versions.', + 'vipDisclaimer': 'Actual benefits depend on the package details and may change with versions.', // 新手引导 / Onboarding - 'skip': "Atla", + 'skip': 'Atla', 'next': 'Next', 'sayLilyHint': 'Say "Lily Lily" to the mic', 'imHere': 'I’m here~', @@ -377,8 +356,7 @@ const Map trTR = { 'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavSend': 'Lily will plan the route', 'guideNavEnd': 'Navigation set—try other commands', - 'guideMeetingStart': - 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', + 'guideMeetingStart': 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingEnd': 'Reminder created—try other commands', @@ -428,8 +406,7 @@ const Map trTR = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': - 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -437,6 +414,23 @@ const Map trTR = { 'audioVideoRecording': 'Audio/Video Recording', 'callRecording': 'Call Recording', 'importAudio': 'Import Audio', + 'meetingRecordExitTitle': 'Kayıttan Çık', // 退出录音 + 'meetingRecordExitMessage': 'Lütfen ayrıldıktan sonra bir işlem seçin', // 请选择离开后的操作 + 'meetingRecordEndAndSave': 'Bitir ve Kaydet', // 结束录音并保存 + 'meetingRecordEndWithoutSave': 'Kaydetmeden Bitir', // 结束录音不保存 + 'meetingRecordContinueInBackground': 'Arka planda kayda devam et', // 后台继续录音 + 'meetingRecordStopTimeout': 'Kayıt durdurma zaman aşımı, lütfen tekrar deneyin', // 结束录音超时,请重试 + 'meetingRecordStopFailed': 'Kayıt durdurulamadı, lütfen tekrar deneyin', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': 'Kayıt kaydedilemedi, lütfen tekrar deneyin', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': 'Kayıt yapılıyor', // 录音进行中 + 'meetingRecordRecordingNotificationBody': 'Arka planda kaydediliyor, uygulamaya dönmek için dokunun', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': 'Yüzen Pencere İzni', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': + 'Aramalar sırasında veya ses/video çevirisi yaparken çeviri sonuçlarını göstermek için diğer uygulamaların üzerine çizme iznine ihtiyacımız var. Bu sayede diğer uygulamaları kullanırken gerçek zamanlı çevirileri görebilirsiniz.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': + 'Kayıt sırasında kayıt kayan çubuğunu (zamanlayıcı/duraklat/devam et) göstermek için diğer uygulamaların üzerine çizme iznine ihtiyacımız var.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': + 'Sistem ayarları otomatik olarak açılamadı. Lütfen Ayarlar uygulamasını açın ve diğer uygulamaların üzerine çizme iznini manuel olarak etkinleştirin.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'Transcribing...', 'summarizing': 'Summarizing...', 'analyzing': 'Analyzing...', @@ -484,54 +478,40 @@ const Map trTR = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': - 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': - 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': - 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': - 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': - 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': - 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': - 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': - 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': - 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': - 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': - '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': - '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': - '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': - 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -543,8 +523,7 @@ const Map trTR = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': - 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -564,10 +543,9 @@ const Map trTR = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': - 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': - 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', + '检测到您已永久拒绝存储权限。如需继续使用此功能,请前往应用设置中手动开启存储权限。', // Meeting模块 - 思维导图相关 'shareMindMap': 'Share Mind Map', @@ -611,19 +589,17 @@ const Map trTR = { // Meeting模块 - 发言者相关 'applyToAllParagraphs': 'Bu konuşmacının tüm paragraflarına uygula', - 'summaryWillBeUpdatedAutomatically': - 'Özet, şablona göre otomatik olarak güncellenecektir', + 'summaryWillBeUpdatedAutomatically': 'Özet, şablona göre otomatik olarak güncellenecektir', 'nameCurrentSpeaker': 'Name Current Speaker', 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': - 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', 'syncToCloudTip': - 'Automatically sync your recordings to the cloud, you can play, manage and share recordings through any VOITRANS APP or VOITRANS Web (web.voitrans.com).', + '自动将你的录音同步到云端,你可以通过任意VOITRANS APP或VOITRANS Web(web.voitrans.com)播放、管理和分享录音。', 'syncToVoitransApp': 'Sync VOITRANS APP', 'transcriptionRecord': 'Transcription Record', @@ -643,15 +619,13 @@ const Map trTR = { "cloudSync": "Bulut Sincronizasyonu", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": - "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", "joinDevice": "Bağlı cihaz:", "accountId": "Hesap Kimliği:", "systemSetting": "Sistem Ayarları", "languageSetting": "Dil Ayarları", "darkMode": "Karanlık Mod", - "darkModeInfo": - "Uygulamanın aydınlık ve karanlık temaları arasında geçiş yapın", + "darkModeInfo": "Uygulamanın aydınlık ve karanlık temaları arasında geçiş yapın", "backups": "Yedekle ve Geri Yükle", "backupsInfo": "Ayarları ve yapay zeka etkileşim geçmişini yedekleyin", "lastBackup": "Son yedekleme:", @@ -667,11 +641,9 @@ const Map trTR = { "voiceServiceInfo": "Ses tanıma ve sentezleme hizmetini seçin", "selectVoiceService": "Ses Hizmeti Seç", "azureVoiceService": "Azure Ses Hizmeti", - "azureVoiceServiceInfo": - "Yüksek kaliteli ses sentezi ve tanımayı destekleyen Microsoft bulut ses hizmeti", + "azureVoiceServiceInfo": "Yüksek kaliteli ses sentezi ve tanımayı destekleyen Microsoft bulut ses hizmeti", "flutterVoiceService": "Flutter Yerel Ses Hizmeti", - "flutterVoiceServiceInfo": - "Cihazın yerel ses hizmeti, internet bağlantısı olmadan kullanılabilir", + "flutterVoiceServiceInfo": "Cihazın yerel ses hizmeti, internet bağlantısı olmadan kullanılabilir", 'timbreService': 'Ses Tonu Hizmeti', 'timbreServiceInfo': 'Ses sentezi için ses tonu hizmeti seçin', 'defaultTimbre': 'Varsayılan Ses Tonu', @@ -682,8 +654,7 @@ const Map trTR = { 'pleaseRead': 'Lütfen Yüksek Sesle Okuyun', 'completeRecording': 'Kaydı Tamamla', "firmwareUpgrade": "Donanım Yazılımı Güncellemesi", - "bleHeadsetFirmwareUpgrade": - "BLE Kulaklık Donanım Yazılımı Sürüm Güncellemesi", + "bleHeadsetFirmwareUpgrade": "BLE Kulaklık Donanım Yazılımı Sürüm Güncellemesi", "deviceManagement": "Cihaz Yönetimi", "manageConnectedDevices": "Bağlı Bluetooth cihazlarını yönetin", @@ -701,8 +672,7 @@ const Map trTR = { // 设置页面 - 实时语音对话 "realtimeVoiceChat": "Gerçek Zamanlı Sesli Sohbet", - "realtimeVoiceChatInfo": - "Akıllı sesli etkileşim özelliğini deneyimleyin (Özellik Önizlemesi)", + "realtimeVoiceChatInfo": "Akıllı sesli etkileşim özelliğini deneyimleyin (Özellik Önizlemesi)", "loading": "Yükleniyor...", //设备管理页面 @@ -717,8 +687,7 @@ const Map trTR = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": - "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": "Are you sure you want to unbind device \\", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -766,23 +735,18 @@ const Map trTR = { "nearbyFood": "What delicious food is nearby?", // 美食 // Agent controller - 'welcomeMessage': - 'Merhaba! Ben **Lily**, size şu konularda yardımcı olabilirim:\n\n' - '• Soruları yanıtlamak ve bilgi sağlamak\n\n' - '• Gerçek zamanlı sesli çeviri\n\n' - '• Müzik ve podcast önermek\n\n' - '• Sesli notlar ve hatırlatıcılar\n\n' - '• Kulaklık fonksiyonlarını kontrol etmek\n\n' - 'Size nasıl yardımcı olabilirim?', + 'welcomeMessage': '你好!我是**Lily**,我能帮你:\n\n' + '• 回答问题和提供信息\n\n' + '• 实时语音翻译\n\n' + '• 推荐音乐和播客\n\n' + '• 语音备忘录和提醒\n\n' + '• 控制耳机功能\n\n' + '有什么我可以帮你的吗?', 'microphonePermission': 'Mikrofon', - 'voiceRecognitionPermissionText': - 'Ses tanıma özelliği mikrofon erişimi gerektirir.', - 'voiceTranslationPermissionText': - 'Ses tanıma ve çeviri özelliği mikrofon erişimi gerektirir.', - 'phoneCallPermissionText': - 'Arama yapma özelliği sesli aramalar için mikrofon erişimi gerektirir.', - 'permissionDeniedText': - 'Mikrofon iznini kalıcı olarak reddettiniz, lütfen sistem ayarlarından izni etkinleştirin.', + 'voiceRecognitionPermissionText': 'Ses tanıma özelliği mikrofon erişimi gerektirir.', + 'voiceTranslationPermissionText': 'Ses tanıma ve çeviri özelliği mikrofon erişimi gerektirir.', + 'phoneCallPermissionText': 'Arama yapma özelliği sesli aramalar için mikrofon erişimi gerektirir.', + 'permissionDeniedText': 'Mikrofon iznini kalıcı olarak reddettiniz, lütfen sistem ayarlarından izni etkinleştirin.', 'startVoiceInput': 'Sesli girişi başlat', 'startPhoneCallMode': 'Arama modunu başlat, sesli girişi başlat', @@ -805,8 +769,7 @@ const Map trTR = { 'privacyRelated': 'Gizlilikle İlgili', 'copyrightViolation': 'Telif hakkımı, itibarımı vb. ihlal ediyor', 'other': 'Diğer', - 'reportDescriptionHint': - 'Şikayet nedeninizi öğrenmek istiyoruz, karşılaştığınız sorunu açıklayabilirsiniz.', + 'reportDescriptionHint': 'Şikayet nedeninizi öğrenmek istiyoruz, karşılaştığınız sorunu açıklayabilirsiniz.', //'submit': '提交', //Message_bubble @@ -837,24 +800,15 @@ const Map trTR = { 'highest': 'En Yüksek', 'lowest': 'En Düşük', 'futureForecast': 'Gelecek Tahmini', - 'hotWeatherTip': - 'Bugün hava sıcak, lütfen serin kalmaya ve güneş çarpmasını önlemek için bol su içmeye dikkat edin', - 'coldWeatherTip': - 'Bugün hava soğuk, dışarı çıkarken üşütmemek için sıkı giyinin', - 'rainyWeatherTip': - 'Bugün yağmurlu, dışarı çıkarken şemsiye alın ve dikkatli olun', - 'snowyWeatherTip': - 'Bugün karlı, yollar kaygan, lütfen dikkatli olun ve sıcak kalmak için önlem alın', - 'foggyWeatherTip': - 'Bugün sisli, görüş mesafesi düşük, dışarı çıkarken maske takın', - 'windyWeatherTip': - 'Bugün rüzgarlı, dışarı çıkarken dikkatli olun ve eşyalarınızı sabitleyin', - 'sunnyWeatherTip': - 'Bugün güneşli ve UV ışınları güçlü, dışarı çıkarken güneş kremi kullanın', - 'temperatureDifferenceTip': - 'Bugün gece ile gündüz arasında büyük sıcaklık farkı var, giysilerinizi buna göre ayarlayın', - 'comfortableWeatherTip': - 'Bugün hava güzel, dışarıda vakit geçirmek için harika bir zaman', + 'hotWeatherTip': 'Bugün hava sıcak, lütfen serin kalmaya ve güneş çarpmasını önlemek için bol su içmeye dikkat edin', + 'coldWeatherTip': 'Bugün hava soğuk, dışarı çıkarken üşütmemek için sıkı giyinin', + 'rainyWeatherTip': 'Bugün yağmurlu, dışarı çıkarken şemsiye alın ve dikkatli olun', + 'snowyWeatherTip': 'Bugün karlı, yollar kaygan, lütfen dikkatli olun ve sıcak kalmak için önlem alın', + 'foggyWeatherTip': 'Bugün sisli, görüş mesafesi düşük, dışarı çıkarken maske takın', + 'windyWeatherTip': 'Bugün rüzgarlı, dışarı çıkarken dikkatli olun ve eşyalarınızı sabitleyin', + 'sunnyWeatherTip': 'Bugün güneşli ve UV ışınları güçlü, dışarı çıkarken güneş kremi kullanın', + 'temperatureDifferenceTip': 'Bugün gece ile gündüz arasında büyük sıcaklık farkı var, giysilerinizi buna göre ayarlayın', + 'comfortableWeatherTip': 'Bugün hava güzel, dışarıda vakit geçirmek için harika bir zaman', "monday": "Pzt", "tuesday": "Sal", "wednesday": "Çar", @@ -906,28 +860,22 @@ const Map trTR = { "logout": "Çıkış Yap", "logoutTips": "Mevcut hesaptan çıkmak istediğinizden emin misiniz?", 'deleteAccount': 'Hesabı Sil', - 'deleteAccountTips': - 'Hesabınızı kalıcı olarak silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.', + 'deleteAccountTips': 'Hesabınızı kalıcı olarak silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.', 'clean': 'Clear Cache', 'cleanTips': 'Are you sure you want to clear personal cache?', // Profile 错误信息 - 'networkConnectionFailed': - 'Ağ bağlantısı başarısız, lütfen ağ ayarlarını kontrol edip tekrar deneyin', - 'serverTemporarilyUnavailable': - 'Sunucu geçici olarak yanıt vermiyor, lütfen daha sonra tekrar deneyin', + 'networkConnectionFailed': 'Ağ bağlantısı başarısız, lütfen ağ ayarlarını kontrol edip tekrar deneyin', + 'serverTemporarilyUnavailable': 'Sunucu geçici olarak yanıt vermiyor, lütfen daha sonra tekrar deneyin', 'loginExpiredPleaseRelogin': 'Oturum süresi doldu, lütfen tekrar giriş yapın', 'noPermissionForThisOperation': 'Bu işlemi gerçekleştirmek için izniniz yok', 'requestedResourceNotFound': 'İstenen kaynak bulunamadı', - 'imageProcessingFailedPleaseReselect': - 'Resim işlenemedi, lütfen resmi yeniden seçin', + 'imageProcessingFailedPleaseReselect': 'Resim işlenemedi, lütfen resmi yeniden seçin', 'operationFailedPleaseRetry': 'İşlem başarısız, lütfen tekrar deneyin', 'serverReturnedError': 'Sunucu bir hata döndürdü', 'serverError': 'Sunucu Hatası', - 'networkConnectionFailedCheckSettings': - 'Ağ bağlantısı başarısız, lütfen ağ ayarlarını kontrol edin', - 'serverInternalErrorRetryLater': - 'Sunucu iç hatası, lütfen daha sonra tekrar deneyin', + 'networkConnectionFailedCheckSettings': 'Ağ bağlantısı başarısız, lütfen ağ ayarlarını kontrol edin', + 'serverInternalErrorRetryLater': 'Sunucu iç hatası, lütfen daha sonra tekrar deneyin', // Profile 用户交互 //'error': '错误', @@ -946,18 +894,13 @@ const Map trTR = { // 账号服务相关 'clearUserDataFailed': 'Kullanıcı verileri temizlenemedi', // 清理用户数据失败 'deleteUserDataFailed': 'Kullanıcı verileri silinemedi', // 删除用户数据失败 - 'thirdPartyLogoutSuccess': - 'Üçüncü taraf oturumu başarıyla kapatıldı', // 第三方登录退出成功 + 'thirdPartyLogoutSuccess': 'Üçüncü taraf oturumu başarıyla kapatıldı', // 第三方登录退出成功 'thirdPartyLogoutFailed': 'Üçüncü taraf oturumu kapatılamadı', // 第三方登录退出失败 - 'signOutProcessError': - 'Oturum kapatma işlemi sırasında bir hata oluştu', // 登出过程发生错误 - 'deleteAccountProcessError': - 'Hesap silme işlemi sırasında bir hata oluştu', // 删除账号过程发生错误 + 'signOutProcessError': 'Oturum kapatma işlemi sırasında bir hata oluştu', // 登出过程发生错误 + 'deleteAccountProcessError': 'Hesap silme işlemi sırasında bir hata oluştu', // 删除账号过程发生错误 'userDataClearSuccess': 'Kullanıcı verileri başarıyla temizlendi', // 用户数据清理成功 - 'allUserDataClearSuccess': - 'Tüm kullanıcı verileri başarıyla temizlendi', // 所有用户数据清理成功 - 'accountServiceInitialized': - 'Hesap Hizmeti başlatıldı', // AccountService 已初始化 + 'allUserDataClearSuccess': 'Tüm kullanıcı verileri başarıyla temizlendi', // 所有用户数据清理成功 + 'accountServiceInitialized': 'Hesap Hizmeti başlatıldı', // AccountService 已初始化 // 权限管理页面 'getPermissionStatusFailed': 'İzin durumu alınamadı', @@ -980,12 +923,9 @@ const Map trTR = { 'locationInfo': 'Konum Bilgisi', 'phonePermissionDesc': 'Telefon arama özelliği için kullanılır', 'smsPermissionDesc': 'SMS gönderme özelliği için kullanılır', - 'alarmPermissionDesc': - 'Used to set exact alarms to ensure reminders trigger on time', - 'calendarWritePermissionDesc': - 'Takvim etkinlikleri ve hatırlatıcılar oluşturmak için kullanılır', - 'calendarFullAccessPermissionDesc': - 'Takvim etkinliklerini ve hatırlatıcıları okumak ve yönetmek için kullanılır', + 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', + 'calendarWritePermissionDesc': 'Takvim etkinlikleri ve hatırlatıcılar oluşturmak için kullanılır', + 'calendarFullAccessPermissionDesc': 'Takvim etkinliklerini ve hatırlatıcıları okumak ve yönetmek için kullanılır', 'locationPermissionDesc': 'Mevcut konum bilgisini almak için kullanılır', 'appFunctionNeeds': 'Uygulama özelliğinin ihtiyacı var', 'authorized': 'Yetkilendirildi', @@ -997,77 +937,53 @@ const Map trTR = { 'permissionRequestError': 'İzin istenirken hata oluştu', 'phonePermissionDetailDesc': 'Arama özelliği telefon izni gerektirir', 'smsPermissionDetailDesc': 'SMS gönderme özelliği SMS izni gerektirir', - 'alarmPermissionDetailDesc': - 'This permission is required to set exact alarms and ensure reminders trigger on time', - 'calendarWritePermissionDetailDesc': - 'Takvim etkinliği oluşturma takvime yazma izni gerektirir', - 'calendarFullAccessPermissionDetailDesc': - 'Takvim etkinliklerini yönetme tam takvim erişimi gerektirir', + 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'calendarWritePermissionDetailDesc': 'Takvim etkinliği oluşturma takvime yazma izni gerektirir', + 'calendarFullAccessPermissionDetailDesc': 'Takvim etkinliklerini yönetme tam takvim erişimi gerektirir', 'locationPermissionDetailDesc': 'Konum bilgisi alma konum izni gerektirir', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': - 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': - 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': - 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': - 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': - 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': - 'App needs notification permission to send you important alerts and messages', - 'appNeedsPermissionForFullFunction': - 'Uygulamanın tam işlevsellik için bu izne ihtiyacı var', - 'permanentDenialText': - '{permission} iznini kalıcı olarak reddettiniz, lütfen etkinleştirmek için uygulama ayarlarına gidin', + 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', + 'appNeedsPermissionForFullFunction': 'Uygulamanın tam işlevsellik için bu izne ihtiyacı var', + 'permanentDenialText': '{permission} iznini kalıcı olarak reddettiniz, lütfen etkinleştirmek için uygulama ayarlarına gidin', 'goToSettings': 'Ayarlara Git', // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': - 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': - 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': - 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': - 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': - 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': - 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': - 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': - 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': - 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': - 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': - 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': - 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': - 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', + '检测到您已永久拒绝录音权限。如需继续使用此功能,请前往应用设置中手动开启麦克风权限。', 'storagePermissionPermanentDenial': - 'Storage permission has been permanently denied. To continue using this feature, please go to app settings to manually enable storage permission.', + '检测到您已永久拒绝存储权限。如需继续使用此功能,请前往应用设置中手动开启存储权限。', //permission_util.dart 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': - 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -1076,10 +992,8 @@ const Map trTR = { 'updateNow': 'Şimdi Güncelle', // 立即更新按钮 'checkUpdate': 'Güncellemeleri Kontrol Et', // 检查更新按钮 'updateFailed': 'Güncelleme Başarısız', // 更新失败提示 - 'cannotOpenAppStore': - 'Uygulama mağazası açılamıyor, lütfen güncellemek için manuel olarak gidin', // 无法打开应用商店提示 - 'updateErrorRetry': - 'Güncelleme sırasında bir hata oluştu, lütfen daha sonra tekrar deneyin', // 更新错误重试提示 + 'cannotOpenAppStore': 'Uygulama mağazası açılamıyor, lütfen güncellemek için manuel olarak gidin', // 无法打开应用商店提示 + 'updateErrorRetry': 'Güncelleme sırasında bir hata oluştu, lütfen daha sonra tekrar deneyin', // 更新错误重试提示 //国家列表 "邮箱": "E-posta", @@ -1215,8 +1129,7 @@ const Map trTR = { "selectTargetLanguage": "Hedef Dil Seç", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": - "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1232,12 +1145,10 @@ const Map trTR = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "Geçmişi Temizle", - "clearHistoryConfirm": - "Tüm çeviri geçmişini temizlemek istediğinizden emin misiniz? Bu işlem geri alınamaz.", + "clearHistoryConfirm": "Tüm çeviri geçmişini temizlemek istediğinizden emin misiniz? Bu işlem geri alınamaz.", "unknownLanguage": "Bilinmeyen Dil", "deleteSessionRecord": "Oturum Kaydını Sil", - "deleteSessionConfirm": - "Bu oturumun tüm çeviri kayıtlarını silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.", + "deleteSessionConfirm": "Bu oturumun tüm çeviri kayıtlarını silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1269,20 +1180,15 @@ const Map trTR = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": - "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": - "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": - "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": - "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": - "Photo album permission required to pick images", + "photoAlbumPermissionRequired": "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1305,8 +1211,7 @@ const Map trTR = { // 翻译详情页 (translation_detail_view.dart) "originalRecord": "Orijinal Kayıt", "recordSummary": "Kayıt Özeti", - "clickToGenerateSummary": - "Oturum özeti oluşturmak için aşağıdaki düğmeye tıklayın", + "clickToGenerateSummary": "Oturum özeti oluşturmak için aşağıdaki düğmeye tıklayın", "summaryContent": "Özet İçeriği", "copied": "Kopyalandı", "summaryCopiledToClipboard": "Özet panoya kopyalandı", @@ -1314,11 +1219,9 @@ const Map trTR = { "summaryGenerated": "Özet oluşturuldu", "generating": "Oluşturuluyor...", "regenerate": "Yeniden Oluştur", - "summaryTimeoutMessage": - "Özet oluşturma isteği zaman aşımına uğradı. Ağ sorunları veya sunucu yoğunluğu olabilir.", + "summaryTimeoutMessage": "Özet oluşturma isteği zaman aşımına uğradı. Ağ sorunları veya sunucu yoğunluğu olabilir.", "deleteTranslationRecord": "Çeviri Kaydını Sil", - "deleteTranslationConfirm": - "Bu çeviri kaydını silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.", + "deleteTranslationConfirm": "Bu çeviri kaydını silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.", "originalText": "Orijinal Metin", "translatedText": "Çevrilmiş Metin", "sessionSummary": "Oturum Özeti", @@ -1346,34 +1249,28 @@ const Map trTR = { // 配对状态文本 "readyToPair": "Eşleştirmeye hazır", "preparingPairingEnvironment": "Eşleştirme ortamı hazırlanıyor...", - "connectDeepSoundViaSystemBluetooth": - "Lütfen önce sistem Bluetooth'u üzerinden Voitrans cihazına bağlanın", + "connectDeepSoundViaSystemBluetooth": "Lütfen önce sistem Bluetooth'u üzerinden Voitrans cihazına bağlanın", "deviceBindingConfirm": "Cihaz bağlama onayı...", "establishingDeviceAssociation": "Cihaz ilişkisi kuruluyor...", "waitingCompletePairing": "Lütfen bekleyin, eşleştirme tamamlanıyor...", - "pairingSuccessRedirecting": - "Eşleştirme başarılı! Ana sayfaya yönlendiriliyor...", + "pairingSuccessRedirecting": "Eşleştirme başarılı! Ana sayfaya yönlendiriliyor...", // 配对错误状态文本 - "ensureConnectedDeepSoundDevice": - "Lütfen bir Voitrans cihazına bağlı olduğunuzdan emin olun", + "ensureConnectedDeepSoundDevice": "Lütfen bir Voitrans cihazına bağlı olduğunuzdan emin olun", "deviceAlreadyBoundToOtherAccount": "Bu cihaz başka bir hesaba zaten bağlı", "deviceAssociationFailed": "Cihaz ilişkisi kurulamadı, lütfen tekrar deneyin", - "scanTimeoutEnsureDeviceNearby": - "Tarama zaman aşımına uğradı, lütfen cihazın yakında olduğundan emin olun", + "scanTimeoutEnsureDeviceNearby": "Tarama zaman aşımına uğradı, lütfen cihazın yakında olduğundan emin olun", "networkError": "Ağ Hatası", - "authorizationFailedCheckCode": - "Yetkilendirme başarısız, lütfen yetkilendirme kodunun doğru olup olmadığını kontrol edin", + "authorizationFailedCheckCode": "Yetkilendirme başarısız, lütfen yetkilendirme kodunun doğru olup olmadığını kontrol edin", "pairingFailedRetry": "Eşleştirme başarısız, lütfen tekrar deneyin", // 配对控制器相关 //'connectDevice': '连接设备', - 'pleaseEnableBluetooth': 'Lütfen Bluetooth\'u etkinleştirin', + 'pleaseEnableBluetooth': 'Lütfen Bluetooth\\', 'deviceDisconnected': 'Cihaz bağlantısı kesildi', 'readyToStartPairing': 'Eşleştirmeye başlamaya hazır', 'checkingEnvironment': 'Ortam kontrol ediliyor...', - 'ensureHeadsetOnAndPairingMode': - 'Lütfen kulaklığın açık ve eşleştirme modunda olduğundan emin olun', + 'ensureHeadsetOnAndPairingMode': 'Lütfen kulaklığın açık ve eşleştirme modunda olduğundan emin olun', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', @@ -1381,7 +1278,7 @@ const Map trTR = { 'establishingSecureConnection': 'Güvenli bağlantı kuruluyor...', 'needManualBindingAuthCode': 'Manuel bağlama yetkilendirme kodu gerekli...', 'pairingSuccessful': 'Eşleştirme başarılı!', - 'enableBluetooth': 'Bluetooth\'u Etkinleştir', + 'enableBluetooth': 'Bluetooth\\', 'grantPermissions': 'İzinleri Ver', 'retryAssociation': 'İlişkiyi Yeniden Dene', 'retryAuthorization': 'Yetkilendirmeyi Yeniden Dene', @@ -1391,46 +1288,35 @@ const Map trTR = { 'verificationFailedRetry': 'Doğrulama başarısız, lütfen tekrar deneyin', 'invalidDeviceAddress': 'Geçersiz cihaz adresi', 'bleDeviceAssociationFailed': 'BLE cihaz ilişkisi kurulamadı', - 'deviceAssociationFailedRetry': - 'Cihaz ilişkisi kurulamadı, lütfen tekrar deneyin', - 'bleConnectionTimeoutRetry': - 'BLE bağlantısı zaman aşımına uğradı, lütfen tekrar deneyin', + 'deviceAssociationFailedRetry': 'Cihaz ilişkisi kurulamadı, lütfen tekrar deneyin', + 'bleConnectionTimeoutRetry': 'BLE bağlantısı zaman aşımına uğradı, lütfen tekrar deneyin', 'blePairingStartupFailed': 'BLE eşleştirmesi başlatılamadı', 'bleConnectionFailed': 'BLE bağlantısı başarısız', - 'deviceAuthorizationFailedCheckCode': - 'Cihaz yetkilendirmesi başarısız, lütfen yetkilendirme kodunu kontrol edin', + 'deviceAuthorizationFailedCheckCode': 'Cihaz yetkilendirmesi başarısız, lütfen yetkilendirme kodunu kontrol edin', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': - 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': - 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': - 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': - 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 "feedback": "Kullanıcı Geri Bildirimi", 'feedbackInfo': 'Geri bildirim veya öneri sağlayın', - 'feedbackDescription': - 'Lütfen karşılaştığınız sorunu veya önerinizi açıklayın', + 'feedbackDescription': 'Lütfen karşılaştığınız sorunu veya önerinizi açıklayın', 'feedbackHint': 'Lütfen geri bildiriminizi girin...', 'feedbackRequired': 'Lütfen geri bildirim içeriğini girin', 'contactInfo': 'İletişim Bilgileri', 'contactHint': 'E-posta/Telefon, sizinle iletişime geçebilmemiz için', 'submit': 'Gönder', - 'feedbackSubmitSuccess': - 'Geri bildirim başarıyla gönderildi, geri bildiriminiz için teşekkür ederiz!', - 'feedbackSubmitFailed': - 'Geri bildirim gönderilemedi, lütfen daha sonra tekrar deneyin', + 'feedbackSubmitSuccess': 'Geri bildirim başarıyla gönderildi, geri bildiriminiz için teşekkür ederiz!', + 'feedbackSubmitFailed': 'Geri bildirim gönderilemedi, lütfen daha sonra tekrar deneyin', // OTA升级模块 - "upgradeExitConfirm": - "Yükseltme devam ediyor. Çıkmak işlemi kesecektir, çıkmak istediğinizden emin misiniz?", + "upgradeExitConfirm": "Yükseltme devam ediyor. Çıkmak işlemi kesecektir, çıkmak istediğinizden emin misiniz?", "deviceModel": "Cihaz Modeli", "unknownDevice": "Bilinmeyen Cihaz", "currentFirmwareVersion": "Mevcut Donanım Yazılımı Sürümü", @@ -1443,19 +1329,14 @@ const Map trTR = { "retryConnection": "Yeniden Dene", "ota_updateNow": "Şimdi Güncelle", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": - "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": - "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": - "Firmware version is abnormal. Please reconnect and retry.", - "keepConnectedDontClose": - "Lütfen cihazı bağlı tutun ve uygulamayı kapatmayın", + "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", + "keepConnectedDontClose": "Lütfen cihazı bağlı tutun ve uygulamayı kapatmayın", "doNotDisconnect": "Bağlantıyı kesmeyin", "charging": "Şarj oluyor", "updateContent": "Güncelleme İçeriği", - "removeEarbudsEnsureBattery": - "Her iki kulaklığı da çıkarın ve pil seviyelerinin %20'un üzerinde olduğundan emin olun", + "removeEarbudsEnsureBattery": "Her iki kulaklığı da çıkarın ve pil seviyelerinin %20'un üzerinde olduğundan emin olun", // 音乐列表页面 "noMusic": "Müzik Yok", // 暂无音乐 @@ -1465,9 +1346,9 @@ const Map trTR = { "playAll": "Tümünü Oynat", // 播放全部 // 语言名称 - "中文(简体)": "Çince (Basitleştirilmiş)", - "中文(繁体)": "Çince (Geleneksel)", - "中文(香港繁体)": "Çince (Hong Kong Geleneksel)", + "中文(简体)": "中文(简体)", + "中文(繁体)": "中文(繁体)", + "中文(香港繁体)": "中文(香港繁体)", "英语": "İngilizce", "日语": "Japonca", "韩语": "Korece", @@ -1517,10 +1398,8 @@ const Map trTR = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": - 'Insufficient balance, please go to the corresponding recharge page to recharge.', - "recharge": 'Go to Recharge', + "insufficientBalanceDesc": "Insufficient balance, please go to the corresponding recharge page to recharge.", + "recharge": "Go to Recharge", // 会员到期提示 - "aiMemberExpiredDesc": - 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": "AI membership expired, please go to the membership recharge page to renew.", }; diff --git a/lib/core/translations/language/uk_ua.dart b/lib/core/translations/language/uk_ua.dart index ed9bcab62..2197cce9b 100644 --- a/lib/core/translations/language/uk_ua.dart +++ b/lib/core/translations/language/uk_ua.dart @@ -72,8 +72,7 @@ const Map ukUA = { // 登录页 "welcome": "Ласкаво просимо", - "loginTips": - "Увійдіть або зареєструйтеся за допомогою номера телефону або електронної пошти", + "loginTips": "Увійдіть або зареєструйтеся за допомогою номера телефону або електронної пошти", "accountNumber": "Номер телефону або Email", "verificationCode": "Код підтвердження", "getCode": "Отримати код", @@ -92,8 +91,7 @@ const Map ukUA = { "tip": "Підказка", "pleaseEnterCompleteCode": "Будь ласка, введіть повний код підтвердження", "loginFailed": "Помилка входу, спробуйте ще раз", - 'pleaseAcceptPrivacyPolicy': - 'Будь ласка, спочатку прочитайте та погодьтеся з Політикою конфіденційності та Угодою користувача', + 'pleaseAcceptPrivacyPolicy': 'Будь ласка, спочатку прочитайте та погодьтеся з Політикою конфіденційності та Угодою користувача', "enterVerificationCode": "Введіть код підтвердження", "verificationCodeSentTo": "Код підтвердження надіслано на", "resendVerificationCode": "Надіслати код ще раз", @@ -102,12 +100,11 @@ const Map ukUA = { // 隐私政策弹窗 "loginDeclaration": "Декларація Voitrans", // Voitrans 声明 - "welcomeToThisApp": - "Ласкаво просимо до Voitrans, будь ласка, уважно прочитайте", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": "Ласкаво просимо до Voitrans, будь ласка, уважно прочитайте", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": - ", натискання 'Погодитися та увійти' означає, що ви повністю прочитали та погодилися з вищезазначеними угодами. Натискання 'Не погоджуватися' призведе до виходу з програми.", // ,点击"同意并进入"表示您已充分阅读并同意上述协议。点击"不同意"将退出应用。 + ",点击'同意并进入'表示您已充分阅读并同意上述协议。点击'不同意'将退出应用。", // ,点击"同意并进入"表示您已充分阅读并同意上述协议。点击"不同意"将退出应用。 "disagree": "Не погоджуватися", // 不同意 "agreeAndEnter": "Погодитися та увійти", // 同意并进入 @@ -119,29 +116,24 @@ const Map ukUA = { "signal": "Сигнал", "deviceId": "ID пристрою", "firmwareVersion": "Версія прошивки", - "disconnectedDevice": - "Пристрій не підключено, натисніть кнопку нижче, щоб підключити", + "disconnectedDevice": "Пристрій не підключено, натисніть кнопку нижче, щоб підключити", "connectDevice": "Підключити пристрій", "topAiExperiences": "Найкращі враження від AI", "aiAssistant": "Всемогутній помічник AI", - "aiAssistantInfo": - "Ексклюзивний консультант 24/7, відповідає на запитання, надає поради", + "aiAssistantInfo": "Ексклюзивний консультант 24/7, відповідає на запитання, надає поради", "interpretation": "Синхронний переклад", - "simultaneousInterpretationInfo": - "Переклад у реальному часі на 80+ мов, безтурботні подорожі за кордон", + "simultaneousInterpretationInfo": "Переклад у реальному часі на 80+ мов, безтурботні подорожі за кордон", "aiCompanion": "Сімейний компаньйон", "aiCompanionInfo": "Розуміє вас, тепла компанія", "homeSlogan": "З'єднуючи світ, перевершуючи звук", - "turnEarphones": - "Будь ласка, відкрийте зарядний кейс для навушників і вставте навушники у вуха", + "turnEarphones": "Будь ласка, відкрийте зарядний кейс для навушників і вставте навушники у вуха", "currentlyConnected": "Наразі підключено:", "unsystemSetup": "Перейти до налаштувань системи", "talkLater": "Пізніше", "initializing": "Ініціалізація...", "bluetoothInitializationFailure": "Помилка ініціалізації служби Bluetooth", "checkingPermissions": "Перевірка дозволів...", - "lackPermissions": - "Відсутні дозволи Bluetooth і необхідно дозволити доступ до місцезнаходження", + "lackPermissions": "Відсутні дозволи Bluetooth і необхідно дозволити доступ до місцезнаходження", "searchingDevice": "Пошук пристроїв...", "findConnectedDevice": "Знайдено підключений пристрій", "notFound": "Не знайдено підключеного пристрою Bluetooth", @@ -184,8 +176,7 @@ const Map ukUA = { "healthConsultant": "Багатофункціональний чат AI", "healthConsultantInfo": "Надає більше функцій чату AI", "conferenceAssistant": "Помічник для ділових зустрічей", - "conferenceAssistantInfo": - "Запис протоколів у реальному часі, багатомовний переклад", + "conferenceAssistantInfo": "Запис протоколів у реальному часі, багатомовний переклад", "usageStats": "Статистика використання", "usageStatsInfo": "Перегляньте статистику використання вашого пристрою", "scene": "Сценарій", @@ -228,8 +219,7 @@ const Map ukUA = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": - "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -285,10 +275,8 @@ const Map ukUA = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': - 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', - 'meetingHeaderDesc2': - 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', + 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -297,35 +285,27 @@ const Map ukUA = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': - 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': - 'Real-time simultaneous interpretation and text translation with low-latency voice.', + 'transHeaderDesc1': 'Real-time simultaneous interpretation and text translation with low-latency voice.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'translateZhEn': 'Chinese-English translation', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'multiLangTextTranslation': 'Multilingual text translation', - 'termOptimizationContextPreserve': - 'Terminology optimization and context preservation', + 'termOptimizationContextPreserve': 'Terminology optimization and context preservation', 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'personalVocabularyMemory': 'Personal vocabulary memory', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'colorHighContrast': 'High color contrast', - 'transDisclaimer': - 'Translation performance depends on microphone, network latency, and ambient noise.', + 'transDisclaimer': 'Translation performance depends on microphone, network latency, and ambient noise.', // AI 商品页描述 - 'aiHeaderDesc1': - 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': - 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': - 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': - 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -334,10 +314,8 @@ const Map ukUA = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': - 'Template messages and schedule reminders', - 'aiDisclaimer': - 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', + 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Benefits overview', @@ -352,11 +330,10 @@ const Map ukUA = { 'generalPrivileges': 'General privileges', 'earlyAccessNewFeatures': 'Early access to new features', 'crossDeviceSync': 'Cross-device sync', - 'vipDisclaimer': - 'Actual benefits depend on the package details and may change with versions.', + 'vipDisclaimer': 'Actual benefits depend on the package details and may change with versions.', // 新手引导 / Onboarding - 'skip': "Пропустити", + 'skip': 'Пропустити', 'next': 'Next', 'sayLilyHint': 'Say "Lily Lily" to the mic', 'imHere': 'I’m here~', @@ -379,8 +356,7 @@ const Map ukUA = { 'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavSend': 'Lily will plan the route', 'guideNavEnd': 'Navigation set—try other commands', - 'guideMeetingStart': - 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', + 'guideMeetingStart': 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingEnd': 'Reminder created—try other commands', @@ -430,8 +406,7 @@ const Map ukUA = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': - 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -439,6 +414,23 @@ const Map ukUA = { 'audioVideoRecording': 'Audio/Video Recording', 'callRecording': 'Call Recording', 'importAudio': 'Import Audio', + 'meetingRecordExitTitle': 'Вийти із запису', // 退出录音 + 'meetingRecordExitMessage': 'Будь ласка, виберіть дію після виходу', // 请选择离开后的操作 + 'meetingRecordEndAndSave': 'Завершити та зберегти', // 结束录音并保存 + 'meetingRecordEndWithoutSave': 'Завершити без збереження', // 结束录音不保存 + 'meetingRecordContinueInBackground': 'Продовжити запис у фоновому режимі', // 后台继续录音 + 'meetingRecordStopTimeout': 'Час зупинки запису минув, спробуйте ще раз', // 结束录音超时,请重试 + 'meetingRecordStopFailed': 'Не вдалося зупинити запис, спробуйте ще раз', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': 'Не вдалося зберегти запис, спробуйте ще раз', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': 'Запис триває', // 录音进行中 + 'meetingRecordRecordingNotificationBody': 'Запис у фоновому режимі, натисніть, щоб повернутися', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': 'Дозвіл на плаваюче вікно', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': + 'Щоб показувати результати перекладу під час дзвінків або перекладу аудіо/відео, нам потрібен дозвіл на відображення поверх інших програм. Це дозволить бачити переклад у реальному часі під час використання інших додатків.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': + 'Щоб під час запису показувати плаваючу панель запису (таймер/пауза/продовжити), нам потрібен дозвіл на відображення поверх інших програм.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': + 'Не вдалося автоматично відкрити системні налаштування. Відкрийте Налаштування та вручну увімкніть дозвіл на відображення поверх інших програм.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'Transcribing...', 'summarizing': 'Summarizing...', 'analyzing': 'Analyzing...', @@ -486,54 +478,40 @@ const Map ukUA = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': - 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': - 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': - 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': - 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': - 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': - 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': - 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': - 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': - 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': - 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': - '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': - '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': - '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': - 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -545,8 +523,7 @@ const Map ukUA = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': - 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -566,10 +543,9 @@ const Map ukUA = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': - 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': - 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', + '检测到您已永久拒绝存储权限。如需继续使用此功能,请前往应用设置中手动开启存储权限。', // Meeting模块 - 思维导图相关 'shareMindMap': 'Share Mind Map', @@ -613,19 +589,17 @@ const Map ukUA = { // Meeting模块 - 发言者相关 'applyToAllParagraphs': 'Застосувати до всіх абзаців цього мовця', - 'summaryWillBeUpdatedAutomatically': - 'Підсумок буде автоматично оновлюватися на основі шаблону', + 'summaryWillBeUpdatedAutomatically': 'Підсумок буде автоматично оновлюватися на основі шаблону', 'nameCurrentSpeaker': 'Name Current Speaker', 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': - 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', 'syncToCloudTip': - 'Automatically sync your recordings to the cloud, you can play, manage and share recordings through any VOITRANS APP or VOITRANS Web (web.voitrans.com).', + '自动将你的录音同步到云端,你可以通过任意VOITRANS APP或VOITRANS Web(web.voitrans.com)播放、管理和分享录音。', 'syncToVoitransApp': 'Sync VOITRANS APP', 'transcriptionRecord': 'Transcription Record', @@ -645,8 +619,7 @@ const Map ukUA = { "cloudSync": "Увімкнути синхронізацію в хмарі", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": - "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", "joinDevice": "Підключений пристрій:", "accountId": "ID облікового запису:", "systemSetting": "Системні налаштування", @@ -659,8 +632,7 @@ const Map ukUA = { "privacySettings": "Налаштування конфіденційності", "privacySettingsInfo": "Керування збором даних та дозволами", "permissionManagement": "Керування дозволами", // 权限管理 - "permissionManagementInfo": - "Керування налаштуваннями дозволів програми", // 管理应用权限设置 + "permissionManagementInfo": "Керування налаштуваннями дозволів програми", // 管理应用权限设置 "aboutApplication": "Про програму", "versions": "Версія", "checkUpdates": "Перевірити оновлення", @@ -669,11 +641,9 @@ const Map ukUA = { "voiceServiceInfo": "Вибір служби розпізнавання та синтезу мовлення", "selectVoiceService": "Вибрати голосову службу", "azureVoiceService": "Голосова служба Azure", - "azureVoiceServiceInfo": - "Хмарна голосова служба Microsoft, що підтримує високоякісний синтез та розпізнавання мовлення", + "azureVoiceServiceInfo": "Хмарна голосова служба Microsoft, що підтримує високоякісний синтез та розпізнавання мовлення", "flutterVoiceService": "Локальна голосова служба Flutter", - "flutterVoiceServiceInfo": - "Локальна голосова служба пристрою, яку можна використовувати без підключення до Інтернету", + "flutterVoiceServiceInfo": "Локальна голосова служба пристрою, яку можна використовувати без підключення до Інтернету", 'timbreService': 'Служба тембрів', 'timbreServiceInfo': 'Вибір служби синтезу мовлення з різними тембрами', 'defaultTimbre': 'Стандартний тембр', @@ -702,8 +672,7 @@ const Map ukUA = { // 设置页面 - 实时语音对话 "realtimeVoiceChat": "Голосовий чат у реальному часі", - "realtimeVoiceChatInfo": - "Спробуйте функцію інтелектуальної голосової взаємодії (попередній перегляд)", + "realtimeVoiceChatInfo": "Спробуйте функцію інтелектуальної голосової взаємодії (попередній перегляд)", "loading": "Завантаження...", //设备管理页面 @@ -718,8 +687,7 @@ const Map ukUA = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": - "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": "Are you sure you want to unbind device \\", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -767,22 +735,18 @@ const Map ukUA = { "nearbyFood": "What delicious food is nearby?", // 美食 // Agent controller - 'welcomeMessage': 'Привіт! Я **СяоЯнь**, я можу допомогти вам:\n\n' - '• Відповідати на запитання та надавати інформацію\n\n' - '• Голосовий переклад у реальному часі\n\n' - '• Рекомендувати музику та подкасти\n\n' - '• Голосові нотатки та нагадування\n\n' - '• Керувати функціями навушників\n\n' - 'Чим я можу вам допомогти?', + 'welcomeMessage': '你好!我是**Lily**,我能帮你:\n\n' + '• 回答问题和提供信息\n\n' + '• 实时语音翻译\n\n' + '• 推荐音乐和播客\n\n' + '• 语音备忘录和提醒\n\n' + '• 控制耳机功能\n\n' + '有什么我可以帮你的吗?', 'microphonePermission': 'Мікрофон', - 'voiceRecognitionPermissionText': - 'Для розпізнавання мовлення потрібен доступ до мікрофона.', - 'voiceTranslationPermissionText': - 'Для розпізнавання та перекладу мовлення потрібен доступ до мікрофона.', - 'phoneCallPermissionText': - 'Для здійснення дзвінків потрібен доступ до мікрофона для голосових викликів.', - 'permissionDeniedText': - 'Ви назавжди відмовили в доступі до мікрофона, будь ласка, увімкніть дозвіл у налаштуваннях системи.', + 'voiceRecognitionPermissionText': 'Для розпізнавання мовлення потрібен доступ до мікрофона.', + 'voiceTranslationPermissionText': 'Для розпізнавання та перекладу мовлення потрібен доступ до мікрофона.', + 'phoneCallPermissionText': 'Для здійснення дзвінків потрібен доступ до мікрофона для голосових викликів.', + 'permissionDeniedText': 'Ви назавжди відмовили в доступі до мікрофона, будь ласка, увімкніть дозвіл у налаштуваннях системи.', 'startVoiceInput': 'Почати голосове введення', 'startPhoneCallMode': 'Почати режим дзвінка, почати голосове введення', @@ -802,11 +766,10 @@ const Map ukUA = { 'pornographicVulgar': 'Порнографічний/Вульгарний', 'misleadingAttack': 'Вводить в оману/Атака', 'illegalCriminal': 'Незаконний/Злочинний', - 'privacyRelated': "Пов'язано з конфіденційністю", - 'copyrightViolation': "Порушення моїх авторських прав, репутації тощо", + 'privacyRelated': 'Пов\'язано з конфіденційністю', + 'copyrightViolation': 'Порушення моїх авторських прав, репутації тощо', 'other': 'Інше', - 'reportDescriptionHint': - 'Ми хочемо знати причину вашої скарги, ви можете описати проблему, з якою зіткнулися.', + 'reportDescriptionHint': 'Ми хочемо знати причину вашої скарги, ви можете описати проблему, з якою зіткнулися.', //'submit': '提交', //Message_bubble @@ -837,24 +800,15 @@ const Map ukUA = { 'highest': 'Макс.', 'lowest': 'Мін.', 'futureForecast': 'Прогноз на майбутнє', - 'hotWeatherTip': - 'Сьогодні спекотно, будь ласка, уникайте перегріву та пийте більше води, щоб уникнути сонячного удару', - 'coldWeatherTip': - 'Сьогодні температура низька, будь ласка, тепло одягайтеся, виходячи на вулицю, щоб не застудитися', - 'rainyWeatherTip': - 'Сьогодні дощ, будь ласка, візьміть з собою парасольку та будьте обережні під час поїздок', - 'snowyWeatherTip': - 'Сьогодні сніг, дороги слизькі, будьте обережні та тепло одягайтеся', - 'foggyWeatherTip': - 'Сьогодні туман, видимість обмежена, будь ласка, надягайте маску, виходячи на вулицю', - 'windyWeatherTip': - 'Сьогодні сильний вітер, будь ласка, будьте обережні та закріпіть свої речі, виходячи на вулицю', - 'sunnyWeatherTip': - 'Сьогодні сонячно та сильне ультрафіолетове випромінювання, будь ласка, використовуйте сонцезахисний крем, виходячи на вулицю', - 'temperatureDifferenceTip': - 'Сьогодні велика різниця температур між днем і ніччю, будь ласка, одягайтеся відповідно', - 'comfortableWeatherTip': - 'Сьогодні приємна погода, чудовий час для активного відпочинку на свіжому повітрі', + 'hotWeatherTip': 'Сьогодні спекотно, будь ласка, уникайте перегріву та пийте більше води, щоб уникнути сонячного удару', + 'coldWeatherTip': 'Сьогодні температура низька, будь ласка, тепло одягайтеся, виходячи на вулицю, щоб не застудитися', + 'rainyWeatherTip': 'Сьогодні дощ, будь ласка, візьміть з собою парасольку та будьте обережні під час поїздок', + 'snowyWeatherTip': 'Сьогодні сніг, дороги слизькі, будьте обережні та тепло одягайтеся', + 'foggyWeatherTip': 'Сьогодні туман, видимість обмежена, будь ласка, надягайте маску, виходячи на вулицю', + 'windyWeatherTip': 'Сьогодні сильний вітер, будь ласка, будьте обережні та закріпіть свої речі, виходячи на вулицю', + 'sunnyWeatherTip': 'Сьогодні сонячно та сильне ультрафіолетове випромінювання, будь ласка, використовуйте сонцезахисний крем, виходячи на вулицю', + 'temperatureDifferenceTip': 'Сьогодні велика різниця температур між днем і ніччю, будь ласка, одягайтеся відповідно', + 'comfortableWeatherTip': 'Сьогодні приємна погода, чудовий час для активного відпочинку на свіжому повітрі', "monday": "Пн", "tuesday": "Вт", "wednesday": "Ср", @@ -906,64 +860,51 @@ const Map ukUA = { "logout": "Вийти", "logoutTips": "Ви впевнені, що хочете вийти з поточного облікового запису?", 'deleteAccount': 'Видалити обліковий запис', - 'deleteAccountTips': - 'Ви впевнені, що хочете назавжди видалити свій обліковий запис? Цю дію неможливо скасувати', + 'deleteAccountTips': 'Ви впевнені, що хочете назавжди видалити свій обліковий запис? Цю дію неможливо скасувати', 'clean': 'Clear Cache', 'cleanTips': 'Are you sure you want to clear personal cache?', // Profile 错误信息 - 'networkConnectionFailed': - 'Помилка мережевого підключення, перевірте налаштування мережі та спробуйте ще раз', - 'serverTemporarilyUnavailable': - 'Сервер тимчасово недоступний, спробуйте ще раз пізніше', - 'loginExpiredPleaseRelogin': - 'Термін дії сесії закінчився, будь ласка, увійдіть знову', + 'networkConnectionFailed': 'Помилка мережевого підключення, перевірте налаштування мережі та спробуйте ще раз', + 'serverTemporarilyUnavailable': 'Сервер тимчасово недоступний, спробуйте ще раз пізніше', + 'loginExpiredPleaseRelogin': 'Термін дії сесії закінчився, будь ласка, увійдіть знову', 'noPermissionForThisOperation': 'Немає дозволу на виконання цієї операції', 'requestedResourceNotFound': 'Запитаний ресурс не знайдено', - 'imageProcessingFailedPleaseReselect': - 'Не вдалося обробити зображення, будь ласка, виберіть інше зображення', + 'imageProcessingFailedPleaseReselect': 'Не вдалося обробити зображення, будь ласка, виберіть інше зображення', 'operationFailedPleaseRetry': 'Операція не вдалася, спробуйте ще раз', 'serverReturnedError': 'Сервер повернув помилку', 'serverError': 'Помилка сервера', - 'networkConnectionFailedCheckSettings': - 'Помилка мережевого підключення, перевірте налаштування мережі', - 'serverInternalErrorRetryLater': - 'Внутрішня помилка сервера, спробуйте ще раз пізніше', + 'networkConnectionFailedCheckSettings': 'Помилка мережевого підключення, перевірте налаштування мережі', + 'serverInternalErrorRetryLater': 'Внутрішня помилка сервера, спробуйте ще раз пізніше', // Profile 用户交互 //'error': '错误', //'success': '成功', 'imageCompressionFailed': 'Не вдалося стиснути зображення', 'avatarUpdateFailed': 'Не вдалося оновити аватар', - 'usernameCannotBeEmpty': "Ім'я користувача не може бути порожнім", + 'usernameCannotBeEmpty': 'Ім\'я користувача не може бути порожнім', 'saveSuccess': 'Збережено успішно', 'personalInfoUpdated': 'Особисту інформацію оновлено', 'saveFailed': 'Не вдалося зберегти', 'loggedOut': 'Ви вийшли з системи', 'logoutFailedRetry': 'Не вдалося вийти, спробуйте ще раз', 'accountPermanentlyDeleted': 'Обліковий запис було назавжди видалено', - 'deleteAccountFailedRetry': - 'Не вдалося видалити обліковий запис, спробуйте ще раз', + 'deleteAccountFailedRetry': 'Не вдалося видалити обліковий запис, спробуйте ще раз', // 账号服务相关 'clearUserDataFailed': 'Не вдалося очистити дані користувача', // 清理用户数据失败 'deleteUserDataFailed': 'Не вдалося видалити дані користувача', // 删除用户数据失败 - 'thirdPartyLogoutSuccess': - 'Вихід зі стороннього сервісу успішний', // 第三方登录退出成功 - 'thirdPartyLogoutFailed': - 'Не вдалося вийти зі стороннього сервісу', // 第三方登录退出失败 + 'thirdPartyLogoutSuccess': 'Вихід зі стороннього сервісу успішний', // 第三方登录退出成功 + 'thirdPartyLogoutFailed': 'Не вдалося вийти зі стороннього сервісу', // 第三方登录退出失败 'signOutProcessError': 'Сталася помилка під час виходу з системи', // 登出过程发生错误 - 'deleteAccountProcessError': - 'Сталася помилка під час видалення облікового запису', // 删除账号过程发生错误 + 'deleteAccountProcessError': 'Сталася помилка під час видалення облікового запису', // 删除账号过程发生错误 'userDataClearSuccess': 'Дані користувача успішно очищено', // 用户数据清理成功 - 'allUserDataClearSuccess': - 'Усі дані користувача успішно очищено', // 所有用户数据清理成功 - 'accountServiceInitialized': - 'Службу облікових записів ініціалізовано', // AccountService 已初始化 + 'allUserDataClearSuccess': 'Усі дані користувача успішно очищено', // 所有用户数据清理成功 + 'accountServiceInitialized': 'Службу облікових записів ініціалізовано', // AccountService 已初始化 // 权限管理页面 'getPermissionStatusFailed': 'Не вдалося отримати статус дозволів', - 'communicationPermissions': 'Дозволи на зв\'язок', + 'communicationPermissions': 'Дозволи на зв\\', 'bluetoothPermissions': 'Bluetooth Permissions', 'notificationPermissions': 'Notification Permissions', 'storagePermissions': 'Storage Permissions', @@ -982,14 +923,10 @@ const Map ukUA = { 'locationInfo': 'Інформація про місцезнаходження', 'phonePermissionDesc': 'Використовується для здійснення дзвінків', 'smsPermissionDesc': 'Використовується для надсилання SMS', - 'alarmPermissionDesc': - 'Used to set exact alarms to ensure reminders trigger on time', - 'calendarWritePermissionDesc': - 'Використовується для створення подій та нагадувань у календарі', - 'calendarFullAccessPermissionDesc': - 'Використовується для читання та керування подіями та нагадуваннями у календарі', - 'locationPermissionDesc': - 'Використовується для отримання інформації про поточне місцезнаходження', + 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', + 'calendarWritePermissionDesc': 'Використовується для створення подій та нагадувань у календарі', + 'calendarFullAccessPermissionDesc': 'Використовується для читання та керування подіями та нагадуваннями у календарі', + 'locationPermissionDesc': 'Використовується для отримання інформації про поточне місцезнаходження', 'appFunctionNeeds': 'Функції програми потребують', 'authorized': 'Дозволено', 'unauthorized': 'Не дозволено', @@ -998,82 +935,55 @@ const Map ukUA = { 'unknownStatus': 'Невідомий статус', 'permissionGranted': 'Дозвіл надано', 'permissionRequestError': 'Помилка під час запиту дозволу', - 'phonePermissionDetailDesc': - 'Для функції дзвінків потрібен дозвіл на доступ до телефону', - 'smsPermissionDetailDesc': - 'Для функції надсилання SMS потрібен дозвіл на доступ до SMS', - 'alarmPermissionDetailDesc': - 'This permission is required to set exact alarms and ensure reminders trigger on time', - 'calendarWritePermissionDetailDesc': - 'Для створення подій у календарі потрібен дозвіл на запис до календаря', - 'calendarFullAccessPermissionDetailDesc': - 'Для керування подіями у календарі потрібен повний доступ до календаря', - 'locationPermissionDetailDesc': - 'Для отримання інформації про місцезнаходження потрібен дозвіл на доступ до місцезнаходження', + 'phonePermissionDetailDesc': 'Для функції дзвінків потрібен дозвіл на доступ до телефону', + 'smsPermissionDetailDesc': 'Для функції надсилання SMS потрібен дозвіл на доступ до SMS', + 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'calendarWritePermissionDetailDesc': 'Для створення подій у календарі потрібен дозвіл на запис до календаря', + 'calendarFullAccessPermissionDetailDesc': 'Для керування подіями у календарі потрібен повний доступ до календаря', + 'locationPermissionDetailDesc': 'Для отримання інформації про місцезнаходження потрібен дозвіл на доступ до місцезнаходження', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': - 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': - 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': - 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': - 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': - 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': - 'App needs notification permission to send you important alerts and messages', - 'appNeedsPermissionForFullFunction': - 'Програмі потрібен цей дозвіл для надання повної функціональності', - 'permanentDenialText': - 'Ви назавжди відмовили в доступі до {permission}, будь ласка, перейдіть до налаштувань програми, щоб увімкнути його', + 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', + 'appNeedsPermissionForFullFunction': 'Програмі потрібен цей дозвіл для надання повної функціональності', + 'permanentDenialText': 'Ви назавжди відмовили в доступі до {permission}, будь ласка, перейдіть до налаштувань програми, щоб увімкнути його', 'goToSettings': 'Перейти до налаштувань', // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': - 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': - 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': - 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': - 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': - 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': - 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': - 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': - 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': - 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': - 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': - 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': - 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': - 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', + '检测到您已永久拒绝录音权限。如需继续使用此功能,请前往应用设置中手动开启麦克风权限。', 'storagePermissionPermanentDenial': - 'Storage permission has been permanently denied. To continue using this feature, please go to app settings to manually enable storage permission.', + '检测到您已永久拒绝存储权限。如需继续使用此功能,请前往应用设置中手动开启存储权限。', //permission_util.dart 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': - 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -1082,10 +992,8 @@ const Map ukUA = { 'updateNow': 'Оновити зараз', // 立即更新按钮 'checkUpdate': 'Перевірити оновлення', // 检查更新按钮 'updateFailed': 'Не вдалося оновити', // 更新失败提示 - 'cannotOpenAppStore': - 'Не вдається відкрити App Store, будь ласка, перейдіть до App Store вручну, щоб оновити', // 无法打开应用商店提示 - 'updateErrorRetry': - 'Сталася помилка під час оновлення, спробуйте ще раз пізніше', // 更新错误重试提示 + 'cannotOpenAppStore': 'Не вдається відкрити App Store, будь ласка, перейдіть до App Store вручну, щоб оновити', // 无法打开应用商店提示 + 'updateErrorRetry': 'Сталася помилка під час оновлення, спробуйте ще раз пізніше', // 更新错误重试提示 //国家列表 "邮箱": "Email", @@ -1221,8 +1129,7 @@ const Map ukUA = { "selectTargetLanguage": "Вибрати цільову мову", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": - "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1238,12 +1145,10 @@ const Map ukUA = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "Очистити історію", - "clearHistoryConfirm": - "Ви впевнені, що хочете очистити всю історію перекладів? Цю дію неможливо скасувати.", + "clearHistoryConfirm": "Ви впевнені, що хочете очистити всю історію перекладів? Цю дію неможливо скасувати.", "unknownLanguage": "Невідома мова", "deleteSessionRecord": "Видалити запис сесії", - "deleteSessionConfirm": - "Ви впевнені, що хочете видалити всі записи перекладів цієї сесії? Цю дію неможливо скасувати.", + "deleteSessionConfirm": "Ви впевнені, що хочете видалити всі записи перекладів цієї сесії? Цю дію неможливо скасувати.", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1275,20 +1180,15 @@ const Map ukUA = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": - "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": - "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": - "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": - "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": - "Photo album permission required to pick images", + "photoAlbumPermissionRequired": "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1311,8 +1211,7 @@ const Map ukUA = { // 翻译详情页 (translation_detail_view.dart) "originalRecord": "Оригінальний запис", "recordSummary": "Підсумок запису", - "clickToGenerateSummary": - "Натисніть кнопку нижче, щоб згенерувати підсумок сесії", + "clickToGenerateSummary": "Натисніть кнопку нижче, щоб згенерувати підсумок сесії", "summaryContent": "Зміст підсумку", "copied": "Скопійовано", "summaryCopiledToClipboard": "Підсумок скопійовано до буфера обміну", @@ -1320,11 +1219,9 @@ const Map ukUA = { "summaryGenerated": "Підсумок згенеровано", "generating": "Генерація...", "regenerate": "Згенерувати знову", - "summaryTimeoutMessage": - "Час очікування запиту на генерацію підсумку минув, можливо, через проблеми з мережею або завантаженість сервера.", + "summaryTimeoutMessage": "Час очікування запиту на генерацію підсумку минув, можливо, через проблеми з мережею або завантаженість сервера.", "deleteTranslationRecord": "Видалити запис перекладу", - "deleteTranslationConfirm": - "Ви впевнені, що хочете видалити цей запис перекладу? Цю дію неможливо скасувати.", + "deleteTranslationConfirm": "Ви впевнені, що хочете видалити цей запис перекладу? Цю дію неможливо скасувати.", "originalText": "Оригінальний текст", "translatedText": "Перекладений текст", "sessionSummary": "Підсумок сесії", @@ -1352,25 +1249,19 @@ const Map ukUA = { // 配对状态文本 "readyToPair": "Готово до спарювання", "preparingPairingEnvironment": "Підготовка середовища для спарювання...", - "connectDeepSoundViaSystemBluetooth": - "Будь ласка, спочатку підключіться до пристрою Voitrans через системний Bluetooth", + "connectDeepSoundViaSystemBluetooth": "Будь ласка, спочатку підключіться до пристрою Voitrans через системний Bluetooth", "deviceBindingConfirm": "Підтвердження прив'язки пристрою...", "establishingDeviceAssociation": "Встановлення асоціації пристрою...", "waitingCompletePairing": "Будь ласка, зачекайте, завершується спарювання...", - "pairingSuccessRedirecting": - "Спарювання успішне! Перенаправлення на головну сторінку...", + "pairingSuccessRedirecting": "Спарювання успішне! Перенаправлення на головну сторінку...", // 配对错误状态文本 - "ensureConnectedDeepSoundDevice": - "Переконайтеся, що ви підключені до пристрою Voitrans", - "deviceAlreadyBoundToOtherAccount": - "Цей пристрій вже прив'язаний до іншого облікового запису", + "ensureConnectedDeepSoundDevice": "Переконайтеся, що ви підключені до пристрою Voitrans", + "deviceAlreadyBoundToOtherAccount": "Цей пристрій вже прив'язаний до іншого облікового запису", "deviceAssociationFailed": "Не вдалося асоціювати пристрій, спробуйте ще раз", - "scanTimeoutEnsureDeviceNearby": - "Час сканування минув, переконайтеся, що пристрій знаходиться поруч", + "scanTimeoutEnsureDeviceNearby": "Час сканування минув, переконайтеся, що пристрій знаходиться поруч", "networkError": "Помилка мережі", - "authorizationFailedCheckCode": - "Помилка авторизації, перевірте правильність коду авторизації", + "authorizationFailedCheckCode": "Помилка авторизації, перевірте правильність коду авторизації", "pairingFailedRetry": "Не вдалося спарити, спробуйте ще раз", // 配对控制器相关 @@ -1379,15 +1270,13 @@ const Map ukUA = { 'deviceDisconnected': 'Пристрій відключено', 'readyToStartPairing': 'Готово до початку спарювання', 'checkingEnvironment': 'Перевірка середовища...', - 'ensureHeadsetOnAndPairingMode': - 'Переконайтеся, що навушники увімкнені та знаходяться в режимі спарювання', + 'ensureHeadsetOnAndPairingMode': 'Переконайтеся, що навушники увімкнені та знаходяться в режимі спарювання', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', //'associatingDevice': '正在关联设备...', - 'establishingSecureConnection': 'Встановлення безпечного з\'єднання...', - 'needManualBindingAuthCode': - 'Потрібен код авторизації для ручної прив\'язки...', + 'establishingSecureConnection': 'Встановлення безпечного з\\', + 'needManualBindingAuthCode': 'Потрібен код авторизації для ручної прив\\', 'pairingSuccessful': 'Спарювання успішне!', 'enableBluetooth': 'Увімкнути Bluetooth', 'grantPermissions': 'Надати дозволи', @@ -1399,45 +1288,35 @@ const Map ukUA = { 'verificationFailedRetry': 'Перевірка не вдалася, спробуйте ще раз', 'invalidDeviceAddress': 'Недійсна адреса пристрою', 'bleDeviceAssociationFailed': 'Не вдалося асоціювати пристрій BLE', - 'deviceAssociationFailedRetry': - 'Не вдалося асоціювати пристрій, спробуйте ще раз', - 'bleConnectionTimeoutRetry': - 'Час очікування підключення BLE минув, спробуйте ще раз', + 'deviceAssociationFailedRetry': 'Не вдалося асоціювати пристрій, спробуйте ще раз', + 'bleConnectionTimeoutRetry': 'Час очікування підключення BLE минув, спробуйте ще раз', 'blePairingStartupFailed': 'Не вдалося розпочати спарювання BLE', 'bleConnectionFailed': 'Не вдалося підключитися через BLE', - 'deviceAuthorizationFailedCheckCode': - 'Помилка авторизації пристрою, перевірте код авторизації', + 'deviceAuthorizationFailedCheckCode': 'Помилка авторизації пристрою, перевірте код авторизації', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': - 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': - 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': - 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': - 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 "feedback": "Відгук користувача", 'feedbackInfo': 'Надати відгук або пропозицію', - 'feedbackDescription': - 'Будь ласка, опишіть проблему, з якою ви зіткнулися, або вашу пропозицію', + 'feedbackDescription': 'Будь ласка, опишіть проблему, з якою ви зіткнулися, або вашу пропозицію', 'feedbackHint': 'Будь ласка, введіть ваш відгук...', 'feedbackRequired': 'Будь ласка, введіть зміст відгуку', 'contactInfo': 'Контактна інформація', - 'contactHint': 'Email/Телефон, щоб ми могли з вами зв\'язатися', + 'contactHint': 'Email/Телефон, щоб ми могли з вами зв\\', 'submit': 'Надіслати', 'feedbackSubmitSuccess': 'Відгук успішно надіслано, дякуємо за ваш відгук!', - 'feedbackSubmitFailed': - 'Не вдалося надіслати відгук, спробуйте ще раз пізніше', + 'feedbackSubmitFailed': 'Не вдалося надіслати відгук, спробуйте ще раз пізніше', // OTA升级模块 - "upgradeExitConfirm": - "Наразі триває оновлення, вихід перерве процес оновлення, ви впевнені, що хочете вийти?", + "upgradeExitConfirm": "Наразі триває оновлення, вихід перерве процес оновлення, ви впевнені, що хочете вийти?", "deviceModel": "Модель пристрою", "unknownDevice": "Невідомий пристрій", "currentFirmwareVersion": "Поточна версія прошивки", @@ -1450,19 +1329,14 @@ const Map ukUA = { "retryConnection": "Повторити підключення", "ota_updateNow": "Оновити зараз", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": - "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": - "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": - "Firmware version is abnormal. Please reconnect and retry.", - "keepConnectedDontClose": - "Будь ласка, тримайте пристрій підключеним, не закривайте програму", + "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", + "keepConnectedDontClose": "Будь ласка, тримайте пристрій підключеним, не закривайте програму", "doNotDisconnect": "Будь ласка, не відключайте", "charging": "Зарядка", "updateContent": "Зміст оновлення", - "removeEarbudsEnsureBattery": - "Вийміть обидва навушники та переконайтеся, що заряд батареї в обох перевищує 20%", + "removeEarbudsEnsureBattery": "Вийміть обидва навушники та переконайтеся, що заряд батареї в обох перевищує 20%", // 音乐列表页面 "noMusic": "Немає музики", // 暂无音乐 @@ -1472,9 +1346,9 @@ const Map ukUA = { "playAll": "Відтворити все", // 播放全部 // 语言名称 - "中文(简体)": "Китайська (спрощена)", - "中文(繁体)": "Китайська (традиційна)", - "中文(香港繁体)": "Китайська (гонконгська традиційна)", + "中文(简体)": "中文(简体)", + "中文(繁体)": "中文(繁体)", + "中文(香港繁体)": "中文(香港繁体)", "英语": "Англійська", "日语": "Японська", "韩语": "Корейська", @@ -1524,10 +1398,8 @@ const Map ukUA = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": - 'Insufficient balance, please go to the corresponding recharge page to recharge.', - "recharge": 'Go to Recharge', + "insufficientBalanceDesc": "Insufficient balance, please go to the corresponding recharge page to recharge.", + "recharge": "Go to Recharge", // 会员到期提示 - "aiMemberExpiredDesc": - 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": "AI membership expired, please go to the membership recharge page to renew.", }; diff --git a/lib/core/translations/language/vi_vn.dart b/lib/core/translations/language/vi_vn.dart index 9656ae93d..c7d580a68 100644 --- a/lib/core/translations/language/vi_vn.dart +++ b/lib/core/translations/language/vi_vn.dart @@ -91,8 +91,7 @@ const Map viVN = { "tip": "Gợi ý", "pleaseEnterCompleteCode": "Vui lòng nhập đầy đủ mã xác minh", "loginFailed": "Đăng nhập thất bại, vui lòng thử lại", - 'pleaseAcceptPrivacyPolicy': - 'Vui lòng đọc và đồng ý với Chính sách bảo mật và Thỏa thuận người dùng trước', + 'pleaseAcceptPrivacyPolicy': 'Vui lòng đọc và đồng ý với Chính sách bảo mật và Thỏa thuận người dùng trước', "enterVerificationCode": "Nhập mã xác minh", "verificationCodeSentTo": "Mã xác minh đã được gửi đến", "resendVerificationCode": "Gửi lại mã xác minh", @@ -101,12 +100,11 @@ const Map viVN = { // 隐私政策弹窗 "loginDeclaration": "Tuyên bố của Voitrans", // Voitrans 声明 - "welcomeToThisApp": - "Chào mừng bạn đến với Voitrans, vui lòng đọc kỹ", // 欢迎使用Voitrans,请充分阅读 + "welcomeToThisApp": "Chào mừng bạn đến với Voitrans, vui lòng đọc kỹ", // 欢迎使用Voitrans,请充分阅读 // "privacyPolicy": "《隐私政策》", // 《隐私政策》 - 已存在,使用现有键 // "userAgreement": "《用户协议》", // 《用户协议》 - 已存在,使用现有键 "privacyPolicyText": - ", nhấn 'Đồng ý và vào' có nghĩa là bạn đã đọc kỹ và đồng ý với các thỏa thuận trên. Nhấn 'Không đồng ý' sẽ thoát khỏi ứng dụng.", // ,点击"同意并进入"表示您已充分阅读并同意上述协议。点击"不同意"将退出应用。 + ",点击'同意并进入'表示您已充分阅读并同意上述协议。点击'不同意'将退出应用。", // ,点击"同意并进入"表示您已充分阅读并同意上述协议。点击"不同意"将退出应用。 "disagree": "Không đồng ý", // 不同意 "agreeAndEnter": "Đồng ý và vào", // 同意并进入 @@ -122,11 +120,9 @@ const Map viVN = { "connectDevice": "Kết nối thiết bị", "topAiExperiences": "Trải nghiệm AI hàng đầu", "aiAssistant": "Trợ lý toàn năng AI", - "aiAssistantInfo": - "Tư vấn viên độc quyền 24/7, trả lời câu hỏi, cung cấp đề xuất", + "aiAssistantInfo": "Tư vấn viên độc quyền 24/7, trả lời câu hỏi, cung cấp đề xuất", "interpretation": "Phiên dịch đồng thời", - "simultaneousInterpretationInfo": - "Dịch thời gian thực hơn 80 ngôn ngữ, du lịch nước ngoài không lo", + "simultaneousInterpretationInfo": "Dịch thời gian thực hơn 80 ngôn ngữ, du lịch nước ngoài không lo", "aiCompanion": "Bạn đồng hành gia đình", "aiCompanionInfo": "Thấu hiểu bạn, đồng hành ấm áp", "homeSlogan": "Kết nối thế giới, vượt trên cả âm thanh", @@ -137,8 +133,7 @@ const Map viVN = { "initializing": "Đang khởi tạo...", "bluetoothInitializationFailure": "Khởi tạo dịch vụ Bluetooth thất bại", "checkingPermissions": "Đang kiểm tra quyền...", - "lackPermissions": - "Thiếu quyền Bluetooth và cần phải cấp quyền truy cập vị trí", + "lackPermissions": "Thiếu quyền Bluetooth và cần phải cấp quyền truy cập vị trí", "searchingDevice": "Đang tìm kiếm thiết bị...", "findConnectedDevice": "Đã tìm thấy thiết bị đã kết nối", "notFound": "Không tìm thấy thiết bị Bluetooth đã kết nối", @@ -181,8 +176,7 @@ const Map viVN = { "healthConsultant": "Trò chuyện AI đa chức năng", "healthConsultantInfo": "Cung cấp thêm chức năng trò chuyện AI", "conferenceAssistant": "Trợ lý hội nghị kinh doanh", - "conferenceAssistantInfo": - "Ghi lại biên bản họp thời gian thực, dịch đa ngôn ngữ", + "conferenceAssistantInfo": "Ghi lại biên bản họp thời gian thực, dịch đa ngôn ngữ", "usageStats": "Thống kê sử dụng", "usageStatsInfo": "Xem thống kê sử dụng của bạn", "scene": "Tình huống", @@ -225,8 +219,7 @@ const Map viVN = { "transcriptBytes": "Transcript Bytes", // 通知文案 "loadFailed": "Load Failed", - "statsLoadFailedTryLater": - "Statistics failed to load. Please try again later.", + "statsLoadFailedTryLater": "Statistics failed to load. Please try again later.", "cleanupComplete": "Cleanup Complete", "cleanedOldData": "Cleaned data older than 90 days", "exportFeature": "Export Feature", @@ -282,10 +275,8 @@ const Map viVN = { 'copyrightVoitrans': '© 2025 Voitrans Technologies', // 会议商品页描述 - 'meetingHeaderDesc1': - 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', - 'meetingHeaderDesc2': - 'Suitable for business meetings, class notes, and interview minutes.', + 'meetingHeaderDesc1': 'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', + 'meetingHeaderDesc2': 'Suitable for business meetings, class notes, and interview minutes.', 'meetingAutoRecording': 'Auto recording and segmentation', 'meetingSpeakerTagging': 'Speaker labeling', 'meetingLongAudioTranscription': 'Long audio transcription', @@ -294,35 +285,27 @@ const Map viVN = { 'meetingTimelineJump': 'Timeline jump', 'meetingExportSummary': 'Export minutes', 'meetingMultiPlatformShare': 'Share across platforms', - 'meetingDisclaimer': - 'Use in quiet environments; performance depends on microphone and network.', + 'meetingDisclaimer': 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'transHeaderDesc1': - 'Real-time simultaneous interpretation and text translation with low-latency voice.', + 'transHeaderDesc1': 'Real-time simultaneous interpretation and text translation with low-latency voice.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'translateZhEn': 'Chinese-English translation', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'multiLangTextTranslation': 'Multilingual text translation', - 'termOptimizationContextPreserve': - 'Terminology optimization and context preservation', + 'termOptimizationContextPreserve': 'Terminology optimization and context preservation', 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'personalVocabularyMemory': 'Personal vocabulary memory', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'colorHighContrast': 'High color contrast', - 'transDisclaimer': - 'Translation performance depends on microphone, network latency, and ambient noise.', + 'transDisclaimer': 'Translation performance depends on microphone, network latency, and ambient noise.', // AI 商品页描述 - 'aiHeaderDesc1': - 'Longer conversation quota, more tool calls, extended context length.', - 'aiHeaderDesc2': - 'Suitable for agent Q&A, summarization, analysis, and task execution.', + 'aiHeaderDesc1': 'Longer conversation quota, more tool calls, extended context length.', + 'aiHeaderDesc2': 'Suitable for agent Q&A, summarization, analysis, and task execution.', 'musicSearchPlaybackControl': 'Music library search and playback control', - 'smartPlaylistAndSimilarRecommendations': - 'Smart playlist and similar song recommendations', - 'routePlanningAndCongestionAvoidance': - 'Route planning and congestion avoidance', + 'smartPlaylistAndSimilarRecommendations': 'Smart playlist and similar song recommendations', + 'routePlanningAndCongestionAvoidance': 'Route planning and congestion avoidance', 'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'realTimeWeatherForecast': 'Real-time weather and forecast', 'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', @@ -331,10 +314,8 @@ const Map viVN = { 'hotNewsAndTopicOverview': 'Hot news and topic overview', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'helpCallAndSMS': 'Help with calls and SMS', - 'templatedMessagesAndScheduleReminders': - 'Template messages and schedule reminders', - 'aiDisclaimer': - 'Features depend on device permissions, service availability, and network conditions.', + 'templatedMessagesAndScheduleReminders': 'Template messages and schedule reminders', + 'aiDisclaimer': 'Features depend on device permissions, service availability, and network conditions.', // 会员商品页 'benefitsOverview': 'Benefits overview', @@ -349,11 +330,10 @@ const Map viVN = { 'generalPrivileges': 'General privileges', 'earlyAccessNewFeatures': 'Early access to new features', 'crossDeviceSync': 'Cross-device sync', - 'vipDisclaimer': - 'Actual benefits depend on the package details and may change with versions.', + 'vipDisclaimer': 'Actual benefits depend on the package details and may change with versions.', // 新手引导 / Onboarding - 'skip': "Bỏ qua", + 'skip': 'Bỏ qua', 'next': 'Next', 'sayLilyHint': 'Say "Lily Lily" to the mic', 'imHere': 'I’m here~', @@ -376,8 +356,7 @@ const Map viVN = { 'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavSend': 'Lily will plan the route', 'guideNavEnd': 'Navigation set—try other commands', - 'guideMeetingStart': - 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', + 'guideMeetingStart': 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingEnd': 'Reminder created—try other commands', @@ -427,8 +406,7 @@ const Map viVN = { 'downloadingFiles': 'Downloading files...', 'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadComplete': 'Download complete', - 'downloadCompleteInfo': - 'Download complete, {count} files in total, returning automatically in 2 seconds', + 'downloadCompleteInfo': 'Download complete, {count} files in total, returning automatically in 2 seconds', // Meeting模块 - 录音功能 'startRecording': 'Start Recording', @@ -436,6 +414,23 @@ const Map viVN = { 'audioVideoRecording': 'Audio/Video Recording', 'callRecording': 'Call Recording', 'importAudio': 'Import Audio', + 'meetingRecordExitTitle': 'Thoát ghi âm', // 退出录音 + 'meetingRecordExitMessage': 'Vui lòng chọn thao tác sau khi thoát', // 请选择离开后的操作 + 'meetingRecordEndAndSave': 'Kết thúc và lưu', // 结束录音并保存 + 'meetingRecordEndWithoutSave': 'Kết thúc không lưu', // 结束录音不保存 + 'meetingRecordContinueInBackground': 'Tiếp tục ghi âm trong nền', // 后台继续录音 + 'meetingRecordStopTimeout': 'Hết thời gian dừng ghi âm, vui lòng thử lại', // 结束录音超时,请重试 + 'meetingRecordStopFailed': 'Dừng ghi âm thất bại, vui lòng thử lại', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': 'Lưu ghi âm thất bại, vui lòng thử lại', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': 'Đang ghi âm', // 录音进行中 + 'meetingRecordRecordingNotificationBody': 'Đang ghi âm trong nền, nhấn để quay lại ứng dụng', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': 'Quyền cửa sổ nổi', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': + 'Để hiển thị kết quả dịch trong cuộc gọi hoặc khi dịch âm thanh/video, chúng tôi cần quyền hiển thị trên ứng dụng khác. Quyền này giúp bạn xem bản dịch theo thời gian thực khi đang dùng các ứng dụng khác.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': + 'Để hiển thị thanh nổi ghi âm (hẹn giờ/tạm dừng/tiếp tục) trong khi ghi âm, chúng tôi cần quyền hiển thị trên ứng dụng khác.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': + 'Không thể tự động mở cài đặt hệ thống. Vui lòng mở Cài đặt và bật quyền hiển thị trên ứng dụng khác theo cách thủ công.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': 'Transcribing...', 'summarizing': 'Summarizing...', 'analyzing': 'Analyzing...', @@ -483,54 +478,40 @@ const Map viVN = { 'audioImport': 'Audio Import', 'multipleExportFormats': 'Multiple Export Formats', 'professionalSummaryTemplates': 'Professional Summary Templates', - 'professionalTemplateDesc': - 'Professional template design to improve your work efficiency. Customized according to industry needs.', - 'customTemplateDesc': - 'You can customize summary prompts according to your needs and use them to generate the required summaries.', - 'askAiDesc': - 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', - 'visualMindMapDesc': - 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', - 'templateCommunityDesc': - 'Discover, share, and get inspiration from the template library created by users.', - 'speakerIdentificationDesc': - 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', - 'privateCloudSyncDesc': - 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', - 'aiVoiceEnhancementDesc': - 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', - 'audioImportDesc': - 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', - 'multipleExportFormatsDesc': - 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', + 'professionalTemplateDesc': 'Professional template design to improve your work efficiency. Customized according to industry needs.', + 'customTemplateDesc': 'You can customize summary prompts according to your needs and use them to generate the required summaries.', + 'askAiDesc': 'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', + 'visualMindMapDesc': 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', + 'templateCommunityDesc': 'Discover, share, and get inspiration from the template library created by users.', + 'speakerIdentificationDesc': 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', + 'privateCloudSyncDesc': 'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', + 'aiVoiceEnhancementDesc': 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', + 'audioImportDesc': 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', + 'multipleExportFormatsDesc': 'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', // Meeting模块 - 升级会员 'upgradeMembership': 'Upgrade Your Membership', 'yearlySubscription': 'Yearly Subscription', 'monthlySubscription': 'Monthly Subscription', 'proMonthly': 'Pro ¥60/month', - 'proMonthlyDesc': - '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', + 'proMonthlyDesc': '7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7-day Free Trial', 'unlimitedMonthly': 'Unlimited ¥120/month', - 'unlimitedMonthlyDesc': - '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', + 'unlimitedMonthlyDesc': '7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/month', 'subscribe': 'Subscribe', 'unlimitedPrice': 'Unlimited ¥198', 'unlimitedMonthlyPrice': '¥198/month', - 'upgradeNote': - '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', + 'upgradeNote': '*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', 'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'sixThousandMinutes': '6,000 minutes', 'threeThousandMinutes': '3,000 minutes', 'sixHundredMinutes': '600 minutes', 'oneHundredTwentyMinutes': '120 minutes', 'validityPeriod': '*Validity Period: ', - 'validityNote': - 'Activated immediately after purchase, valid for 2 years after activation.', + 'validityNote': 'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Purchase', // Meeting模块 - 模版和生成 @@ -542,8 +523,7 @@ const Map viVN = { 'chineseSimplified': 'Chinese Mandarin (Simplified)', 'meetingGenerateNow': 'Generate Now', 'keyEventsAnalyzed': 'Analyzed {count} key events.', - 'aiAnalysisDesc': - 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', + 'aiAnalysisDesc': 'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', // Meeting模块 - 文件操作和状态 'importing': 'Importing...', @@ -563,10 +543,9 @@ const Map viVN = { // 权限相关 - Meeting相关 'meetingStoragePermission': 'Storage', - 'meetingStoragePermissionExplanation': - 'We need access to storage permissions so you can select and upload audio files.', + 'meetingStoragePermissionExplanation': 'We need access to storage permissions so you can select and upload audio files.', 'meetingStoragePermissionPermanentDenial': - 'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', + '检测到您已永久拒绝存储权限。如需继续使用此功能,请前往应用设置中手动开启存储权限。', // Meeting模块 - 思维导图相关 'shareMindMap': 'Share Mind Map', @@ -610,19 +589,17 @@ const Map viVN = { // Meeting模块 - 发言者相关 'applyToAllParagraphs': 'Áp dụng cho tất cả đoạn của người nói này', - 'summaryWillBeUpdatedAutomatically': - 'Tóm tắt sẽ được cập nhật tự động dựa trên mẫu', + 'summaryWillBeUpdatedAutomatically': 'Tóm tắt sẽ được cập nhật tự động dựa trên mẫu', 'nameCurrentSpeaker': 'Name Current Speaker', 'recentlyUsedNames': 'Recently Used Names', 'applyToCurrentParagraph': 'Apply to Current Paragraph', 'totalTime': 'Total Time', - 'summarySpeakerWillBeUpdatedAutomatically': - 'Summary speakers will be updated automatically', + 'summarySpeakerWillBeUpdatedAutomatically': 'Summary speakers will be updated automatically', // Meeting模块 - 云端同步相关 'syncToCloud': 'Sync to Cloud', 'syncToCloudTip': - 'Automatically sync your recordings to the cloud, you can play, manage and share recordings through any VOITRANS APP or VOITRANS Web (web.voitrans.com).', + '自动将你的录音同步到云端,你可以通过任意VOITRANS APP或VOITRANS Web(web.voitrans.com)播放、管理和分享录音。', 'syncToVoitransApp': 'Sync VOITRANS APP', 'transcriptionRecord': 'Transcription Record', @@ -642,8 +619,7 @@ const Map viVN = { "cloudSync": "Chuyển đổi đồng bộ hóa đám mây", "memberService": "Member Service", "bindRewardTitle": "Rewards", - "bindRewardSimpleDesc": - "First bind device reward has been issued. Tap OK to close.", + "bindRewardSimpleDesc": "First bind device reward has been issued. Tap OK to close.", "joinDevice": "Thiết bị đã kết nối:", "accountId": "ID tài khoản:", "systemSetting": "Cài đặt hệ thống", @@ -665,11 +641,9 @@ const Map viVN = { "voiceServiceInfo": "Chọn dịch vụ nhận dạng và tổng hợp giọng nói", "selectVoiceService": "Chọn dịch vụ giọng nói", "azureVoiceService": "Dịch vụ giọng nói Azure", - "azureVoiceServiceInfo": - "Dịch vụ giọng nói đám mây của Microsoft, hỗ trợ tổng hợp và nhận dạng giọng nói chất lượng cao", + "azureVoiceServiceInfo": "Dịch vụ giọng nói đám mây của Microsoft, hỗ trợ tổng hợp và nhận dạng giọng nói chất lượng cao", "flutterVoiceService": "Dịch vụ giọng nói cục bộ Flutter", - "flutterVoiceServiceInfo": - "Dịch vụ giọng nói cục bộ trên thiết bị, có thể sử dụng mà không cần kết nối mạng", + "flutterVoiceServiceInfo": "Dịch vụ giọng nói cục bộ trên thiết bị, có thể sử dụng mà không cần kết nối mạng", 'timbreService': 'Dịch vụ âm sắc', 'timbreServiceInfo': 'Chọn dịch vụ tổng hợp giọng nói âm sắc', 'defaultTimbre': 'Âm sắc mặc định', @@ -698,8 +672,7 @@ const Map viVN = { // 设置页面 - 实时语音对话 "realtimeVoiceChat": "Trò chuyện giọng nói thời gian thực", - "realtimeVoiceChatInfo": - "Trải nghiệm chức năng tương tác giọng nói thông minh (xem trước chức năng)", + "realtimeVoiceChatInfo": "Trải nghiệm chức năng tương tác giọng nói thông minh (xem trước chức năng)", "loading": "Đang tải...", //设备管理页面 @@ -714,8 +687,7 @@ const Map viVN = { "noMacAddress": "No MAC Address", "licenseCode": "License Code", "confirmUnbind": "Confirm Unbind", - "confirmUnbindMessage": - "Are you sure you want to unbind device \"{deviceName}\"?", + "confirmUnbindMessage": "Are you sure you want to unbind device \\", "confirmUnbindAction": "Confirm Unbind", //Agent 模块 @@ -763,25 +735,20 @@ const Map viVN = { "nearbyFood": "What delicious food is nearby?", // 美食 // Agent controller - 'welcomeMessage': 'Chào bạn! Tôi là **Lily**, tôi có thể giúp bạn:\n\n' - '• Trả lời câu hỏi và cung cấp thông tin\n\n' - '• Dịch giọng nói thời gian thực\n\n' - '• Đề xuất nhạc và podcast\n\n' - '• Ghi nhớ giọng nói và nhắc nhở\n\n' - '• Điều khiển chức năng tai nghe\n\n' - 'Tôi có thể giúp gì cho bạn?', + 'welcomeMessage': '你好!我是**Lily**,我能帮你:\n\n' + '• 回答问题和提供信息\n\n' + '• 实时语音翻译\n\n' + '• 推荐音乐和播客\n\n' + '• 语音备忘录和提醒\n\n' + '• 控制耳机功能\n\n' + '有什么我可以帮你的吗?', 'microphonePermission': 'Microphone', - 'voiceRecognitionPermissionText': - 'Chức năng nhận dạng giọng nói cần truy cập microphone.', - 'voiceTranslationPermissionText': - 'Chức năng nhận dạng và dịch giọng nói cần truy cập microphone.', - 'phoneCallPermissionText': - 'Chức năng gọi điện cần truy cập microphone để thực hiện cuộc gọi thoại.', - 'permissionDeniedText': - 'Bạn đã từ chối vĩnh viễn quyền truy cập microphone, vui lòng vào cài đặt hệ thống để cấp quyền.', + 'voiceRecognitionPermissionText': 'Chức năng nhận dạng giọng nói cần truy cập microphone.', + 'voiceTranslationPermissionText': 'Chức năng nhận dạng và dịch giọng nói cần truy cập microphone.', + 'phoneCallPermissionText': 'Chức năng gọi điện cần truy cập microphone để thực hiện cuộc gọi thoại.', + 'permissionDeniedText': 'Bạn đã từ chối vĩnh viễn quyền truy cập microphone, vui lòng vào cài đặt hệ thống để cấp quyền.', 'startVoiceInput': 'Bắt đầu nhập liệu bằng giọng nói', - 'startPhoneCallMode': - 'Bắt đầu chế độ gọi điện, bắt đầu nhập liệu bằng giọng nói', + 'startPhoneCallMode': 'Bắt đầu chế độ gọi điện, bắt đầu nhập liệu bằng giọng nói', // Agent 全屏编辑器 'fullScreenEditorHint': 'Nhập tin nhắn của bạn ở đây...', // 全屏编辑器输入提示 @@ -802,8 +769,7 @@ const Map viVN = { 'privacyRelated': 'Liên quan đến quyền riêng tư', 'copyrightViolation': 'Vi phạm bản quyền, danh dự của tôi, v.v.', 'other': 'Khác', - 'reportDescriptionHint': - 'Chúng tôi muốn biết lý do bạn báo cáo, bạn có thể mô tả vấn đề bạn gặp phải.', + 'reportDescriptionHint': 'Chúng tôi muốn biết lý do bạn báo cáo, bạn có thể mô tả vấn đề bạn gặp phải.', //'submit': '提交', //Message_bubble @@ -834,23 +800,15 @@ const Map viVN = { 'highest': 'Cao nhất', 'lowest': 'Thấp nhất', 'futureForecast': 'Dự báo tương lai', - 'hotWeatherTip': - 'Hôm nay trời nóng, chú ý chống nóng, uống nhiều nước để tránh say nắng', - 'coldWeatherTip': - 'Hôm nay nhiệt độ thấp, ra ngoài chú ý giữ ấm, cẩn thận cảm lạnh', - 'rainyWeatherTip': - 'Hôm nay có mưa, ra ngoài nhớ mang theo ô, chú ý an toàn khi đi lại', - 'snowyWeatherTip': - 'Hôm nay có tuyết, đường trơn trượt chú ý an toàn, giữ ấm cơ thể', - 'foggyWeatherTip': - 'Hôm nay có sương mù, tầm nhìn thấp, ra ngoài nhớ đeo khẩu trang', - 'windyWeatherTip': - 'Hôm nay gió lớn, ra ngoài chú ý an toàn, buộc chặt đồ đạc', + 'hotWeatherTip': 'Hôm nay trời nóng, chú ý chống nóng, uống nhiều nước để tránh say nắng', + 'coldWeatherTip': 'Hôm nay nhiệt độ thấp, ra ngoài chú ý giữ ấm, cẩn thận cảm lạnh', + 'rainyWeatherTip': 'Hôm nay có mưa, ra ngoài nhớ mang theo ô, chú ý an toàn khi đi lại', + 'snowyWeatherTip': 'Hôm nay có tuyết, đường trơn trượt chú ý an toàn, giữ ấm cơ thể', + 'foggyWeatherTip': 'Hôm nay có sương mù, tầm nhìn thấp, ra ngoài nhớ đeo khẩu trang', + 'windyWeatherTip': 'Hôm nay gió lớn, ra ngoài chú ý an toàn, buộc chặt đồ đạc', 'sunnyWeatherTip': 'Hôm nay nắng đẹp, tia UV mạnh, ra ngoài nhớ chống nắng', - 'temperatureDifferenceTip': - 'Hôm nay chênh lệch nhiệt độ ngày đêm lớn, chú ý thêm bớt quần áo cho phù hợp', - 'comfortableWeatherTip': - 'Hôm nay thời tiết dễ chịu, là thời điểm tốt để hoạt động ngoài trời', + 'temperatureDifferenceTip': 'Hôm nay chênh lệch nhiệt độ ngày đêm lớn, chú ý thêm bớt quần áo cho phù hợp', + 'comfortableWeatherTip': 'Hôm nay thời tiết dễ chịu, là thời điểm tốt để hoạt động ngoài trời', "monday": "Thứ 2", "tuesday": "Thứ 3", "wednesday": "Thứ 4", @@ -900,29 +858,23 @@ const Map viVN = { "notSet": "Chưa đặt", "accountSetting": "Cài đặt tài khoản", "logout": "Đăng xuất", - "logoutTips": - "Bạn có chắc chắn muốn đăng xuất khỏi tài khoản hiện tại không?", + "logoutTips": "Bạn có chắc chắn muốn đăng xuất khỏi tài khoản hiện tại không?", 'deleteAccount': 'Xóa tài khoản', - 'deleteAccountTips': - 'Bạn có chắc chắn muốn xóa vĩnh viễn tài khoản của mình không? Thao tác này không thể hoàn tác', + 'deleteAccountTips': 'Bạn có chắc chắn muốn xóa vĩnh viễn tài khoản của mình không? Thao tác này không thể hoàn tác', 'clean': 'Clear Cache', 'cleanTips': 'Are you sure you want to clear personal cache?', // Profile 错误信息 - 'networkConnectionFailed': - 'Kết nối mạng thất bại, vui lòng kiểm tra cài đặt mạng và thử lại', - 'serverTemporarilyUnavailable': - 'Máy chủ tạm thời không khả dụng, vui lòng thử lại sau', + 'networkConnectionFailed': 'Kết nối mạng thất bại, vui lòng kiểm tra cài đặt mạng và thử lại', + 'serverTemporarilyUnavailable': 'Máy chủ tạm thời không khả dụng, vui lòng thử lại sau', 'loginExpiredPleaseRelogin': 'Đăng nhập đã hết hạn, vui lòng đăng nhập lại', 'noPermissionForThisOperation': 'Không có quyền thực hiện thao tác này', 'requestedResourceNotFound': 'Không tìm thấy tài nguyên được yêu cầu', - 'imageProcessingFailedPleaseReselect': - 'Xử lý hình ảnh thất bại, vui lòng chọn lại hình ảnh', + 'imageProcessingFailedPleaseReselect': 'Xử lý hình ảnh thất bại, vui lòng chọn lại hình ảnh', 'operationFailedPleaseRetry': 'Thao tác thất bại, vui lòng thử lại', 'serverReturnedError': 'Máy chủ trả về lỗi', 'serverError': 'Lỗi máy chủ', - 'networkConnectionFailedCheckSettings': - 'Kết nối mạng thất bại, vui lòng kiểm tra cài đặt mạng', + 'networkConnectionFailedCheckSettings': 'Kết nối mạng thất bại, vui lòng kiểm tra cài đặt mạng', 'serverInternalErrorRetryLater': 'Lỗi nội bộ máy chủ, vui lòng thử lại sau', // Profile 用户交互 @@ -945,13 +897,10 @@ const Map viVN = { 'thirdPartyLogoutSuccess': 'Đăng xuất bên thứ ba thành công', // 第三方登录退出成功 'thirdPartyLogoutFailed': 'Đăng xuất bên thứ ba thất bại', // 第三方登录退出失败 'signOutProcessError': 'Đã xảy ra lỗi trong quá trình đăng xuất', // 登出过程发生错误 - 'deleteAccountProcessError': - 'Đã xảy ra lỗi trong quá trình xóa tài khoản', // 删除账号过程发生错误 + 'deleteAccountProcessError': 'Đã xảy ra lỗi trong quá trình xóa tài khoản', // 删除账号过程发生错误 'userDataClearSuccess': 'Xóa dữ liệu người dùng thành công', // 用户数据清理成功 - 'allUserDataClearSuccess': - 'Tất cả dữ liệu người dùng đã được xóa thành công', // 所有用户数据清理成功 - 'accountServiceInitialized': - 'AccountService đã được khởi tạo', // AccountService 已初始化 + 'allUserDataClearSuccess': 'Tất cả dữ liệu người dùng đã được xóa thành công', // 所有用户数据清理成功 + 'accountServiceInitialized': 'AccountService đã được khởi tạo', // AccountService 已初始化 // 权限管理页面 'getPermissionStatusFailed': 'Lấy trạng thái quyền thất bại', @@ -974,11 +923,9 @@ const Map viVN = { 'locationInfo': 'Thông tin vị trí', 'phonePermissionDesc': 'Dùng cho chức năng gọi điện thoại', 'smsPermissionDesc': 'Dùng cho chức năng gửi SMS', - 'alarmPermissionDesc': - 'Used to set exact alarms to ensure reminders trigger on time', + 'alarmPermissionDesc': 'Used to set exact alarms to ensure reminders trigger on time', 'calendarWritePermissionDesc': 'Dùng để tạo sự kiện và lời nhắc trên lịch', - 'calendarFullAccessPermissionDesc': - 'Dùng để đọc và quản lý các sự kiện và lời nhắc trên lịch', + 'calendarFullAccessPermissionDesc': 'Dùng để đọc và quản lý các sự kiện và lời nhắc trên lịch', 'locationPermissionDesc': 'Dùng để lấy thông tin vị trí hiện tại', 'appFunctionNeeds': 'Chức năng ứng dụng cần', 'authorized': 'Đã cấp quyền', @@ -988,81 +935,55 @@ const Map viVN = { 'unknownStatus': 'Trạng thái không xác định', 'permissionGranted': 'Quyền đã được cấp', 'permissionRequestError': 'Lỗi khi yêu cầu quyền', - 'phonePermissionDetailDesc': - 'Chức năng gọi điện cần quyền truy cập điện thoại', + 'phonePermissionDetailDesc': 'Chức năng gọi điện cần quyền truy cập điện thoại', 'smsPermissionDetailDesc': 'Chức năng gửi SMS cần quyền truy cập SMS', - 'alarmPermissionDetailDesc': - 'This permission is required to set exact alarms and ensure reminders trigger on time', - 'calendarWritePermissionDetailDesc': - 'Tạo sự kiện lịch cần quyền ghi vào lịch', - 'calendarFullAccessPermissionDetailDesc': - 'Quản lý sự kiện lịch cần quyền truy cập lịch đầy đủ', - 'locationPermissionDetailDesc': - 'Lấy thông tin vị trí cần quyền truy cập vị trí', + 'alarmPermissionDetailDesc': 'This permission is required to set exact alarms and ensure reminders trigger on time', + 'calendarWritePermissionDetailDesc': 'Tạo sự kiện lịch cần quyền ghi vào lịch', + 'calendarFullAccessPermissionDetailDesc': 'Quản lý sự kiện lịch cần quyền truy cập lịch đầy đủ', + 'locationPermissionDetailDesc': 'Lấy thông tin vị trí cần quyền truy cập vị trí', 'contactsPermissionDesc': 'Used for accessing contact information', - 'contactsPermissionDetailDesc': - 'Phone call and SMS functionality requires contacts permission to select contacts', - 'bluetoothPermissionDesc': - 'Used for connecting and managing Bluetooth devices', - 'bluetoothPermissionDetailDesc': - 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', + 'contactsPermissionDetailDesc': 'Phone call and SMS functionality requires contacts permission to select contacts', + 'bluetoothPermissionDesc': 'Used for connecting and managing Bluetooth devices', + 'bluetoothPermissionDetailDesc': 'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', - 'bluetoothScanPermissionDetailDesc': - 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', + 'bluetoothScanPermissionDetailDesc': 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', - 'bluetoothConnectPermissionDetailDesc': - 'Connecting to Bluetooth devices requires Bluetooth connect permission', + 'bluetoothConnectPermissionDetailDesc': 'Connecting to Bluetooth devices requires Bluetooth connect permission', 'notificationPermissionDesc': 'Used for sending notification messages', - 'notificationPermissionDetailDesc': - 'App needs notification permission to send you important alerts and messages', - 'appNeedsPermissionForFullFunction': - 'Ứng dụng cần quyền này để cung cấp đầy đủ chức năng', - 'permanentDenialText': - 'Bạn đã từ chối vĩnh viễn quyền {permission}, vui lòng vào cài đặt ứng dụng để bật', + 'notificationPermissionDetailDesc': 'App needs notification permission to send you important alerts and messages', + 'appNeedsPermissionForFullFunction': 'Ứng dụng cần quyền này để cung cấp đầy đủ chức năng', + 'permanentDenialText': 'Bạn đã từ chối vĩnh viễn quyền {permission}, vui lòng vào cài đặt ứng dụng để bật', 'goToSettings': 'Đi đến cài đặt', // 权限申请 'bluetoothScan': 'Bluetooth Scan', 'bluetoothConnect': 'Bluetooth Connect', - 'bluetoothScanExplanation': - 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', - 'bluetoothConnectExplanation': - 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', - 'locationForBluetoothExplanation': - 'The app needs location permission to scan Bluetooth devices.', - 'bluetoothScanPermanentDenial': - 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', - 'bluetoothConnectPermanentDenial': - 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', - 'locationPermanentDenial': - 'Location permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothScanExplanation': 'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', + 'bluetoothConnectExplanation': 'The app needs Bluetooth connect permission to connect to Bluetooth devices.', + 'locationForBluetoothExplanation': 'The app needs location permission to scan Bluetooth devices.', + 'bluetoothScanPermanentDenial': 'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', + 'bluetoothConnectPermanentDenial': 'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', + 'locationPermanentDenial': 'Location permission has been permanently denied, please go to settings to enable it manually.', 'notificationPermission': 'Notification', 'locationPermission': 'Location', - 'notificationPermissionExplanation': - 'Notification permission is required to display music playback status.', - 'locationPermissionExplanation': - 'Location permission is required to get current location.', - 'notificationPermissionPermanentDenial': - 'You have permanently denied notification permission, please go to settings to enable it.', - 'locationPermissionPermanentDenial': - 'You have permanently denied location permission, please go to settings to enable it.', + 'notificationPermissionExplanation': 'Notification permission is required to display music playback status.', + 'locationPermissionExplanation': 'Location permission is required to get current location.', + 'notificationPermissionPermanentDenial': 'You have permanently denied notification permission, please go to settings to enable it.', + 'locationPermissionPermanentDenial': 'You have permanently denied location permission, please go to settings to enable it.', //'microphonePermission': '录音', 'storagePermission': 'Storage', - 'microphonePermissionExplanation': - 'We need microphone permission to record audio content.', - 'storagePermissionExplanation': - 'We need storage permission so you can select and upload audio files.', + 'microphonePermissionExplanation': 'We need microphone permission to record audio content.', + 'storagePermissionExplanation': 'We need storage permission so you can select and upload audio files.', 'microphonePermissionPermanentDenial': - 'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', + '检测到您已永久拒绝录音权限。如需继续使用此功能,请前往应用设置中手动开启麦克风权限。', 'storagePermissionPermanentDenial': - 'Storage permission has been permanently denied. To continue using this feature, please go to app settings to manually enable storage permission.', + '检测到您已永久拒绝存储权限。如需继续使用此功能,请前往应用设置中手动开启存储权限。', //permission_util.dart 'permissionUtilNeed': 'Need ', 'permissionUtilPermission': ' Permission', 'permissionUtilRestricted': ' Permission Restricted', - 'permissionUtilRestrictedMessage': - 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', + 'permissionUtilRestrictedMessage': 'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'permissionUtilConfirm': 'OK', // 版本更新对话框 @@ -1071,10 +992,8 @@ const Map viVN = { 'updateNow': 'Cập nhật ngay', // 立即更新按钮 'checkUpdate': 'Kiểm tra cập nhật', // 检查更新按钮 'updateFailed': 'Cập nhật thất bại', // 更新失败提示 - 'cannotOpenAppStore': - 'Không thể mở App Store, vui lòng vào App Store để cập nhật thủ công', // 无法打开应用商店提示 - 'updateErrorRetry': - 'Đã xảy ra lỗi trong quá trình cập nhật, vui lòng thử lại sau', // 更新错误重试提示 + 'cannotOpenAppStore': 'Không thể mở App Store, vui lòng vào App Store để cập nhật thủ công', // 无法打开应用商店提示 + 'updateErrorRetry': 'Đã xảy ra lỗi trong quá trình cập nhật, vui lòng thử lại sau', // 更新错误重试提示 //国家列表 "邮箱": "Email", @@ -1210,8 +1129,7 @@ const Map viVN = { "selectTargetLanguage": "Chọn ngôn ngữ đích", "me": "Me", "counterPart": "Counterpart", - "bluetoothCallStateError": - "Please make sure the Bluetooth headset is connected to the phone and in a call state", + "bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state", // 通用对话按钮与选项(用于统一语言选择弹窗等) // 以下翻译键的中文文本内容如注释所示 @@ -1227,12 +1145,10 @@ const Map viVN = { "historyRecords": "History Records", "clearResults": "Clear Results", "clearHistory": "Xóa lịch sử", - "clearHistoryConfirm": - "Bạn có chắc muốn xóa toàn bộ lịch sử dịch không? Thao tác này không thể hoàn tác.", + "clearHistoryConfirm": "Bạn có chắc muốn xóa toàn bộ lịch sử dịch không? Thao tác này không thể hoàn tác.", "unknownLanguage": "Ngôn ngữ không xác định", "deleteSessionRecord": "Xóa bản ghi phiên", - "deleteSessionConfirm": - "Bạn có chắc muốn xóa tất cả các bản ghi dịch của phiên này không? Thao tác này không thể hoàn tác.", + "deleteSessionConfirm": "Bạn có chắc muốn xóa tất cả các bản ghi dịch của phiên này không? Thao tác này không thể hoàn tác.", // 图片翻译模块(Picture Translation) "selectImageSource": "Select Image Source", @@ -1264,20 +1180,15 @@ const Map viVN = { "translationCompleted": "Translation Completed", "allStepsCompleted": "All steps completed", "processingFailed": "Processing Failed", - "imageProcessingOrTranslationFailed": - "Image processing or translation failed. Please retry.\nError: {error}", + "imageProcessingOrTranslationFailed": "Image processing or translation failed. Please retry.\nError: {error}", "imageTooLarge": "Image size exceeds 4MB limit", - "imageTooLargeHint": - "Image size exceeds 4MB. Reduce quality or dimensions and retry", + "imageTooLargeHint": "Image size exceeds 4MB. Reduce quality or dimensions and retry", "emptyTranslationResult": "Image translation API returned empty result", - "imageTranslationFailedTryLater": - "Image translation failed. Network issue or rate limit. Please try later", - "imageTranslationApiException": - "Image translation API exception. Check network and retry", + "imageTranslationFailedTryLater": "Image translation failed. Network issue or rate limit. Please try later", + "imageTranslationApiException": "Image translation API exception. Check network and retry", "permissionRequired": "Permission Required", "cameraPermissionRequired": "Camera permission required to take photos", - "photoAlbumPermissionRequired": - "Photo album permission required to pick images", + "photoAlbumPermissionRequired": "Photo album permission required to pick images", "translationDetails": "Translation Details", "originalImage": "Original Image", "sourceLanguage": "Source Language", @@ -1308,11 +1219,9 @@ const Map viVN = { "summaryGenerated": "Đã tạo tóm tắt", "generating": "Đang tạo...", "regenerate": "Tạo lại", - "summaryTimeoutMessage": - "Yêu cầu tạo tóm tắt đã hết thời gian, có thể do sự cố mạng hoặc máy chủ bận.", + "summaryTimeoutMessage": "Yêu cầu tạo tóm tắt đã hết thời gian, có thể do sự cố mạng hoặc máy chủ bận.", "deleteTranslationRecord": "Xóa bản ghi dịch", - "deleteTranslationConfirm": - "Bạn có chắc muốn xóa bản ghi dịch này không? Thao tác này không thể hoàn tác.", + "deleteTranslationConfirm": "Bạn có chắc muốn xóa bản ghi dịch này không? Thao tác này không thể hoàn tác.", "originalText": "Văn bản gốc", "translatedText": "Văn bản dịch", "sessionSummary": "Tóm tắt phiên", @@ -1340,25 +1249,19 @@ const Map viVN = { // 配对状态文本 "readyToPair": "Sẵn sàng để ghép nối", "preparingPairingEnvironment": "Đang chuẩn bị môi trường ghép nối...", - "connectDeepSoundViaSystemBluetooth": - "Vui lòng kết nối với thiết bị Voitrans qua Bluetooth hệ thống trước", + "connectDeepSoundViaSystemBluetooth": "Vui lòng kết nối với thiết bị Voitrans qua Bluetooth hệ thống trước", "deviceBindingConfirm": "Xác nhận liên kết thiết bị...", "establishingDeviceAssociation": "Đang thiết lập liên kết thiết bị...", "waitingCompletePairing": "Vui lòng đợi, đang hoàn tất ghép nối...", - "pairingSuccessRedirecting": - "Ghép nối thành công! Sắp chuyển hướng đến trang chủ...", + "pairingSuccessRedirecting": "Ghép nối thành công! Sắp chuyển hướng đến trang chủ...", // 配对错误状态文本 - "ensureConnectedDeepSoundDevice": - "Vui lòng đảm bảo bạn đang kết nối với thiết bị Voitrans", - "deviceAlreadyBoundToOtherAccount": - "Thiết bị này đã được liên kết với tài khoản khác", + "ensureConnectedDeepSoundDevice": "Vui lòng đảm bảo bạn đang kết nối với thiết bị Voitrans", + "deviceAlreadyBoundToOtherAccount": "Thiết bị này đã được liên kết với tài khoản khác", "deviceAssociationFailed": "Liên kết thiết bị thất bại, vui lòng thử lại", - "scanTimeoutEnsureDeviceNearby": - "Quét hết thời gian, vui lòng đảm bảo thiết bị ở gần", + "scanTimeoutEnsureDeviceNearby": "Quét hết thời gian, vui lòng đảm bảo thiết bị ở gần", "networkError": "Lỗi mạng", - "authorizationFailedCheckCode": - "Ủy quyền thất bại, vui lòng kiểm tra xem mã ủy quyền có đúng không", + "authorizationFailedCheckCode": "Ủy quyền thất bại, vui lòng kiểm tra xem mã ủy quyền có đúng không", "pairingFailedRetry": "Ghép nối thất bại, vui lòng thử lại", // 配对控制器相关 @@ -1367,8 +1270,7 @@ const Map viVN = { 'deviceDisconnected': 'Thiết bị đã ngắt kết nối', 'readyToStartPairing': 'Sẵn sàng bắt đầu ghép nối', 'checkingEnvironment': 'Đang kiểm tra môi trường...', - 'ensureHeadsetOnAndPairingMode': - 'Vui lòng đảm bảo tai nghe đã bật và ở chế độ ghép nối', + 'ensureHeadsetOnAndPairingMode': 'Vui lòng đảm bảo tai nghe đã bật và ở chế độ ghép nối', //'goToBluetoothSettings': '前往蓝牙设置', //'verifyingDevice': '正在验证设备...', //'confirmBinding': '确认绑定', @@ -1386,25 +1288,19 @@ const Map viVN = { 'verificationFailedRetry': 'Xác minh thất bại, vui lòng thử lại', 'invalidDeviceAddress': 'Địa chỉ thiết bị không hợp lệ', 'bleDeviceAssociationFailed': 'Liên kết thiết bị BLE thất bại', - 'deviceAssociationFailedRetry': - 'Liên kết thiết bị thất bại, vui lòng thử lại', + 'deviceAssociationFailedRetry': 'Liên kết thiết bị thất bại, vui lòng thử lại', 'bleConnectionTimeoutRetry': 'Kết nối BLE hết thời gian, vui lòng thử lại', 'blePairingStartupFailed': 'Khởi động ghép nối BLE thất bại', 'bleConnectionFailed': 'Kết nối BLE thất bại', - 'deviceAuthorizationFailedCheckCode': - 'Ủy quyền thiết bị thất bại, vui lòng kiểm tra mã ủy quyền', + 'deviceAuthorizationFailedCheckCode': 'Ủy quyền thiết bị thất bại, vui lòng kiểm tra mã ủy quyền', ///iOS蓝牙引导窗 'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: - 'bluetoothGuideStep1': - 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 - 'bluetoothGuideStep2': - 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 - 'bluetoothGuideStep3': - 'Return to app to continue pairing process', // 返回应用继续配对流程 - 'bluetoothGuideTip': - 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 + 'bluetoothGuideStep1': 'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 + 'bluetoothGuideStep2': 'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 + 'bluetoothGuideStep3': 'Return to app to continue pairing process', // 返回应用继续配对流程 + 'bluetoothGuideTip': 'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'iKnow': 'I Know', // 我知道了 //用户反馈页 @@ -1420,8 +1316,7 @@ const Map viVN = { 'feedbackSubmitFailed': 'Gửi phản hồi thất bại, vui lòng thử lại sau', // OTA升级模块 - "upgradeExitConfirm": - "Đang nâng cấp, thoát sẽ làm gián đoạn quá trình nâng cấp, bạn có chắc chắn muốn thoát không?", + "upgradeExitConfirm": "Đang nâng cấp, thoát sẽ làm gián đoạn quá trình nâng cấp, bạn có chắc chắn muốn thoát không?", "deviceModel": "Kiểu máy", "unknownDevice": "Thiết bị không xác định", "currentFirmwareVersion": "Phiên bản firmware hiện tại", @@ -1434,19 +1329,14 @@ const Map viVN = { "retryConnection": "Thử kết nối lại", "ota_updateNow": "Cập nhật ngay", "otaVersionInfoFailed": "Failed to get version info. Please try again later.", - "otaDeviceInfoUnavailable": - "Unable to get device info. Please check the connection and retry.", - "otaProductInfoUnavailable": - "Unable to identify the device. Please reconnect and retry.", - "otaFirmwareVersionInvalid": - "Firmware version is abnormal. Please reconnect and retry.", - "keepConnectedDontClose": - "Vui lòng giữ thiết bị kết nối, không đóng ứng dụng", + "otaDeviceInfoUnavailable": "Unable to get device info. Please check the connection and retry.", + "otaProductInfoUnavailable": "Unable to identify the device. Please reconnect and retry.", + "otaFirmwareVersionInvalid": "Firmware version is abnormal. Please reconnect and retry.", + "keepConnectedDontClose": "Vui lòng giữ thiết bị kết nối, không đóng ứng dụng", "doNotDisconnect": "Vui lòng không ngắt kết nối", "charging": "Đang sạc", "updateContent": "Nội dung cập nhật", - "removeEarbudsEnsureBattery": - "Lấy cả hai tai nghe ra và đảm bảo pin của cả hai đều trên 20%", + "removeEarbudsEnsureBattery": "Lấy cả hai tai nghe ra và đảm bảo pin của cả hai đều trên 20%", // 音乐列表页面 "noMusic": "Không có nhạc", // 暂无音乐 @@ -1456,9 +1346,9 @@ const Map viVN = { "playAll": "Phát tất cả", // 播放全部 // 语言名称 - "中文(简体)": "Tiếng Trung (Giản thể)", - "中文(繁体)": "Tiếng Trung (Phồn thể)", - "中文(香港繁体)": "Tiếng Trung (Hồng Kông Phồn thể)", + "中文(简体)": "中文(简体)", + "中文(繁体)": "中文(繁体)", + "中文(香港繁体)": "中文(香港繁体)", "英语": "Tiếng Anh", "日语": "Tiếng Nhật", "韩语": "Tiếng Hàn", @@ -1508,10 +1398,8 @@ const Map viVN = { "insufficientIntegral": "Insufficient integral", //余额不足弹窗 - "insufficientBalanceDesc": - 'Insufficient balance, please go to the corresponding recharge page to recharge.', - "recharge": 'Go to Recharge', + "insufficientBalanceDesc": "Insufficient balance, please go to the corresponding recharge page to recharge.", + "recharge": "Go to Recharge", // 会员到期提示 - "aiMemberExpiredDesc": - 'AI membership expired, please go to the membership recharge page to renew.', + "aiMemberExpiredDesc": "AI membership expired, please go to the membership recharge page to renew.", }; diff --git a/lib/core/translations/language/zh_hk.dart b/lib/core/translations/language/zh_hk.dart index 0cb58cd3e..3629577cf 100644 --- a/lib/core/translations/language/zh_hk.dart +++ b/lib/core/translations/language/zh_hk.dart @@ -415,6 +415,23 @@ const Map zhHK = { 'audioVideoRecording': '音訊、影片錄音', 'callRecording': '通話錄音', 'importAudio': '導入音訊', + 'meetingRecordExitTitle': '退出錄音', // 退出录音 + 'meetingRecordExitMessage': '請選擇離開後的操作', // 请选择离开后的操作 + 'meetingRecordEndAndSave': '結束錄音並保存', // 结束录音并保存 + 'meetingRecordEndWithoutSave': '結束錄音不保存', // 结束录音不保存 + 'meetingRecordContinueInBackground': '後台繼續錄音', // 后台继续录音 + 'meetingRecordStopTimeout': '結束錄音超時,請重試', // 结束录音超时,请重试 + 'meetingRecordStopFailed': '結束錄音失敗,請重試', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': '保存錄音失敗,請重試', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': '錄音進行中', // 录音进行中 + 'meetingRecordRecordingNotificationBody': '正在後台錄音,點擊返回應用', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': '懸浮窗權限', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': + '為了在通話或音訊影片翻譯時顯示翻譯結果,需要懸浮窗權限。這樣您就可以在使用其他應用時看到實時翻譯。', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': + '為了在錄音過程中顯示錄音懸浮條(計時/暫停/繼續),需要懸浮窗權限。', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': + '無法自動跳轉到系統設定,請手動前往系統設定開啟懸浮窗權限。', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': '正在轉寫...', 'summarizing': '正在總結...', 'analyzing': '正在分析...', diff --git a/lib/core/translations/language/zh_tw.dart b/lib/core/translations/language/zh_tw.dart index 10be5f74c..47967b8ab 100644 --- a/lib/core/translations/language/zh_tw.dart +++ b/lib/core/translations/language/zh_tw.dart @@ -415,6 +415,23 @@ const Map zhTW = { 'audioVideoRecording': '音訊、影片錄音', 'callRecording': '通話錄音', 'importAudio': '導入音訊', + 'meetingRecordExitTitle': '退出錄音', // 退出录音 + 'meetingRecordExitMessage': '請選擇離開後的操作', // 请选择离开后的操作 + 'meetingRecordEndAndSave': '結束錄音並保存', // 结束录音并保存 + 'meetingRecordEndWithoutSave': '結束錄音不保存', // 结束录音不保存 + 'meetingRecordContinueInBackground': '後台繼續錄音', // 后台继续录音 + 'meetingRecordStopTimeout': '結束錄音逾時,請重試', // 结束录音超时,请重试 + 'meetingRecordStopFailed': '結束錄音失敗,請重試', // 结束录音失败,请重试 + 'meetingRecordSaveFailed': '保存錄音失敗,請重試', // 保存录音失败,请重试 + 'meetingRecordRecordingNotificationTitle': '錄音進行中', // 录音进行中 + 'meetingRecordRecordingNotificationBody': '正在後台錄音,點擊返回應用', // 正在后台录音,点击返回应用 + 'overlayPermissionTitle': '懸浮窗權限', // 悬浮窗权限 + 'overlayPermissionTranslationDesc': + '為了在通話或音訊影片翻譯時顯示翻譯結果,需要懸浮窗權限。這樣您就可以在使用其他應用時看到實時翻譯。', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 + 'overlayPermissionRecordingDesc': + '為了在錄音過程中顯示錄音懸浮條(計時/暫停/繼續),需要懸浮窗權限。', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 + 'overlayPermissionOpenSettingsFailed': + '無法自動跳轉到系統設定,請手動前往系統設定開啟懸浮窗權限。', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'transcribing': '正在轉寫...', 'summarizing': '正在總結...', 'analyzing': '正在分析...',