Browse Source

Merge branch 'new_dev' of https://github.com/deepcloud2048/deep_voice into new_dev

newdev_shunjiawei
liwei1dao 8 months ago
parent
commit
9cdcfcedbf
  1. 2
      lib/core/translations/language/ar_sa.dart
  2. 2
      lib/core/translations/language/bg_bg.dart
  3. 2
      lib/core/translations/language/cs_cz.dart
  4. 2
      lib/core/translations/language/da_dk.dart
  5. 2
      lib/core/translations/language/de_de.dart
  6. 2
      lib/core/translations/language/el_gr.dart
  7. 2
      lib/core/translations/language/en_us.dart
  8. 2
      lib/core/translations/language/es_es.dart
  9. 23
      lib/core/translations/language/et_ee.dart
  10. 26
      lib/core/translations/language/fa_ir.dart
  11. 2
      lib/core/translations/language/fi_fi.dart
  12. 32
      lib/core/translations/language/fr_fr.dart
  13. 2
      lib/core/translations/language/hi_in.dart
  14. 2
      lib/core/translations/language/hr_hr.dart
  15. 2
      lib/core/translations/language/hu_hu.dart
  16. 2
      lib/core/translations/language/id_id.dart
  17. 29
      lib/core/translations/language/is_is.dart
  18. 2
      lib/core/translations/language/it_it.dart
  19. 1
      lib/core/translations/language/ja_jp.dart
  20. 2
      lib/core/translations/language/ko_kr.dart
  21. 2
      lib/core/translations/language/lt_lt.dart
  22. 2
      lib/core/translations/language/lv_lv.dart
  23. 2
      lib/core/translations/language/ms_my.dart
  24. 2
      lib/core/translations/language/nb_no.dart
  25. 2
      lib/core/translations/language/nl_nl.dart
  26. 2
      lib/core/translations/language/pl_pl.dart
  27. 2
      lib/core/translations/language/pt_pt.dart
  28. 2
      lib/core/translations/language/ro_ro.dart
  29. 2
      lib/core/translations/language/ru_ru.dart
  30. 2
      lib/core/translations/language/sk_sk.dart
  31. 2
      lib/core/translations/language/sl_si.dart
  32. 437
      lib/core/translations/language/sr_rs.dart
  33. 2
      lib/core/translations/language/sv_se.dart
  34. 2
      lib/core/translations/language/th_th.dart
  35. 2
      lib/core/translations/language/tl_ph.dart
  36. 2
      lib/core/translations/language/tr_tr.dart
  37. 2
      lib/core/translations/language/uk_ua.dart
  38. 2
      lib/core/translations/language/vi_vn.dart
  39. 1
      lib/core/translations/language/zh_cn.dart
  40. 1
      lib/core/translations/language/zh_hk.dart
  41. 1
      lib/core/translations/language/zh_tw.dart
  42. 10
      lib/modules/translation/controllers/translation_controller.dart

2
lib/core/translations/language/ar_sa.dart

@ -16,6 +16,8 @@ const Map<String, String> arSA = {
"requestTimeout": "انتهت مهلة الطلب",
"responseTimeout": "انتهت مهلة الاستجابة",
"unknownError": "خطأ غير معروف",
"asrConnectionFailed":
"فشل الاتصال بخدمة التعرف على الصوت. يرجى التحقق من الشبكة والمحاولة مرة أخرى لاحقًا.",
// 启动页
"slogan": "تواصل مع العالم، أبعد من مجرد صوت",

2
lib/core/translations/language/bg_bg.dart

@ -16,6 +16,8 @@ const Map<String, String> bgBG = {
"requestTimeout": "Изтичане на времето за заявката",
"responseTimeout": "Изтичане на времето за отговор",
"unknownError": "Неизвестна грешка",
"asrConnectionFailed":
"Неуспешно свързване с услугата за разпознаване на реч. Проверете мрежата или опитайте отново по-късно.",
// 启动页
"slogan": "Свързвайки света, отвъд звука",

2
lib/core/translations/language/cs_cz.dart

@ -16,6 +16,8 @@ const Map<String, String> csCZ = {
"requestTimeout": "Vypršel časový limit požadavku",
"responseTimeout": "Vypršel časový limit odpovědi",
"unknownError": "Neznámá chyba",
"asrConnectionFailed":
"Připojení ke službě rozpoznávání řeči selhalo. Zkontrolujte síť nebo to zkuste znovu později.",
// 启动页
"slogan": "Spojujeme svět, za hranice zvuku",

2
lib/core/translations/language/da_dk.dart

@ -16,6 +16,8 @@ const Map<String, String> daDK = {
"requestTimeout": "Anmodning timeout",
"responseTimeout": "Svar timeout",
"unknownError": "Ukendt fejl",
"asrConnectionFailed":
"Forbindelsen til talegenkendelsestjenesten mislykkedes. Kontroller netværket, eller prøv igen senere.",
// 启动页
"slogan": "Forbind verden, ud over lyd",

2
lib/core/translations/language/de_de.dart

@ -16,6 +16,8 @@ const Map<String, String> deDE = {
"requestTimeout": "Anfragezeitüberschreitung",
"responseTimeout": "Antwortzeitüberschreitung",
"unknownError": "Unbekannter Fehler",
"asrConnectionFailed":
"Verbindung zum Spracherkennungsdienst fehlgeschlagen. Bitte Netzwerk prüfen oder es später erneut versuchen.",
// 启动页
"slogan": "Die Welt verbinden, jenseits der Stimme",

2
lib/core/translations/language/el_gr.dart

@ -16,6 +16,8 @@ const Map<String, String> elGR = {
"requestTimeout": "Λήξη χρόνου αιτήματος",
"responseTimeout": "Λήξη χρόνου απάντησης",
"unknownError": "Άγνωστο σφάλμα",
"asrConnectionFailed":
"Η σύνδεση με την υπηρεσία αναγνώρισης ομιλίας απέτυχε. Ελέγξτε το δίκτυο ή δοκιμάστε ξανά αργότερα.",
// 启动页
"slogan": "Συνδέοντας τον κόσμο, πέρα από τον ήχο",

2
lib/core/translations/language/en_us.dart

@ -16,6 +16,8 @@ const Map<String, String> enUS = {
"requestTimeout": "Request timeout",
"responseTimeout": "Response timeout",
"unknownError": "Unknown error",
"asrConnectionFailed":
"Speech recognition service connection failed. Please check network and try again.",
// 启动页
"slogan": "Connect the World, Beyond Voice",

2
lib/core/translations/language/es_es.dart

@ -16,6 +16,8 @@ const Map<String, String> esES = {
"requestTimeout": "Tiempo de solicitud agotado",
"responseTimeout": "Tiempo de respuesta agotado",
"unknownError": "Error desconocido",
"asrConnectionFailed":
"La conexión con el servicio de reconocimiento de voz ha fallado. Comprueba la red o inténtalo de nuevo más tarde.",
// 启动页
"slogan": "Conectando el mundo, más allá del sonido",

23
lib/core/translations/language/et_ee.dart

@ -16,6 +16,8 @@ const Map<String, String> etEE = {
"requestTimeout": "Taotluse ajalõpp",
"responseTimeout": "Vastuse ajalõpp",
"unknownError": "Tundmatu viga",
"asrConnectionFailed":
"Ühendus kõnetuvastusteenusega ebaõnnestus. Kontrollige võrku või proovige hiljem uuesti.",
// 启动页
"slogan": "Maailma ühendamine, heli tagant",
@ -439,15 +441,22 @@ const Map<String, String> etEE = {
'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.', // 保存录音失败,请重试
'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.', // 正在后台录音,点击返回应用
'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.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。
'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...',

26
lib/core/translations/language/fa_ir.dart

@ -16,6 +16,8 @@ const Map<String, String> faIR = {
"requestTimeout": "پایان مهلت درخواست",
"responseTimeout": "پایان مهلت پاسخ",
"unknownError": "خطای ناشناخته",
"asrConnectionFailed":
"اتصال به سرویس تشخیص گفتار ناموفق بود. لطفاً شبکه را بررسی کرده و بعداً دوباره تلاش کنید.",
// 启动页
"slogan": "دنیا را متصل کن، فراتر از صدا",
@ -437,19 +439,27 @@ const Map<String, String> faIR = {
'callRecording': 'ضبط تماس',
'importAudio': 'وارد کردن صدا',
'meetingRecordExitTitle': 'خروج از ضبط', // 退出录音
'meetingRecordExitMessage': 'قبل از خروج انتخاب کنید چه کاری انجام شود', // 请选择离开后的操作
'meetingRecordExitMessage':
'قبل از خروج انتخاب کنید چه کاری انجام شود', // 请选择离开后的操作
'meetingRecordEndAndSave': 'پایان و ذخیره', // 结束录音并保存
'meetingRecordEndWithoutSave': 'پایان بدون ذخیره', // 结束录音不保存
'meetingRecordContinueInBackground': 'ادامهٔ ضبط در پس‌زمینه', // 后台继续录音
'meetingRecordStopTimeout': 'مهلت توقف ضبط به پایان رسید. لطفاً دوباره تلاش کنید.', // 结束录音超时,请重试
'meetingRecordStopFailed': 'توقف ضبط ناموفق بود. لطفاً دوباره تلاش کنید.', // 结束录音失败,请重试
'meetingRecordSaveFailed': 'ذخیرهٔ ضبط ناموفق بود. لطفاً دوباره تلاش کنید.', // 保存录音失败,请重试
'meetingRecordStopTimeout':
'مهلت توقف ضبط به پایان رسید. لطفاً دوباره تلاش کنید.', // 结束录音超时,请重试
'meetingRecordStopFailed':
'توقف ضبط ناموفق بود. لطفاً دوباره تلاش کنید.', // 结束录音失败,请重试
'meetingRecordSaveFailed':
'ذخیرهٔ ضبط ناموفق بود. لطفاً دوباره تلاش کنید.', // 保存录音失败,请重试
'meetingRecordRecordingNotificationTitle': 'ضبط در حال انجام است', // 录音进行中
'meetingRecordRecordingNotificationBody': 'در پس‌زمینه در حال ضبط است. برای بازگشت به برنامه لمس کنید.', // 正在后台录音,点击返回应用
'meetingRecordRecordingNotificationBody':
'در پس‌زمینه در حال ضبط است. برای بازگشت به برنامه لمس کنید.', // 正在后台录音,点击返回应用
'overlayPermissionTitle': 'نمایش روی سایر برنامه‌ها', // 悬浮窗权限
'overlayPermissionTranslationDesc': 'برای نمایش نتایج ترجمه هنگام تماس‌ها یا ترجمهٔ صوت/ویدئو، به مجوز نمایش روی سایر برنامه‌ها نیاز داریم. این کار به شما اجازه می‌دهد هنگام استفاده از برنامه‌های دیگر، ترجمهٔ هم‌زمان را ببینید.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。
'overlayPermissionRecordingDesc': 'برای نمایش نوار شناور ضبط (زمان‌سنج/توقف موقت/ادامه) هنگام ضبط، به مجوز نمایش روی سایر برنامه‌ها نیاز داریم.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。
'overlayPermissionOpenSettingsFailed': 'امکان باز کردن خودکار تنظیمات سیستم نیست. لطفاً تنظیمات را باز کرده و مجوز نمایش روی سایر برنامه‌ها را به‌صورت دستی فعال کنید.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。
'overlayPermissionTranslationDesc':
'برای نمایش نتایج ترجمه هنگام تماس‌ها یا ترجمهٔ صوت/ویدئو، به مجوز نمایش روی سایر برنامه‌ها نیاز داریم. این کار به شما اجازه می‌دهد هنگام استفاده از برنامه‌های دیگر، ترجمهٔ هم‌زمان را ببینید.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。
'overlayPermissionRecordingDesc':
'برای نمایش نوار شناور ضبط (زمان‌سنج/توقف موقت/ادامه) هنگام ضبط، به مجوز نمایش روی سایر برنامه‌ها نیاز داریم.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。
'overlayPermissionOpenSettingsFailed':
'امکان باز کردن خودکار تنظیمات سیستم نیست. لطفاً تنظیمات را باز کرده و مجوز نمایش روی سایر برنامه‌ها را به‌صورت دستی فعال کنید.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。
'transcribing': 'در حال تبدیل به متن...',
'summarizing': 'در حال خلاصه‌سازی...',
'analyzing': 'در حال تجزیه و تحلیل...',

2
lib/core/translations/language/fi_fi.dart

@ -16,6 +16,8 @@ const Map<String, String> fiFI = {
"requestTimeout": "Pyynnön aikakatkaisu",
"responseTimeout": "Vastauksen aikakatkaisu",
"unknownError": "Tuntematon virhe",
"asrConnectionFailed":
"Yhteys puheentunnistuspalveluun epäonnistui. Tarkista verkkoyhteys tai yritä myöhemmin uudelleen.",
// 启动页
"slogan": "Maailman yhdistäminen, äänen tuolla puolen",

32
lib/core/translations/language/fr_fr.dart

@ -16,6 +16,8 @@ const Map<String, String> frFR = {
"requestTimeout": "Délai de demande dépassé",
"responseTimeout": "Délai de réponse dépassé",
"unknownError": "Erreur inconnue",
"asrConnectionFailed":
"La connexion au service de reconnaissance vocale a échoué. Vérifiez votre connexion réseau ou réessayez plus tard.",
// 启动页
"slogan": "Connecter le monde, au-delà de la voix",
@ -442,19 +444,28 @@ const Map<String, String> frFR = {
'callRecording': 'Call Recording',
'importAudio': 'Import Audio',
'meetingRecordExitTitle': 'Quitter l\'enregistrement', // 退出录音
'meetingRecordExitMessage': 'Choisissez quoi faire avant de quitter', // 请选择离开后的操作
'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.', // 保存录音失败,请重试
'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.', // 正在后台录音,点击返回应用
'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.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。
'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...',
@ -1102,7 +1113,8 @@ const Map<String, String> frFR = {
'native.notification.music.next': 'Suivant', // 下一首
'native.notification.music.play': 'Lecture', // 播放
'native.notification.music.pause': 'Pause', // 暂停
'native.notification.qqMusic.playing': 'Musique en cours de lecture', // 正在播放音乐
'native.notification.qqMusic.playing':
'Musique en cours de lecture', // 正在播放音乐
//permission_util.dart
'permissionUtilNeed': 'Need ',

2
lib/core/translations/language/hi_in.dart

@ -16,6 +16,8 @@ const Map<String, String> hiIN = {
"requestTimeout": "अनुरोध टाइमआउट",
"responseTimeout": "प्रतिक्रिया टाइमआउट",
"unknownError": "अज्ञात त्रुटि",
"asrConnectionFailed":
"वॉइस रिकग्निशन सेवा से कनेक्शन विफल रहा। कृपया नेटवर्क जांचें और बाद में फिर से प्रयास करें।",
// 启动页
"slogan": "दुनिया को जोड़ना, ध्वनि से परे",

2
lib/core/translations/language/hr_hr.dart

@ -16,6 +16,8 @@ const Map<String, String> hrHR = {
"requestTimeout": "Vrijeme za zahtjev je isteklo",
"responseTimeout": "Vrijeme za odgovor je isteklo",
"unknownError": "Nepoznata greška",
"asrConnectionFailed":
"Povezivanje s uslugom za prepoznavanje govora nije uspjelo. Provjerite mrežu i pokušajte ponovno kasnije.",
// 启动页
"slogan": "Povezivanje svijeta, izvan zvuka",

2
lib/core/translations/language/hu_hu.dart

@ -16,6 +16,8 @@ const Map<String, String> huHU = {
"requestTimeout": "Kérési időtúllépés",
"responseTimeout": "Válaszidő túllépés",
"unknownError": "Ismeretlen hiba",
"asrConnectionFailed":
"Nem sikerült csatlakozni a beszédfelismerő szolgáltatáshoz. Ellenőrizze a hálózatot, majd próbálja meg később újra.",
// 启动页
"slogan": "A világ összekötése, a hangon túl",

2
lib/core/translations/language/id_id.dart

@ -16,6 +16,8 @@ const Map<String, String> idID = {
"requestTimeout": "Waktu permintaan habis",
"responseTimeout": "Waktu respons habis",
"unknownError": "Kesalahan tidak diketahui",
"asrConnectionFailed":
"Koneksi ke layanan pengenalan suara gagal. Periksa jaringan Anda lalu coba lagi nanti.",
// 启动页
"slogan": "Menghubungkan dunia, melampaui suara",

29
lib/core/translations/language/is_is.dart

@ -16,6 +16,8 @@ const Map<String, String> isIS = {
"requestTimeout": "Beiðni rann út á tíma",
"responseTimeout": "Svar rann út á tíma",
"unknownError": "Óþekkt villa",
"asrConnectionFailed":
"Tenging við talgreiningarþjónustu mistókst. Athugaðu netsambandið eða reyndu aftur síðar.",
// 启动页
"slogan": "Að tengja heiminn, handan hljóðsins",
@ -439,19 +441,28 @@ const Map<String, String> isIS = {
'callRecording': 'Call Recording',
'importAudio': 'Import Audio',
'meetingRecordExitTitle': 'Hætta í upptöku', // 退出录音
'meetingRecordExitMessage': 'Veldu hvað á að gera áður en þú ferð', // 请选择离开后的操作
'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.', // 保存录音失败,请重试
'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ð.', // 正在后台录音,点击返回应用
'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.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。
'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...',

2
lib/core/translations/language/it_it.dart

@ -17,6 +17,8 @@ const Map<String, String> itIT = {
"requestTimeout": "Timeout della richiesta",
"responseTimeout": "Timeout della risposta",
"unknownError": "Errore sconosciuto",
"asrConnectionFailed":
"Connessione al servizio di riconoscimento vocale non riuscita. Controlla la rete o riprova più tardi.",
// 启动页
"slogan": "Connettere il mondo, oltre il suono",

1
lib/core/translations/language/ja_jp.dart

@ -16,6 +16,7 @@ const Map<String, String> jaJP = {
"requestTimeout": "リクエストタイムアウト",
"responseTimeout": "応答タイムアウト",
"unknownError": "不明なエラー",
"asrConnectionFailed": "音声認識サービスへの接続に失敗しました。ネットワークを確認して、しばらくしてからもう一度お試しください。",
// 启动页
"slogan": "世界をつなぐ、音声を超えて",

2
lib/core/translations/language/ko_kr.dart

@ -16,6 +16,8 @@ const Map<String, String> koKR = {
"requestTimeout": "요청 시간 초과",
"responseTimeout": "응답 시간 초과",
"unknownError": "알 수 없는 오류",
"asrConnectionFailed":
"음성 인식 서비스 연결에 실패했습니다. 네트워크를 확인한 후 다시 시도해 주세요.",
// 启动页
"slogan": "세상을 연결하다, 소리를 넘어서",

2
lib/core/translations/language/lt_lt.dart

@ -17,6 +17,8 @@ const Map<String, String> ltLT = {
"requestTimeout": "Užklausos laikas baigėsi",
"responseTimeout": "Atsakymo laikas baigėsi",
"unknownError": "Nežinoma klaida",
"asrConnectionFailed":
"Nepavyko prisijungti prie kalbos atpažinimo paslaugos. Patikrinkite tinklą arba bandykite vėliau dar kartą.",
// 启动页
"slogan": "Jungiantis pasaulį, anapus garso",

2
lib/core/translations/language/lv_lv.dart

@ -16,6 +16,8 @@ const Map<String, String> lvLV = {
"requestTimeout": "Pieprasījuma taimauts",
"responseTimeout": "Atbildes taimauts",
"unknownError": "Nezināma kļūda",
"asrConnectionFailed":
"Neizdevās izveidot savienojumu ar runas atpazīšanas pakalpojumu. Pārbaudiet tīklu vai mēģiniet vēlreiz vēlāk.",
// 启动页
"slogan": "Pasaules savienošana, pāri skaņai",

2
lib/core/translations/language/ms_my.dart

@ -16,6 +16,8 @@ const Map<String, String> msMY = {
"requestTimeout": "Tamat masa permintaan",
"responseTimeout": "Tamat masa tindak balas",
"unknownError": "Ralat tidak diketahui",
"asrConnectionFailed":
"Sambungan ke perkhidmatan pengecaman suara gagal. Sila semak rangkaian atau cuba lagi nanti.",
// 启动页
"slogan": "Menghubungkan dunia, melampaui suara",

2
lib/core/translations/language/nb_no.dart

@ -16,6 +16,8 @@ const Map<String, String> nbNO = {
"requestTimeout": "Tidsavbrudd for forespørsel",
"responseTimeout": "Tidsavbrudd for svar",
"unknownError": "Ukjent feil",
"asrConnectionFailed":
"Tilkobling til talegjenkjenningstjenesten mislyktes. Kontroller nettverket eller prøv igjen senere.",
// 启动页
"slogan": "Kobler sammen verden, hinsides lyd",

2
lib/core/translations/language/nl_nl.dart

@ -16,6 +16,8 @@ const Map<String, String> nlNL = {
"requestTimeout": "Verzoektime-out",
"responseTimeout": "Reactietime-out",
"unknownError": "Onbekende fout",
"asrConnectionFailed":
"Verbinding met de spraakherkenningsservice is mislukt. Controleer de netwerkverbinding of probeer het later opnieuw.",
// 启动页
"slogan": "De wereld verbinden, voorbij het geluid",

2
lib/core/translations/language/pl_pl.dart

@ -16,6 +16,8 @@ const Map<String, String> plPL = {
"requestTimeout": "Przekroczono czas oczekiwania na żądanie",
"responseTimeout": "Przekroczono czas oczekiwania na odpowiedź",
"unknownError": "Nieznany błąd",
"asrConnectionFailed":
"Nie udało się połączyć z usługą rozpoznawania mowy. Sprawdź sieć lub spróbuj ponownie później.",
// 启动页
"slogan": "Łącząc świat, poza dźwiękiem",

2
lib/core/translations/language/pt_pt.dart

@ -16,6 +16,8 @@ const Map<String, String> ptPT = {
"requestTimeout": "Tempo Limite do Pedido",
"responseTimeout": "Tempo Limite da Resposta",
"unknownError": "Erro Desconhecido",
"asrConnectionFailed":
"Falha na ligação ao serviço de reconhecimento de voz. Verifique a rede ou tente novamente mais tarde.",
// 启动页
"slogan": "Conectando o mundo, para além do som",

2
lib/core/translations/language/ro_ro.dart

@ -16,6 +16,8 @@ const Map<String, String> roRO = {
"requestTimeout": "Timpul de cerere a expirat",
"responseTimeout": "Timpul de răspuns a expirat",
"unknownError": "Eroare necunoscută",
"asrConnectionFailed":
"Conexiunea la serviciul de recunoaștere vocală a eșuat. Verificați rețeaua sau încercați din nou mai târziu.",
// 启动页
"slogan": "Conectând lumea, dincolo de sunet",

2
lib/core/translations/language/ru_ru.dart

@ -16,6 +16,8 @@ const Map<String, String> ruRU = {
"requestTimeout": "Тайм-аут запроса",
"responseTimeout": "Тайм-аут ответа",
"unknownError": "Неизвестная ошибка",
"asrConnectionFailed":
"Не удалось подключиться к службе распознавания речи. Проверьте сеть и попробуйте ещё раз позже.",
// 启动页
"slogan": "Соединяя мир, за пределами звука",

2
lib/core/translations/language/sk_sk.dart

@ -16,6 +16,8 @@ const Map<String, String> skSK = {
"requestTimeout": "Časový limit požiadavky",
"responseTimeout": "Časový limit odozvy",
"unknownError": "Neznáma chyba",
"asrConnectionFailed":
"Pripojenie k službe rozpoznávania reči zlyhalo. Skontrolujte sieť alebo to skúste znova neskôr.",
// 启动页
"slogan": "Pripájanie sveta, za hranicami zvuku",

2
lib/core/translations/language/sl_si.dart

@ -16,6 +16,8 @@ const Map<String, String> slSI = {
"requestTimeout": "Čas za zahtevo je potekel",
"responseTimeout": "Čas za odgovor je potekel",
"unknownError": "Neznana napaka",
"asrConnectionFailed":
"Povezava s storitvijo za prepoznavanje govora ni uspela. Preverite omrežje ali poskusite znova pozneje.",
// 启动页
"slogan": "Povezovanje sveta, onkraj zvoka",

437
lib/core/translations/language/sr_rs.dart

@ -16,6 +16,8 @@ const Map<String, String> srRS = {
"requestTimeout": "Isteklo vreme za zahtev",
"responseTimeout": "Isteklo vreme za odgovor",
"unknownError": "Nepoznata greška",
"asrConnectionFailed":
"Povezivanje sa servisom za prepoznavanje govora nije uspelo. Proverite mrežu i pokušajte ponovo kasnije.",
// 启动页
"slogan": "Povezivanje sveta, izvan zvuka",
@ -91,7 +93,8 @@ const Map<String, String> 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",
@ -100,7 +103,8 @@ const Map<String, String> 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":
@ -116,24 +120,30 @@ const Map<String, String> 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",
@ -176,7 +186,8 @@ const Map<String, String> 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",
@ -219,7 +230,8 @@ const Map<String, String> 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",
@ -275,8 +287,10 @@ const Map<String, String> 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',
@ -285,27 +299,35 @@ const Map<String, String> 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',
@ -314,8 +336,10 @@ const Map<String, String> 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',
@ -330,7 +354,8 @@ const Map<String, String> 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',
@ -356,7 +381,8 @@ const Map<String, String> 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',
@ -406,7 +432,8 @@ const Map<String, String> 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',
@ -419,11 +446,15 @@ const Map<String, String> srRS = {
'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', // 保存录音失败,请重试
'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', // 正在后台录音,点击返回应用
'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.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。
@ -478,40 +509,54 @@ const Map<String, String> 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模块 - 模版和生成
@ -523,7 +568,8 @@ const Map<String, String> 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...',
@ -543,7 +589,8 @@ const Map<String, String> 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':
'检测到您已永久拒绝存储权限。如需继续使用此功能,请前往应用设置中手动开启存储权限。',
@ -589,12 +636,14 @@ const Map<String, String> 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',
@ -619,7 +668,8 @@ const Map<String, String> 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",
@ -632,7 +682,8 @@ const Map<String, String> 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",
@ -641,9 +692,11 @@ const Map<String, String> 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',
@ -672,7 +725,8 @@ const Map<String, String> 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...",
//设备管理页面
@ -743,10 +797,14 @@ const Map<String, String> srRS = {
'• 控制耳机功能\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',
@ -769,7 +827,8 @@ const Map<String, String> 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
@ -801,14 +860,22 @@ const Map<String, String> 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",
@ -858,24 +925,31 @@ const Map<String, String> 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': '错误',
@ -894,13 +968,19 @@ const Map<String, String> 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',
@ -923,57 +1003,86 @@ const Map<String, String> 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':
'检测到您已永久拒绝录音权限。如需继续使用此功能,请前往应用设置中手动开启麦克风权限。',
'storagePermissionPermanentDenial':
@ -983,7 +1092,8 @@ const Map<String, String> srRS = {
'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',
// 版本更新对话框
@ -992,8 +1102,10 @@ const Map<String, String> 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",
@ -1129,7 +1241,8 @@ const Map<String, String> 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",
// 通用对话按钮与选项(用于统一语言选择弹窗等)
// 以下翻译键的中文文本内容如注释所示
@ -1145,10 +1258,12 @@ const Map<String, String> 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",
@ -1180,15 +1295,20 @@ const Map<String, String> 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",
@ -1211,7 +1331,8 @@ const Map<String, String> 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",
@ -1219,9 +1340,11 @@ const Map<String, String> 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",
@ -1249,19 +1372,25 @@ const Map<String, String> 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",
// 配对控制器相关
@ -1270,13 +1399,15 @@ const Map<String, String> 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',
@ -1288,35 +1419,45 @@ const Map<String, String> 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",
@ -1329,14 +1470,18 @@ const Map<String, String> 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", // 暂无音乐
@ -1398,8 +1543,10 @@ const Map<String, String> srRS = {
"insufficientIntegral": "Insufficient integral",
//余额不足弹窗
"insufficientBalanceDesc": "Insufficient balance, please go to the corresponding recharge page 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.",
};

2
lib/core/translations/language/sv_se.dart

@ -16,6 +16,8 @@ const Map<String, String> svSE = {
"requestTimeout": "Begäran nådde tidsgräns",
"responseTimeout": "Svaret nådde tidsgräns",
"unknownError": "Okänt fel",
"asrConnectionFailed":
"Anslutning till tjänsten för röstigenkänning misslyckades. Kontrollera nätverket eller försök igen senare.",
// 启动页
"slogan": "Anslut världen, bortom ljudet",

2
lib/core/translations/language/th_th.dart

@ -16,6 +16,8 @@ const Map<String, String> thTH = {
"requestTimeout": "หมดเวลาคำขอ",
"responseTimeout": "หมดเวลาการตอบกลับ",
"unknownError": "ข้อผิดพลาดที่ไม่รู้จัก",
"asrConnectionFailed":
"เชื่อมต่อกับบริการรู้จำเสียงไม่สำเร็จ กรุณาตรวจสอบเครือข่ายแล้วลองใหม่อีกครั้งภายหลัง",
// 启动页
"slogan": "เชื่อมต่อโลก ก้าวล้ำเหนือเสียง",

2
lib/core/translations/language/tl_ph.dart

@ -16,6 +16,8 @@ const Map<String, String> tlPH = {
"requestTimeout": "Nag-time out ang Kahilingan",
"responseTimeout": "Nag-time out ang Pagtugon",
"unknownError": "Hindi Malamang Error",
"asrConnectionFailed":
"Nabigo ang koneksyon sa speech recognition service. Pakisuri ang network at subukang muli mamaya.",
// 启动页
"slogan": "Ikonekta ang mundo, higit pa sa tunog",

2
lib/core/translations/language/tr_tr.dart

@ -16,6 +16,8 @@ const Map<String, String> trTR = {
"requestTimeout": "İstek Zaman Aşımı",
"responseTimeout": "Yanıt Zaman Aşımı",
"unknownError": "Bilinmeyen Hata",
"asrConnectionFailed":
"Ses tanıma servisine bağlantı başarısız oldu. Lütfen ağı kontrol edin veya daha sonra tekrar deneyin.",
// 启动页
"slogan": "Dünyayla bağlantı kur, sesin ötesinde",

2
lib/core/translations/language/uk_ua.dart

@ -16,6 +16,8 @@ const Map<String, String> ukUA = {
"requestTimeout": "Час очікування запиту минув",
"responseTimeout": "Час очікування відповіді минув",
"unknownError": "Невідома помилка",
"asrConnectionFailed":
"Не вдалося підключитися до служби розпізнавання мовлення. Перевірте мережу або спробуйте пізніше ще раз.",
// 启动页
"slogan": "З'єднуючи світ, більше ніж просто звук",

2
lib/core/translations/language/vi_vn.dart

@ -16,6 +16,8 @@ const Map<String, String> viVN = {
"requestTimeout": "Hết thời gian yêu cầu",
"responseTimeout": "Hết thời gian phản hồi",
"unknownError": "Lỗi không xác định",
"asrConnectionFailed":
"Kết nối tới dịch vụ nhận dạng giọng nói thất bại. Vui lòng kiểm tra mạng hoặc thử lại sau.",
// 启动页
"slogan": "Kết nối thế giới, vượt trên cả âm thanh",

1
lib/core/translations/language/zh_cn.dart

@ -16,6 +16,7 @@ const Map<String, String> zhCN = {
"requestTimeout": "请求超时",
"responseTimeout": "响应超时",
"unknownError": "未知错误",
"asrConnectionFailed": "语音识别服务连接失败,请检查网络或稍后重试",
// 启动页
"slogan": "连接世界,岂止声音",

1
lib/core/translations/language/zh_hk.dart

@ -16,6 +16,7 @@ const Map<String, String> zhHK = {
"requestTimeout": "請求超時",
"responseTimeout": "響應超時",
"unknownError": "未知錯誤",
"asrConnectionFailed": "語音識別服務連接失敗,請檢查網絡或稍後重試",
// 启动页
"slogan": "連接世界,豈止聲音",

1
lib/core/translations/language/zh_tw.dart

@ -16,6 +16,7 @@ const Map<String, String> zhTW = {
"requestTimeout": "請求逾時",
"responseTimeout": "回應逾時",
"unknownError": "未知錯誤",
"asrConnectionFailed": "語音辨識服務連線失敗,請檢查網路或稍後重試",
// 启动页
"slogan": "連接世界,豈止聲音",

10
lib/modules/translation/controllers/translation_controller.dart

@ -1164,9 +1164,15 @@ class TranslationController extends GetxController with WidgetsBindingObserver {
break;
case RecognitionEventType.error:
Get.snackbar('error'.tr, event.error);
final errorMsg = event.error;
var displayMsg = errorMsg;
if (errorMsg.contains('Xunfei connection failed') ||
errorMsg.contains('Socket is not connected')) {
displayMsg = 'asrConnectionFailed'.tr; // 语音识别服务连接失败,请检查网络或稍后重试
}
Get.snackbar('error'.tr, displayMsg);
isRecognizing.value = false;
Logger.error('语音识别错误: ${event.error}');
Logger.error('语音识别错误: $errorMsg');
break;
case RecognitionEventType.canceled:

Loading…
Cancel
Save