Browse Source

feat(i18n): 添加缺失的翻译键并引入i18n审计脚本

新增蓝牙扫描、工具调用、导航选择、OTA升级等模块的翻译键,覆盖多个语言文件。
添加i18n审计脚本以检测翻译质量问题,包括与基线文件相同但可能是英文的翻译。
引入允许列表文件以排除特定键的审计检查。
newdev_shunjiawei
lxm 7 months ago
parent
commit
602239c471
  1. 310
      lib/core/translations/language/ar_sa.dart
  2. 132
      lib/core/translations/language/bg_bg.dart
  3. 148
      lib/core/translations/language/cs_cz.dart
  4. 172
      lib/core/translations/language/da_dk.dart
  5. 394
      lib/core/translations/language/de_de.dart
  6. 663
      lib/core/translations/language/el_gr.dart
  7. 124
      lib/core/translations/language/en_us.dart
  8. 932
      lib/core/translations/language/es_es.dart
  9. 312
      lib/core/translations/language/et_ee.dart
  10. 715
      lib/core/translations/language/fa_ir.dart
  11. 102
      lib/core/translations/language/fi_fi.dart
  12. 1002
      lib/core/translations/language/fr_fr.dart
  13. 339
      lib/core/translations/language/hi_in.dart
  14. 339
      lib/core/translations/language/hr_hr.dart
  15. 312
      lib/core/translations/language/hu_hu.dart
  16. 736
      lib/core/translations/language/id_id.dart
  17. 102
      lib/core/translations/language/is_is.dart
  18. 340
      lib/core/translations/language/it_it.dart
  19. 273
      lib/core/translations/language/ja_jp.dart
  20. 1195
      lib/core/translations/language/ko_kr.dart
  21. 337
      lib/core/translations/language/lt_lt.dart
  22. 867
      lib/core/translations/language/lv_lv.dart
  23. 719
      lib/core/translations/language/ms_my.dart
  24. 102
      lib/core/translations/language/nb_no.dart
  25. 339
      lib/core/translations/language/nl_nl.dart
  26. 190
      lib/core/translations/language/pl_pl.dart
  27. 318
      lib/core/translations/language/pt_pt.dart
  28. 340
      lib/core/translations/language/ro_ro.dart
  29. 290
      lib/core/translations/language/ru_ru.dart
  30. 312
      lib/core/translations/language/sk_sk.dart
  31. 314
      lib/core/translations/language/sl_si.dart
  32. 1311
      lib/core/translations/language/sr_rs.dart
  33. 100
      lib/core/translations/language/sv_se.dart
  34. 680
      lib/core/translations/language/th_th.dart
  35. 1185
      lib/core/translations/language/tl_ph.dart
  36. 733
      lib/core/translations/language/tr_tr.dart
  37. 843
      lib/core/translations/language/uk_ua.dart
  38. 1505
      lib/core/translations/language/vi_vn.dart
  39. 14
      lib/core/translations/language/zh_cn.dart
  40. 107
      lib/core/translations/language/zh_hk.dart
  41. 107
      lib/core/translations/language/zh_tw.dart
  42. 24
      tools/i18n_allowlist.json
  43. 201
      tools/i18n_audit.py

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

@ -1,5 +1,4 @@
const Map<String, String> arSA = {
// 通用
'continue': 'متابعة',
'confirm': 'تأكيد',
@ -130,8 +129,7 @@ const Map<String, String> arSA = {
"aiAssistantInfo":
"مستشار حصري على مدار 24 ساعة للإجابة على الأسئلة وتقديم الاقتراحات",
"interpretation": "الترجمة",
"simultaneousInterpretationInfo":
"ترجمة فورية لعدة لغات، سفر خالٍ من القلق",
"simultaneousInterpretationInfo": "ترجمة فورية لعدة لغات، سفر خالٍ من القلق",
"aiCompanion": "رفيق العائلة",
"aiCompanionInfo": "يفهمك ويقدم لك رفقة دافئة",
"homeSlogan": "تواصل مع العالم، أبعد من الصوت",
@ -167,6 +165,29 @@ const Map<String, String> arSA = {
'right': 'يمين',
'checkConnectionStatusFailed': 'فشل التحقق من حالة الاتصال',
// 蓝牙扫描模块
'bleInitFailedWithError': 'فشل تهيئة البلوتوث: @error',
'needBluetoothAndLocationPermission':
'مطلوبة أذونات البلوتوث والموقع لمسح الأجهزة',
'permissionRequestFailedWithError': 'فشل طلب الإذن: @error',
'needPermission': 'الإذن مطلوب',
'blePermissionDialogContent':
'يتطلب هذا التطبيق أذونات البلوتوث والموقع لمسح الأجهزة. يرجى تمكينها من الإعدادات.',
'needEnableBluetooth': 'فعّل البلوتوث',
'enableBluetoothDialogContent':
'يرجى تفعيل البلوتوث لمسح الأجهزة والاتصال بها.',
'bleScanFailedWithError': 'فشل المسح: @error',
'bleConnectionSuccess': 'تم الاتصال بنجاح',
'bleConnectedToDevice': 'تم الاتصال بـ @device',
'bleConnectionFailedWithError': 'فشل الاتصال: @error',
'bleDisconnected': 'تم قطع الاتصال',
'bleDeviceDisconnected': 'تم قطع اتصال الجهاز',
'bleDisconnectFailedWithError': 'فشل قطع الاتصال: @error',
'signalStrong': 'قوية',
'signalMedium': 'متوسطة',
'signalWeak': 'ضعيفة',
'signalVeryWeak': 'ضعيفة جدًا',
// 发现页
"searchAi": "بحث عن وظائف الذكاء الاصطناعي...",
"exploreSlogan": "سماعات ذكية، إمكانيات لا حصر لها",
@ -241,60 +262,61 @@ const Map<String, String> arSA = {
'totalQuota': 'إجمالي الحصة',
'remaining': 'المتبقي',
'featureDescription': 'وصف الميزة',
'paymentSuccess': 'تم الدفع بنجاح',
'paymentFailed': 'فشل الدفع',
'gotIt': 'فهمت',
'paymentFailedTryAgain': 'فشل الدفع. يرجى المحاولة مرة أخرى.',
'selectPaymentMethod': 'اختر طريقة الدفع',
'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay',
'paypalPay': 'PayPal',
'appleIap': 'Apple IAP',
'googleIap': 'Google IAP',
'wechatOrderCreateFailed': 'فشل إنشاء طلب WeChat',
'alipayOrderCreateFailed': 'فشل إنشاء طلب Alipay',
'appleOrderCreateFailed': 'فشل إنشاء طلب Apple',
'googleOrderCreateFailed': 'فشل إنشاء طلب Google',
'paypalOrderCreateFailed': 'فشل إنشاء طلب PayPal',
'paymentException': 'استثناء في الدفع',
'paymentLaunchFailed': 'فشل بدء الدفع',
'paymentExceptionWithError': 'استثناء في الدفع: @error',
'paymentProcessingCheckLater': 'طلبك قيد المعالجة. يرجى التحقق لاحقًا.',
'paymentResultQueryException': 'فشل الاستعلام عن نتيجة الدفع: @error',
'orderConfirmedQuotaRefreshed': 'تم تأكيد الطلب. تم تحديث رصيدك.',
'paymentCompletedConfirming': 'تم الدفع. جاري التأكيد…',
'paymentCancelled': 'تم إلغاء الدفع',
'paypalOpenedCompleteInBrowser': 'تم فتح PayPal. يرجى إكمال الدفع في متصفحك.',
'paypalOpenFailed': 'تعذر فتح صفحة الدفع عبر PayPal',
'paymentTestTitle': 'اختبار الدفع',
'paymentTestOrderInfo': 'معلومات طلب الاختبار',
'paymentTestProductId': 'معرّف المنتج',
'paymentTestProductDescription': 'وصف المنتج',
'paymentTestWechatDescription': 'اختبار الدفع عبر WeChat',
'paymentTestAlipayDescription': 'اختبار الدفع عبر Alipay',
'paymentTestAmount': 'المبلغ',
'paymentTestSelectAmount': 'اختر مبلغ الاختبار',
'paying': 'جاري الدفع...',
'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': 'حالة الدفع',
'errorInfoWithMessage': 'خطأ: @message',
'retest': 'إعادة الاختبار',
'paymentTestInstructionsTitle': 'التعليمات',
'paymentTestInstructionsContent': '1. اختر مبلغ اختبار (يُنصح بـ: ¥0.01)\n2. انقر على زر الدفع للبدء\n3. أكمل الدفع في تطبيق الدفع\n4. ارجع للتحقق من النتيجة',
'startingWechatPayment': 'جاري تشغيل WeChat Pay...',
'startingAlipayPayment': 'جاري تشغيل Alipay...',
'wechatPaymentSuccess': 'تم الدفع عبر WeChat Pay بنجاح!',
'wechatPaymentFailed': 'فشل WeChat Pay',
'wechatPaymentLaunchFailed': 'فشل تشغيل WeChat Pay',
'cannotLaunchWechatPayment': 'تعذر تشغيل WeChat Pay',
'wechatPaymentException': 'استثناء WeChat Pay',
'wechatPaymentTestCompleted': 'اكتمل اختبار WeChat Pay',
'alipayPaymentSuccess': 'تم الدفع عبر Alipay بنجاح!',
'alipayPaymentFailed': 'فشل Alipay',
'alipayPaymentLaunchFailed': 'فشل تشغيل Alipay',
'cannotLaunchAlipayPayment': 'تعذر تشغيل Alipay',
'alipayPaymentException': 'استثناء Alipay',
'paymentSuccess': 'تم الدفع بنجاح',
'paymentFailed': 'فشل الدفع',
'gotIt': 'فهمت',
'paymentFailedTryAgain': 'فشل الدفع. يرجى المحاولة مرة أخرى.',
'selectPaymentMethod': 'اختر طريقة الدفع',
'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay',
'paypalPay': 'PayPal',
'appleIap': 'Apple IAP',
'googleIap': 'Google IAP',
'wechatOrderCreateFailed': 'فشل إنشاء طلب WeChat',
'alipayOrderCreateFailed': 'فشل إنشاء طلب Alipay',
'appleOrderCreateFailed': 'فشل إنشاء طلب Apple',
'googleOrderCreateFailed': 'فشل إنشاء طلب Google',
'paypalOrderCreateFailed': 'فشل إنشاء طلب PayPal',
'paymentException': 'استثناء في الدفع',
'paymentLaunchFailed': 'فشل بدء الدفع',
'paymentExceptionWithError': 'استثناء في الدفع: @error',
'paymentProcessingCheckLater': 'طلبك قيد المعالجة. يرجى التحقق لاحقًا.',
'paymentResultQueryException': 'فشل الاستعلام عن نتيجة الدفع: @error',
'orderConfirmedQuotaRefreshed': 'تم تأكيد الطلب. تم تحديث رصيدك.',
'paymentCompletedConfirming': 'تم الدفع. جاري التأكيد…',
'paymentCancelled': 'تم إلغاء الدفع',
'paypalOpenedCompleteInBrowser': 'تم فتح PayPal. يرجى إكمال الدفع في متصفحك.',
'paypalOpenFailed': 'تعذر فتح صفحة الدفع عبر PayPal',
'paymentTestTitle': 'اختبار الدفع',
'paymentTestOrderInfo': 'معلومات طلب الاختبار',
'paymentTestProductId': 'معرّف المنتج',
'paymentTestProductDescription': 'وصف المنتج',
'paymentTestWechatDescription': 'اختبار الدفع عبر WeChat',
'paymentTestAlipayDescription': 'اختبار الدفع عبر Alipay',
'paymentTestAmount': 'المبلغ',
'paymentTestSelectAmount': 'اختر مبلغ الاختبار',
'paying': 'جاري الدفع...',
'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': 'حالة الدفع',
'errorInfoWithMessage': 'خطأ: @message',
'retest': 'إعادة الاختبار',
'paymentTestInstructionsTitle': 'التعليمات',
'paymentTestInstructionsContent':
'1. اختر مبلغ اختبار (يُنصح بـ: ¥0.01)\n2. انقر على زر الدفع للبدء\n3. أكمل الدفع في تطبيق الدفع\n4. ارجع للتحقق من النتيجة',
'startingWechatPayment': 'جاري تشغيل WeChat Pay...',
'startingAlipayPayment': 'جاري تشغيل Alipay...',
'wechatPaymentSuccess': 'تم الدفع عبر WeChat Pay بنجاح!',
'wechatPaymentFailed': 'فشل WeChat Pay',
'wechatPaymentLaunchFailed': 'فشل تشغيل WeChat Pay',
'cannotLaunchWechatPayment': 'تعذر تشغيل WeChat Pay',
'wechatPaymentException': 'استثناء WeChat Pay',
'wechatPaymentTestCompleted': 'اكتمل اختبار WeChat Pay',
'alipayPaymentSuccess': 'تم الدفع عبر Alipay بنجاح!',
'alipayPaymentFailed': 'فشل Alipay',
'alipayPaymentLaunchFailed': 'فشل تشغيل Alipay',
'cannotLaunchAlipayPayment': 'تعذر تشغيل Alipay',
'alipayPaymentException': 'استثناء Alipay',
"insufficientIntegral": "نقاط غير كافية",
"insufficientBalanceDesc":
"الرصيد غير كافٍ، يرجى الانتقال إلى صفحة الشحن المقابلة للشحن",
@ -495,15 +517,22 @@ const Map<String, String> arSA = {
'meetingRecordEndAndSave': 'إنهاء التسجيل وحفظه', // 结束录音并保存
'meetingRecordEndWithoutSave': 'إنهاء التسجيل دون حفظ', // 结束录音不保存
'meetingRecordContinueInBackground': 'متابعة التسجيل في الخلفية', // 后台继续录音
'meetingRecordStopTimeout': 'انتهت مهلة إيقاف التسجيل. يرجى المحاولة مرة أخرى.', // 结束录音超时,请重试
'meetingRecordStopFailed': 'تعذر إيقاف التسجيل. يرجى المحاولة مرة أخرى.', // 结束录音失败,请重试
'meetingRecordSaveFailed': 'تعذر حفظ التسجيل. يرجى المحاولة مرة أخرى.', // 保存录音失败,请重试
'meetingRecordStopTimeout':
'انتهت مهلة إيقاف التسجيل. يرجى المحاولة مرة أخرى.', // 结束录音超时,请重试
'meetingRecordStopFailed':
'تعذر إيقاف التسجيل. يرجى المحاولة مرة أخرى.', // 结束录音失败,请重试
'meetingRecordSaveFailed':
'تعذر حفظ التسجيل. يرجى المحاولة مرة أخرى.', // 保存录音失败,请重试
'meetingRecordRecordingNotificationTitle': 'التسجيل جارٍ', // 录音进行中
'meetingRecordRecordingNotificationBody': 'يتم التسجيل في الخلفية. اضغط للعودة إلى التطبيق.', // 正在后台录音,点击返回应用
'meetingRecordRecordingNotificationBody':
'يتم التسجيل في الخلفية. اضغط للعودة إلى التطبيق.', // 正在后台录音,点击返回应用
'overlayPermissionTitle': 'الظهور فوق التطبيقات الأخرى', // 悬浮窗权限
'overlayPermissionTranslationDesc': 'لعرض نتائج الترجمة أثناء المكالمات أو ترجمة الصوت/الفيديو، نحتاج إلى إذن الظهور فوق التطبيقات الأخرى. يتيح لك ذلك رؤية الترجمات الفورية أثناء استخدام تطبيقات أخرى.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。
'overlayPermissionRecordingDesc': 'لعرض شريط التسجيل العائم (المؤقت/إيقاف مؤقت/استئناف) أثناء التسجيل، نحتاج إلى إذن الظهور فوق التطبيقات الأخرى.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。
'overlayPermissionOpenSettingsFailed': 'تعذر فتح إعدادات النظام تلقائيًا. يرجى فتح الإعدادات وتمكين إذن الظهور فوق التطبيقات الأخرى يدويًا.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。
'overlayPermissionTranslationDesc':
'لعرض نتائج الترجمة أثناء المكالمات أو ترجمة الصوت/الفيديو، نحتاج إلى إذن الظهور فوق التطبيقات الأخرى. يتيح لك ذلك رؤية الترجمات الفورية أثناء استخدام تطبيقات أخرى.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。
'overlayPermissionRecordingDesc':
'لعرض شريط التسجيل العائم (المؤقت/إيقاف مؤقت/استئناف) أثناء التسجيل، نحتاج إلى إذن الظهور فوق التطبيقات الأخرى.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。
'overlayPermissionOpenSettingsFailed':
'تعذر فتح إعدادات النظام تلقائيًا. يرجى فتح الإعدادات وتمكين إذن الظهور فوق التطبيقات الأخرى يدويًا.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。
'transcribing': 'جاري النسخ...',
'summarizing': 'جاري التلخيص...',
'analyzing': 'جاري التحليل...',
@ -528,21 +557,22 @@ const Map<String, String> arSA = {
'selectSummaryTemplate': 'اختر قالب الملخص',
'useThisTemplate': 'استخدم هذا القالب',
'lastUsed': 'آخر استخدام',
'create': 'إنشاء',
'templateDetails': 'تفاصيل القالب',
'tag': 'علامة',
'description': 'الوصف',
'template': 'قالب',
'deleteTemplate': 'حذف القالب',
'deleteTemplateConfirm': 'هل أنت متأكد من أنك تريد حذف هذا القالب؟',
'editTemplate': 'تعديل القالب',
'createTemplate': 'إنشاء قالب',
'name': 'الاسم',
'templateContentHint': 'يرجى إدخال محتوى القالب! نصيحة: انقر على زر الذكاء الاصطناعي أعلاه لإنشاء محتوى القالب بسرعة بناءً على الاسم والوصف الذي أدخلته',
'inputNameHint': 'يرجى إدخال الاسم',
'inputDescHint': 'يرجى إدخال الوصف',
'custom': 'مخصص',
'pleaseEnter': 'يرجى الإدخال',
'create': 'إنشاء',
'templateDetails': 'تفاصيل القالب',
'tag': 'علامة',
'description': 'الوصف',
'template': 'قالب',
'deleteTemplate': 'حذف القالب',
'deleteTemplateConfirm': 'هل أنت متأكد من أنك تريد حذف هذا القالب؟',
'editTemplate': 'تعديل القالب',
'createTemplate': 'إنشاء قالب',
'name': 'الاسم',
'templateContentHint':
'يرجى إدخال محتوى القالب! نصيحة: انقر على زر الذكاء الاصطناعي أعلاه لإنشاء محتوى القالب بسرعة بناءً على الاسم والوصف الذي أدخلته',
'inputNameHint': 'يرجى إدخال الاسم',
'inputDescHint': 'يرجى إدخال الوصف',
'custom': 'مخصص',
'pleaseEnter': 'يرجى الإدخال',
'viewAll': 'عرض الكل',
'recordingLanguage': 'لغة التسجيل',
'chineseSimplified': 'الصينية الماندرين (المبسطة)',
@ -565,7 +595,7 @@ const Map<String, String> arSA = {
'fileProcessingFailed': 'فشلت معالجة الملف: {filePath}, خطأ: {error}',
// Meeting模块 - 思维导图
'saveMindMap': 'حفظ الخريطة الذهنية',
'saveMindMap': 'حفظ الخريطة الذهنية',
'shareMindMap': 'مشاركة الخريطة الذهنية',
'shareSuccess': 'تمت المشاركة بنجاح',
@ -587,7 +617,7 @@ const Map<String, String> arSA = {
'exportSummary': 'تصدير الملخص',
'exportAs': 'تصدير كـ',
'exportingPDF': 'جاري تصدير PDF...',
'export': 'تصدير',
'export': 'تصدير',
// Meeting模块 - 发言者
'applyToAllParagraphs': 'تطبيق على جميع فقرات هذا المتحدث',
@ -697,18 +727,18 @@ const Map<String, String> arSA = {
// Meeting模块 - 错误提示
'meetingUnknownLanguage': 'لغة غير معروفة',
'analysisFailed': 'فشل التحليل، يرجى المحاولة لاحقًا',
'transcriptionFailed': 'فشل النسخ، يرجى المحاولة لاحقًا',
'summaryFailed': 'فشل الملخص، يرجى المحاولة لاحقًا',
'summaryFailedShort': 'فشل الملخص',
'transcriptionFailedShort': 'فشل النسخ',
'analysisFailed': 'فشل التحليل، يرجى المحاولة لاحقًا',
'transcriptionFailed': 'فشل النسخ، يرجى المحاولة لاحقًا',
'summaryFailed': 'فشل الملخص، يرجى المحاولة لاحقًا',
'summaryFailedShort': 'فشل الملخص',
'transcriptionFailedShort': 'فشل النسخ',
// Meeting模块 - 播放器
'playerNotReady': 'مشغل الصوت غير جاهز، يرجى الانتظار',
'playFailed': 'فشل التشغيل',
'audioFileNotFound': 'ملف الصوت غير موجود',
'fetchingAudio': 'جاري جلب الصوت من السحابة...',
'playerLoadFailed': 'فشل تحميل مشغل الصوت',
'playerNotReady': 'مشغل الصوت غير جاهز، يرجى الانتظار',
'playFailed': 'فشل التشغيل',
'audioFileNotFound': 'ملف الصوت غير موجود',
'fetchingAudio': 'جاري جلب الصوت من السحابة...',
'playerLoadFailed': 'فشل تحميل مشغل الصوت',
// 设置页
"systemSettings": "إعدادات النظام",
@ -813,7 +843,8 @@ const Map<String, String> arSA = {
"swipeUpForMore": "اسحب للأعلى لرؤية المزيد",
"callingTool": "أنا أساعدك، يرجى الانتظار!", // 正在帮您,请稍等!
"voice_interrupt": "مقاطعة صوتية", // 语音打断
'voice_interrupt_tip': 'عند التفعيل: لن يتم مقاطعة الذكاء الاصطناعي بصوتك أثناء تحدثه ويمكنه التعامل مع جولة محادثة واحدة فقط في كل مرة. لبدء جولة جديدة، ما عليك سوى قول كلمة التنبيه.',
'voice_interrupt_tip':
'عند التفعيل: لن يتم مقاطعة الذكاء الاصطناعي بصوتك أثناء تحدثه ويمكنه التعامل مع جولة محادثة واحدة فقط في كل مرة. لبدء جولة جديدة، ما عليك سوى قول كلمة التنبيه.',
// Agent模块 - 预设提示词
"presetMusic": "شغل بعض الموسيقى", // 来点音乐
@ -869,6 +900,13 @@ const Map<String, String> arSA = {
'نود معرفة سبب إبلاغك، يمكنك وصف المشكلة التي واجهتها.',
'generatedByAi': 'تم إنشاؤه بواسطة AI',
// Agent模块 - 工具调用
'toolCall': 'Tool Call',
'noResult': 'No Result',
'noToolCallContentToCopy': 'No tool call content to copy',
'toolCallDetails': 'Tool Call Details:',
'toolCallContentCopied': 'Tool call content copied to clipboard',
// Agent模块 - 音乐卡片
'recommendedMusic': 'إليك بعض الموسيقى الموصى بها:',
'playList': 'قائمة التشغيل',
@ -889,6 +927,29 @@ const Map<String, String> arSA = {
"bicycling": "ركوب الدراجات",
"tsransit": "نقل عام",
// Agent模块 - 导航选择
'selectNavigationApp': 'اختر تطبيق الملاحة',
'amapMap': 'Amap',
'useAmapNavigation': 'التنقل باستخدام Amap',
'baiduMap': 'Baidu Maps',
'useBaiduNavigation': 'التنقل باستخدام Baidu Maps',
'googleMap': 'Google Maps',
'useGoogleNavigation': 'التنقل باستخدام Google Maps',
'appleMap': 'Apple Maps',
'useAppleNavigation': 'التنقل باستخدام خرائط Apple',
'builtInNavigation': 'الملاحة المدمجة',
'useBuiltInNavigation': 'التنقل باستخدام الخريطة المدمجة',
'navigationStartFailed': 'فشل بدء التنقل',
'cannotPlayMusicListRetryLater':
'تعذر تشغيل قائمة الموسيقى، يرجى المحاولة لاحقًا',
'cannotPlaySong': 'تعذر تشغيل الأغنية',
'openMapError': 'خطأ أثناء فتح الخريطة',
'pleaseInstallAmapApp': 'يرجى تثبيت تطبيق Amap أولاً',
'pleaseInstallBaiduMapApp': 'يرجى تثبيت تطبيق Baidu Maps أولاً',
'appleMapStartFailed': 'فشل تشغيل خرائط Apple',
'appleMapUnavailable': 'خرائط Apple غير متاحة',
'openAppleMapError': 'خطأ أثناء فتح خرائط Apple',
// Agent模块 - 天气卡片
'weatherQuery': 'استعلام عن الطقس:',
'highest': 'الأعلى',
@ -960,8 +1021,18 @@ const Map<String, String> arSA = {
// 翻译模块 - 文本翻译
"languageDetectionFailed": "فشل اكتشاف اللغة",
// 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'تعطيل النافذة العائمة',
'enableFloatingWindow': 'تمكين النافذة العائمة',
'permissionTip': 'تنبيه الأذونات',
'micPermissionRequiredForRecording': 'إذن الميكروفون مطلوب للتسجيل',
'deleteTranslationRecordError': 'خطأ في حذف سجل الترجمة: @error',
"translationFailed": "فشلت الترجمة",
"translating": "جارٍ الترجمة",
"translate": "ترجمة",
"pleaseInputText": "يرجى إدخال النص",
"inputTextToTranslate": "يرجى إدخال النص المراد ترجمته",
"textTooLong": "النص طويل جدًا، بحد أقصى 5000 حرف",
// 翻译模块 - 历史记录
@ -1228,7 +1299,8 @@ const Map<String, String> arSA = {
'native.notification.navigation.title': 'التنقل جارٍ', // 导航进行中
'native.notification.navigation.keepRunning':
'التنقل جارٍ، يرجى إبقاء التطبيق قيد التشغيل', // 正在导航中,请保持应用运行
'native.notification.bleAgent.running': 'المساعد الصوتي قيد التشغيل', // 语音助手正在运行
'native.notification.bleAgent.running':
'المساعد الصوتي قيد التشغيل', // 语音助手正在运行
'native.notification.audioRecording.recording':
'يتم التسجيل، اضغط للعودة إلى التطبيق', // 正在录音,点击返回应用
'native.notification.music.waiting': 'في انتظار التشغيل', // 等待播放
@ -1371,6 +1443,58 @@ const Map<String, String> arSA = {
"removeEarbudsEnsureBattery":
"أخرج السماعتين، وتأكد من أن مستوى البطارية أعلى من 20%",
// OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': 'تم العثور على إصدار جديد @version',
'otaConfirmUpdateNow': 'هل تريد التحديث الآن؟',
'otaUpdate': 'تحديث',
'otaUpgradeSuccess': 'تمت الترقية بنجاح',
'otaUpgradeCompleteRepair':
'اكتملت ترقية البرنامج الثابت!\n\nيجب إعادة إقران الجهاز ليعمل بشكل صحيح. هل تريد الانتقال إلى صفحة الإقران الآن؟',
'otaPairLater': 'الإقران لاحقًا',
'otaPairNow': 'الإقران الآن',
'okConfirm': 'موافق',
// OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'خطأ أثناء التحقق من اتصال BLE: @error',
'otaBleNotConnected': 'جهاز BLE غير متصل',
'otaBleNeedConnection':
'تتطلب ترقية البرنامج الثابت اتصال جهاز BLE\nيرجى التأكد من اتصال الجهاز بشكل صحيح ثم المحاولة مرة أخرى',
'otaDeviceInfoUnavailableTitle': 'معلومات الجهاز غير متاحة',
'otaCannotGetDeviceInfo':
'تعذر الحصول على معلومات الجهاز\nيرجى إعادة توصيل الجهاز أو المحاولة لاحقًا',
'otaBleCheckFailed': 'فشل التحقق من اتصال BLE',
'otaCannotGetDeviceInfoCheckConnection':
'تعذر الحصول على معلومات الجهاز، يرجى التحقق من اتصال الجهاز',
'otaCannotGetProductInfoWithName':
'تعذر الحصول على معلومات المنتج، اسم الجهاز: @deviceName',
'otaCannotGetBatteryInfo': 'تعذر الحصول على معلومات بطارية صالحة',
'otaLowBattery': 'البطارية منخفضة',
'otaSingleBatteryLow':
'بطارية الجهاز منخفضة جدًا لترقية البرنامج الثابت\nالمتطلب: يجب أن تكون البطارية أعلى من 20%\nالحالي: @ear @battery%\nيرجى الشحن ثم المحاولة مرة أخرى',
'otaDoubleBatteryLow':
'بطارية الجهاز منخفضة جدًا لترقية البرنامج الثابت\nالمتطلب: يجب أن تكون كلتا السماعتين أعلى من 20%\nالحالي: اليسار @left%، اليمين @right%\nيرجى الشحن ثم المحاولة مرة أخرى',
'otaBatteryCheckFailed': 'فشل التحقق من البطارية',
// OTA升级模块 - 升级状态
'otaDefaultUpdateDesc':
'يتضمن هذا التحديث تحسينات في الأداء وإصلاحات للأخطاء.',
'otaGetLatestVersionFailed': 'فشل الحصول على معلومات أحدث إصدار',
'otaGetVersionInfoFailed': 'فشل الحصول على معلومات الإصدار',
'otaCheckingDeviceStatus': 'جارٍ التحقق من حالة الجهاز...',
'otaDownloadFailedCheckNetwork': 'فشل التنزيل، يرجى التحقق من اتصال الشبكة',
'otaDownloadFailed': 'فشل التنزيل',
'otaPreparingConnection': 'جارٍ تحضير اتصال الجهاز...',
'otaConnectingDevice': 'جارٍ الاتصال بالجهاز...',
'otaUpgradeStarted': 'بدأت ترقية OTA...',
'otaUpgradeProgressWithPercent': 'تقدم الترقية: @percent%',
'otaUpgradeSuccessComplete': 'اكتملت الترقية بنجاح',
'otaUpgradeFailedWithCode': 'فشلت الترقية، رمز الخطأ: @code',
'otaUpgradeFailedTitle': 'فشلت الترقية',
'otaUpgradeFailedDesc':
'يرجى التحقق من اتصال الجهاز أو حزمة التحديث، رمز الخطأ: @code',
'otaDeviceDisconnected': 'تم قطع اتصال الجهاز',
'otaDeviceConnected': 'تم اتصال الجهاز',
// 音乐模块
"noMusic": "لا توجد موسيقى", // 暂无音乐
"noPlayingMusic": "لا توجد موسيقى قيد التشغيل", // 暂无播放音乐

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

@ -167,6 +167,26 @@ const Map<String, String> bgBG = {
'checkConnectionStatusFailed':
'Неуспешна проверка на състоянието на връзката',
// 蓝牙扫描模块
'bleInitFailedWithError': 'Неуспешна инициализация на Bluetooth: @error',
'needBluetoothAndLocationPermission': 'За сканиране на устройства са необходими разрешения за Bluetooth и местоположение',
'permissionRequestFailedWithError': 'Неуспешна заявка за разрешение: @error',
'needPermission': 'Необходимо разрешение',
'blePermissionDialogContent': 'Това приложение изисква разрешения за Bluetooth и местоположение за сканиране на устройства. Моля, включете ги в Настройки.',
'needEnableBluetooth': 'Включете Bluetooth',
'enableBluetoothDialogContent': 'Моля, включете Bluetooth за сканиране и свързване на устройства.',
'bleScanFailedWithError': 'Неуспешно сканиране: @error',
'bleConnectionSuccess': 'Успешно свързване',
'bleConnectedToDevice': 'Свързан към @device',
'bleConnectionFailedWithError': 'Неуспешно свързване: @error',
'bleDisconnected': 'Прекъсната връзка',
'bleDeviceDisconnected': 'Устройството е прекъснато',
'bleDisconnectFailedWithError': 'Неуспешно прекъсване на връзката: @error',
'signalStrong': 'Strong',
'signalMedium': 'Medium',
'signalWeak': 'Weak',
'signalVeryWeak': 'Very Weak',
// 发现页
"searchAi": "Търсене на AI функции...",
"exploreSlogan": "Интелигентни слушалки, безгранични възможности",
@ -563,20 +583,20 @@ const Map<String, String> bgBG = {
// Meeting模块 - 文件操作
'importing': 'Importing...',
'batchImporting': 'Batch importing...',
'importingLocalRecordings': 'Importing local recordings...',
'importFailed': 'Import file failed: {filePath}, error: {error}',
'importSuccess': 'Successfully imported {count} local recordings',
'importError': 'Import failed: {error}',
'pleaseSelectAudioFile': 'Please select audio file',
'importingLocalRecordings': 'Импортиране на локални записи...',
'importFailed': 'Неуспешен импорт на файл: {filePath}, грешка: {error}',
'importSuccess': 'Успешно импортирани {count} локални записа',
'importError': 'Неуспешен импорт: {error}',
'pleaseSelectAudioFile': 'Моля, изберете аудио файл',
'shareAudio': 'Share Meeting Audio',
'shareComplete': 'Share complete!',
'shareFailed': 'Share failed: {error}',
'fileProcessingFailed': 'File processing failed: {filePath}, error: {error}',
'shareFailed': 'Неуспешно споделяне: {error}',
'fileProcessingFailed': 'Неуспешна обработка на файл: {filePath}, грешка: {error}',
// Meeting模块 - 思维导图
'saveMindMap': 'Запази интелектуална карта',
'shareMindMap': 'Share Mind Map',
'shareSuccess': 'Share Success',
'shareSuccess': 'Успешно споделяне',
// Meeting模块 - AI问答
'askAI': 'Ask AI ...',
@ -612,9 +632,9 @@ const Map<String, String> bgBG = {
// 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).',
'syncToVoitransApp': 'Sync VOITRANS APP',
'transcriptionRecord': 'Transcription Record',
'Автоматично синхронизирайте записите си в облака. Можете да възпроизвеждате, управлявате и споделяте записи чрез всяко приложение VOITRANS или VOITRANS Web (web.voitrans.com).',
'syncToVoitransApp': 'Синхронизирай с VOITRANS APP',
'transcriptionRecord': 'Запис на транскрипция',
// Meeting模块 - 我的页面
'transcriptionRecords': 'Записи на транскрипции',
@ -701,7 +721,7 @@ const Map<String, String> bgBG = {
'purchase': 'Покупка',
// Meeting模块 - 录音语言
'recordLanguage': 'Recording Language',
'recordLanguage': 'Език на записа',
'cantonese': 'Cantonese',
'sichuan': 'Sichuan Dialect',
'shanghai': 'Shanghai Dialect',
@ -731,7 +751,7 @@ const Map<String, String> bgBG = {
"memberService": "Member Service",
"bindRewardTitle": "Rewards",
"bindRewardSimpleDesc":
"First bind device reward has been issued. Tap OK to close.",
"Наградата за първо свързване на устройство е издадена. Натиснете ОК за затваряне.",
"joinDevice": "Свързано устройство:",
"accountId": "ID на акаунта:",
"systemSetting": "Системни настройки",
@ -883,6 +903,13 @@ const Map<String, String> bgBG = {
'Искаме да знаем причината за доклада ви, можете да опишете проблема, с който сте се сблъскали.',
'generatedByAi': 'Генерирано от AI',
// Agent模块 - 工具调用
'toolCall': 'Tool Call',
'noResult': 'No Result',
'noToolCallContentToCopy': 'No tool call content to copy',
'toolCallDetails': 'Tool Call Details:',
'toolCallContentCopied': 'Tool call content copied to clipboard',
// Agent模块 - 音乐卡片
'recommendedMusic': 'Ето някои препоръчани музики:',
'playList': 'Плейлист',
@ -903,6 +930,28 @@ const Map<String, String> bgBG = {
"bicycling": "Колоездене",
"tsransit": "Обществен транспорт",
// Agent模块 - 导航选择
'selectNavigationApp': 'Select Navigation App',
'amapMap': 'Amap',
'useAmapNavigation': 'Navigate with Amap',
'baiduMap': 'Baidu Maps',
'useBaiduNavigation': 'Navigate with Baidu Maps',
'googleMap': 'Google Maps',
'useGoogleNavigation': 'Navigate with Google Maps',
'appleMap': 'Apple Maps',
'useAppleNavigation': 'Navigate with Apple Maps',
'builtInNavigation': 'Built-in Navigation',
'useBuiltInNavigation': 'Navigate with built-in map',
'navigationStartFailed': 'Неуспешно стартиране на навигацията',
'cannotPlayMusicListRetryLater': 'Не може да се възпроизведе музикалният списък, моля опитайте отново по-късно',
'cannotPlaySong': 'Cannot play song',
'openMapError': 'Грешка при отваряне на картата',
'pleaseInstallAmapApp': 'Моля, първо инсталирайте приложението Amap',
'pleaseInstallBaiduMapApp': 'Моля, първо инсталирайте приложението Baidu Maps',
'appleMapStartFailed': 'Неуспешно стартиране на Apple Maps',
'appleMapUnavailable': 'Apple Maps unavailable',
'openAppleMapError': 'Грешка при отваряне на Apple Maps',
// Agent模块 - 天气卡片
'weatherQuery': 'Заявка за времето:',
'highest': 'Най-висока',
@ -975,8 +1024,18 @@ const Map<String, String> bgBG = {
// 翻译模块 - 文本翻译
"languageDetectionFailed": "Неуспешно откриване на езика",
// 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'Изключи плаващ прозорец',
'enableFloatingWindow': 'Включи плаващ прозорец',
'permissionTip': 'Съвет за разрешение',
'micPermissionRequiredForRecording': 'За записване е необходимо разрешение за микрофон',
'deleteTranslationRecordError': 'Грешка при изтриване на запис за превод: @error',
"translationFailed": "Неуспешен превод",
"translating": "Превеждане",
"translate": "Преведи",
"pleaseInputText": "Моля въведете текст",
"inputTextToTranslate": "Моля, въведете текста за превод",
"textTooLong": "Текстът е твърде дълъг, макс 5000 символа",
// 翻译模块 - 历史记录
@ -1143,9 +1202,9 @@ const Map<String, String> bgBG = {
// 权限模块
'meetingStoragePermission': 'Storage',
'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.',
'Установихме, че сте отказали постоянно разрешението за съхранение. За да продължите да използвате тази функция, моля отидете в настройките на приложението, за да включите ръчно разрешението за съхранение.',
'getPermissionStatusFailed':
'Неуспешно получаване на състоянието на разрешенията',
'communicationPermissions': 'Разрешения за комуникация',
@ -1414,6 +1473,49 @@ const Map<String, String> bgBG = {
"removeEarbudsEnsureBattery":
"Извадете двете слушалки и се уверете, че батерията на двете е над 20%",
// OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': 'New version @version found',
'otaConfirmUpdateNow': 'Update now?',
'otaUpdate': 'Update',
'otaUpgradeSuccess': 'Успешна актуализация',
'otaUpgradeCompleteRepair': 'Актуализацията на фърмуера е завършена!\n\nУстройството трябва да бъде сдвоено отново, за да работи правилно. Да отидете на страницата за сдвояване сега?',
'otaPairLater': 'Pair Later',
'otaPairNow': 'Pair Now',
'okConfirm': 'OK',
// OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'Error checking BLE connection: @error',
'otaBleNotConnected': 'BLE Device Not Connected',
'otaBleNeedConnection': 'Firmware upgrade requires BLE device connection\nPlease ensure device is properly connected and try again',
'otaDeviceInfoUnavailableTitle': 'Device Info Unavailable',
'otaCannotGetDeviceInfo': 'Cannot get device info\nPlease reconnect device or try again later',
'otaBleCheckFailed': 'BLE Connection Check Failed',
'otaCannotGetDeviceInfoCheckConnection': 'Cannot get device info, please check device connection',
'otaCannotGetProductInfoWithName': 'Cannot get product info, device name: @deviceName',
'otaCannotGetBatteryInfo': 'Cannot get valid battery info',
'otaLowBattery': 'Low Battery',
'otaSingleBatteryLow': 'Device battery too low for firmware upgrade\nRequirement: battery must be above 20%\nCurrent: @ear @battery%\nPlease charge and try again',
'otaDoubleBatteryLow': 'Device battery too low for firmware upgrade\nRequirement: both earbuds must be above 20%\nCurrent: Left @left%, Right @right%\nPlease charge and try again',
'otaBatteryCheckFailed': 'Battery Check Failed',
// OTA升级模块 - 升级状态
'otaDefaultUpdateDesc': 'This update includes performance optimizations and bug fixes.',
'otaGetLatestVersionFailed': 'Failed to get latest version info',
'otaGetVersionInfoFailed': 'Failed to get version info',
'otaCheckingDeviceStatus': 'Checking device status...',
'otaDownloadFailedCheckNetwork': 'Download failed, please check network connection',
'otaDownloadFailed': 'Download Failed',
'otaPreparingConnection': 'Preparing device connection...',
'otaConnectingDevice': 'Connecting to device...',
'otaUpgradeStarted': 'OTA upgrade started...',
'otaUpgradeProgressWithPercent': 'Upgrade progress: @percent%',
'otaUpgradeSuccessComplete': 'Upgrade completed successfully',
'otaUpgradeFailedWithCode': 'Upgrade failed, error code: @code',
'otaUpgradeFailedTitle': 'Upgrade Failed',
'otaUpgradeFailedDesc': 'Please check device connection or update package, error code: @code',
'otaDeviceDisconnected': 'Device disconnected',
'otaDeviceConnected': 'Device connected',
// 音乐模块
"noMusic": "Няма музика", // 暂无音乐
"noPlayingMusic": "Няма възпроизвеждаща се музика", // 暂无播放音乐

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

@ -166,6 +166,26 @@ const Map<String, String> csCZ = {
'right': 'Pravý',
'checkConnectionStatusFailed': 'Kontrola stavu připojení selhala',
// 蓝牙扫描模块
'bleInitFailedWithError': 'Inicializace Bluetooth selhala: @error',
'needBluetoothAndLocationPermission': 'Pro vyhledávání zařízení jsou vyžadována oprávnění Bluetooth a polohy',
'permissionRequestFailedWithError': 'Žádost o oprávnění selhala: @error',
'needPermission': 'Vyžadováno oprávnění',
'blePermissionDialogContent': 'Tato aplikace vyžaduje oprávnění Bluetooth a polohy pro vyhledávání zařízení. Povolte je prosím v Nastavení.',
'needEnableBluetooth': 'Zapnout Bluetooth',
'enableBluetoothDialogContent': 'Zapněte prosím Bluetooth pro vyhledávání a připojení zařízení.',
'bleScanFailedWithError': 'Vyhledávání selhalo: @error',
'bleConnectionSuccess': 'Připojení úspěšné',
'bleConnectedToDevice': 'Připojeno k @device',
'bleConnectionFailedWithError': 'Připojení selhalo: @error',
'bleDisconnected': 'Odpojeno',
'bleDeviceDisconnected': 'Zařízení odpojeno',
'bleDisconnectFailedWithError': 'Odpojení selhalo: @error',
'signalStrong': 'Strong',
'signalMedium': 'Medium',
'signalWeak': 'Weak',
'signalVeryWeak': 'Very Weak',
// 发现页
"searchAi": "Hledat AI funkce...",
"exploreSlogan": "Chytrá sluchátka, nekonečné možnosti",
@ -420,28 +440,28 @@ const Map<String, String> csCZ = {
'guideAwakenSuccess': 'Skvělé! Lily je vzhůru – požádejte ji o pomoc.',
'confirmInput': 'Potvrdit vstup',
'guideClickSendPrefix': 'Klepněte na odeslat, ',
'guideWeatherStart': 'Řekněte Lily: „Jaké je dnes počasí?“',
'guideWeatherStart': 'Řekněte Lily: „Jaké je dnes počasí?"',
'guideWeatherInput': 'Jaké je dnes počasí?',
'guideWeatherSend': 'Lily nahlásí počasí v reálném čase',
'guideWeatherEnd': 'Lily může hlásit počasí živě – zkuste jiné příkazy',
'guideMusicStart': 'Řekněte Lily: „Zahraj nějaký rock“',
'guideMusicStart': 'Řekněte Lily: „Zahraj nějaký rock"',
'guideMusicInput': 'Zahraj nějaký rock',
'guideMusicSend': 'Lily pro vás najde hudbu',
'guideMusicEnd': 'Lily našla hudbu – zkuste jiné příkazy',
'guideNavStart': 'Řekněte Lily: „Naviguj na letiště Šen-čen“',
'guideNavStart': 'Řekněte Lily: „Naviguj na letiště Šen-čen"',
'guideNavInput': 'Naviguj na letiště Šen-čen',
'guideNavSend': 'Lily naplánuje trasu',
'guideNavEnd': 'Navigace nastavena – zkuste jiné příkazy',
'guideMeetingStart':
'Řekněte Lily: „Vytvoř připomínku schůzky na zítra ve 3 odpoledne“',
'Řekněte Lily: „Vytvoř připomínku schůzky na zítra ve 3 odpoledne"',
'guideMeetingInput': 'Vytvoř připomínku schůzky na zítra ve 3 odpoledne',
'guideMeetingSend': 'Lily vytvoří připomínku schůzky',
'guideMeetingEnd': 'Připomínka vytvořena – zkuste jiné příkazy',
'guidePhoneStart': 'Řekněte Lily: „Zavolej mámě“',
'guidePhoneStart': 'Řekněte Lily: „Zavolej mámě"',
'guidePhoneInput': 'Zavolej mámě',
'guidePhoneSend': 'Lily uskuteční hovor',
'guidePhoneEnd': 'Hovor zahájen – zkuste jiné příkazy',
'guideSmsStart': 'Řekněte Lily: „Pošli tátovi SMS: Přijdu na večeři domů“',
'guideSmsStart': 'Řekněte Lily: „Pošli tátovi SMS: Přijdu na večeři domů"',
'guideSmsInput': 'SMS tátovi: Přijdu na večeři domů',
'guideSmsSend': 'Lily odešle zprávu',
'guideSmsEnd': 'Zpráva odeslána – hlasové ovládání je pohodlné',
@ -546,30 +566,30 @@ const Map<String, String> csCZ = {
'custom': 'Vlastní',
'pleaseEnter': 'Prosím zadejte',
'viewAll': 'View All',
'recordingLanguage': 'Recording Language',
'recordingLanguage': 'Jazyk nahrávání',
'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.',
'AI analýza identifikuje klíčové události v nahrávkách a umožňuje vám vybrat důležité události pro generování pomocí AI.',
// Meeting模块 - 文件操作
'importing': 'Importing...',
'batchImporting': 'Batch importing...',
'importingLocalRecordings': 'Importing local recordings...',
'importFailed': 'Import file failed: {filePath}, error: {error}',
'importSuccess': 'Successfully imported {count} local recordings',
'importError': 'Import failed: {error}',
'pleaseSelectAudioFile': 'Please select audio file',
'importingLocalRecordings': 'Importování místních nahrávek...',
'importFailed': 'Import souboru selhal: {filePath}, chyba: {error}',
'importSuccess': 'Úspěšně importováno {count} místních nahrávek',
'importError': 'Import selhal: {error}',
'pleaseSelectAudioFile': 'Vyberte prosím zvukový soubor',
'shareAudio': 'Share Meeting Audio',
'shareComplete': 'Share complete!',
'shareFailed': 'Share failed: {error}',
'fileProcessingFailed': 'File processing failed: {filePath}, error: {error}',
'shareFailed': 'Sdílení selhalo: {error}',
'fileProcessingFailed': 'Zpracování souboru selhalo: {filePath}, chyba: {error}',
// Meeting模块 - 思维导图
'saveMindMap': 'Uložit myšlenkovou mapu',
'shareMindMap': 'Share Mind Map',
'shareSuccess': 'Share Success',
'shareSuccess': 'Sdílení úspěšné',
// Meeting模块 - AI问答
'askAI': 'Ask AI ...',
@ -605,9 +625,9 @@ const Map<String, String> csCZ = {
// 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).',
'Automaticky synchronizujte nahrávky do cloudu. Nahrávky můžete přehrávat, spravovat a sdílet prostřednictvím libovolné aplikace VOITRANS nebo VOITRANS Web (web.voitrans.com).',
'syncToVoitransApp': 'Sync VOITRANS APP',
'transcriptionRecord': 'Transcription Record',
'transcriptionRecord': 'Záznam přepisu',
// Meeting模块 - 我的页面
'transcriptionRecords': 'Záznamy přepisů',
@ -693,7 +713,7 @@ const Map<String, String> csCZ = {
'purchase': 'Purchase',
// Meeting模块 - 录音语言
'recordLanguage': 'Recording Language',
'recordLanguage': 'Jazyk nahrávání',
'cantonese': 'Cantonese',
'sichuan': 'Sichuan Dialect',
'shanghai': 'Shanghai Dialect',
@ -723,7 +743,7 @@ const Map<String, String> csCZ = {
"memberService": "Member Service",
"bindRewardTitle": "Rewards",
"bindRewardSimpleDesc":
"First bind device reward has been issued. Tap OK to close.",
"Odměna za první propojení zařízení byla vydána. Klepněte na OK pro zavření.",
"joinDevice": "Připojené zařízení:",
"accountId": "ID účtu:",
"systemSetting": "Systémová nastavení",
@ -783,7 +803,7 @@ const Map<String, String> csCZ = {
"noMacAddress": "Žádná MAC adresa",
"licenseCode": "Licenční kód",
"confirmUnbind": "Potvrdit odpojení",
"confirmUnbindMessage": "Opravdu chcete odpojit zařízení „{deviceName}“?",
"confirmUnbindMessage": 'Opravdu chcete odpojit zařízení „{deviceName}"?',
"confirmUnbindAction": "Potvrdit odpojení",
// Agent模块 - 主界面
@ -872,6 +892,13 @@ const Map<String, String> csCZ = {
'Chceme znát důvod vašeho hlášení, můžete popsat problém, se kterým jste se setkali.',
'generatedByAi': 'Generováno AI',
// Agent模块 - 工具调用
'toolCall': 'Tool Call',
'noResult': 'No Result',
'noToolCallContentToCopy': 'No tool call content to copy',
'toolCallDetails': 'Tool Call Details:',
'toolCallContentCopied': 'Tool call content copied to clipboard',
// Agent模块 - 音乐卡片
'recommendedMusic': 'Zde jsou některé doporučené hudby:',
'playList': 'Playlist',
@ -892,6 +919,28 @@ const Map<String, String> csCZ = {
"bicycling": "Jízda na kole",
"tsransit": "Veřejná doprava",
// Agent模块 - 导航选择
'selectNavigationApp': 'Select Navigation App',
'amapMap': 'Amap',
'useAmapNavigation': 'Navigate with Amap',
'baiduMap': 'Baidu Maps',
'useBaiduNavigation': 'Navigate with Baidu Maps',
'googleMap': 'Google Maps',
'useGoogleNavigation': 'Navigate with Google Maps',
'appleMap': 'Apple Maps',
'useAppleNavigation': 'Navigate with Apple Maps',
'builtInNavigation': 'Built-in Navigation',
'useBuiltInNavigation': 'Navigate with built-in map',
'navigationStartFailed': 'Spuštění navigace selhalo',
'cannotPlayMusicListRetryLater': 'Nelze přehrát seznam hudby, zkuste to prosím později',
'cannotPlaySong': 'Cannot play song',
'openMapError': 'Chyba při otevírání mapy',
'pleaseInstallAmapApp': 'Nejprve prosím nainstalujte aplikaci Amap',
'pleaseInstallBaiduMapApp': 'Nejprve prosím nainstalujte aplikaci Baidu Maps',
'appleMapStartFailed': 'Spuštění Apple Maps selhalo',
'appleMapUnavailable': 'Apple Maps unavailable',
'openAppleMapError': 'Chyba při otevírání Apple Maps',
// Agent模块 - 天气卡片
'weatherQuery': 'Dotaz na počasí:',
'highest': 'Nejvyšší',
@ -964,8 +1013,18 @@ const Map<String, String> csCZ = {
// 翻译模块 - 文本翻译
"languageDetectionFailed": "Detekce jazyka selhala",
// 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'Zakázat plovoucí okno',
'enableFloatingWindow': 'Povolit plovoucí okno',
'permissionTip': 'Upozornění na oprávnění',
'micPermissionRequiredForRecording': 'Pro nahrávání je vyžadováno oprávnění k mikrofonu',
'deleteTranslationRecordError': 'Chyba při mazání záznamu překladu: @error',
"translationFailed": "Překlad selhal",
"translating": "Translating",
"translate": "Přeložit",
"pleaseInputText": "Zadejte prosím text",
"inputTextToTranslate": "Zadejte text k překladu",
"textTooLong": "Text je příliš dlouhý, maximálně 5000 znaků",
// 翻译模块 - 历史记录
@ -1125,9 +1184,9 @@ const Map<String, String> csCZ = {
// 权限模块
'meetingStoragePermission': 'Storage',
'meetingStoragePermissionExplanation':
'We need access to storage permissions so you can select and upload audio files.',
'Potřebujeme přístup k oprávnění úložiště, abyste mohli vybírat a nahrávat zvukové soubory.',
'meetingStoragePermissionPermanentDenial':
'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.',
'Zjistili jsme, že jste trvale odmítli oprávnění k úložišti. Chcete-li tuto funkci dále používat, přejděte prosím do nastavení aplikace a ručně povolte oprávnění k úložišti.',
'getPermissionStatusFailed': 'Získání stavu oprávnění selhalo',
'communicationPermissions': 'Komunikační oprávnění',
'bluetoothPermissions': 'Oprávnění Bluetooth',
@ -1390,6 +1449,49 @@ const Map<String, String> csCZ = {
"removeEarbudsEnsureBattery":
"Vyjměte obě sluchátka a ujistěte se, že baterie obou je nad 20%",
// OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': 'New version @version found',
'otaConfirmUpdateNow': 'Update now?',
'otaUpdate': 'Update',
'otaUpgradeSuccess': 'Aktualizace úspěšná',
'otaUpgradeCompleteRepair': 'Aktualizace firmwaru dokončena!\n\nPro správné fungování je třeba zařízení znovu spárovat. Přejít na stránku párování?',
'otaPairLater': 'Pair Later',
'otaPairNow': 'Pair Now',
'okConfirm': 'OK',
// OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'Chyba při kontrole BLE připojení: @error',
'otaBleNotConnected': 'BLE zařízení nepřipojeno',
'otaBleNeedConnection': 'Aktualizace firmwaru vyžaduje připojení BLE zařízení\nUjistěte se prosím, že je zařízení správně připojeno, a zkuste to znovu',
'otaDeviceInfoUnavailableTitle': 'Informace o zařízení nedostupné',
'otaCannotGetDeviceInfo': 'Nelze získat informace o zařízení\nZnovu připojte zařízení nebo to zkuste později',
'otaBleCheckFailed': 'Kontrola BLE připojení selhala',
'otaCannotGetDeviceInfoCheckConnection': 'Nelze získat informace o zařízení, zkontrolujte prosím připojení zařízení',
'otaCannotGetProductInfoWithName': 'Nelze získat informace o produktu, název zařízení: @deviceName',
'otaCannotGetBatteryInfo': 'Cannot get valid battery info',
'otaLowBattery': 'Low Battery',
'otaSingleBatteryLow': 'Baterie zařízení je příliš slabá pro aktualizaci firmwaru\nPožadavek: baterie musí být nad 20 %\nAktuálně: @ear @battery %\nNabijte prosím zařízení a zkuste to znovu',
'otaDoubleBatteryLow': 'Baterie zařízení je příliš slabá pro aktualizaci firmwaru\nPožadavek: obě sluchátka musí mít baterii nad 20 %\nAktuálně: Levé @left %, Pravé @right %\nNabijte prosím zařízení a zkuste to znovu',
'otaBatteryCheckFailed': 'Kontrola baterie selhala',
// OTA升级模块 - 升级状态
'otaDefaultUpdateDesc': 'This update includes performance optimizations and bug fixes.',
'otaGetLatestVersionFailed': 'Nepodařilo se získat informace o nejnovější verzi',
'otaGetVersionInfoFailed': 'Nepodařilo se získat informace o verzi',
'otaCheckingDeviceStatus': 'Kontrola stavu zařízení...',
'otaDownloadFailedCheckNetwork': 'Stahování selhalo, zkontrolujte prosím připojení k síti',
'otaDownloadFailed': 'Stahování selhalo',
'otaPreparingConnection': 'Příprava připojení zařízení...',
'otaConnectingDevice': 'Připojování k zařízení...',
'otaUpgradeStarted': 'OTA upgrade started...',
'otaUpgradeProgressWithPercent': 'Upgrade progress: @percent%',
'otaUpgradeSuccessComplete': 'Aktualizace byla úspěšně dokončena',
'otaUpgradeFailedWithCode': 'Aktualizace selhala, kód chyby: @code',
'otaUpgradeFailedTitle': 'Aktualizace selhala',
'otaUpgradeFailedDesc': 'Zkontrolujte prosím připojení zařízení nebo aktualizační balíček, kód chyby: @code',
'otaDeviceDisconnected': 'Zařízení odpojeno',
'otaDeviceConnected': 'Zařízení připojeno',
// 音乐模块
"noMusic": "Žádná hudba", // 暂无音乐
"noPlayingMusic": "Žádná přehrávaná hudba", // 暂无播放音乐

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

@ -166,6 +166,26 @@ const Map<String, String> daDK = {
'right': 'Højre',
'checkConnectionStatusFailed': 'Kontrol af forbindelsesstatus mislykkedes',
// 蓝牙扫描模块
'bleInitFailedWithError': 'Bluetooth-initialisering mislykkedes: @error',
'needBluetoothAndLocationPermission': 'Bluetooth- og placeringstilladelser kræves for at scanne enheder',
'permissionRequestFailedWithError': 'Tilladelsesanmodning mislykkedes: @error',
'needPermission': 'Tilladelse påkrævet',
'blePermissionDialogContent': 'Appen kræver Bluetooth- og placeringstilladelser for at scanne enheder. Aktivér dem i Indstillinger.',
'needEnableBluetooth': 'Aktivér Bluetooth',
'enableBluetoothDialogContent': 'Aktivér Bluetooth for at scanne og forbinde enheder.',
'bleScanFailedWithError': 'Scanning mislykkedes: @error',
'bleConnectionSuccess': 'Forbindelse oprettet',
'bleConnectedToDevice': 'Forbundet til @device',
'bleConnectionFailedWithError': 'Forbindelse mislykkedes: @error',
'bleDisconnected': 'Frakoblet',
'bleDeviceDisconnected': 'Enhed frakoblet',
'bleDisconnectFailedWithError': 'Frakobling mislykkedes: @error',
'signalStrong': 'Stærkt signal',
'signalMedium': 'Middel signal',
'signalWeak': 'Svagt signal',
'signalVeryWeak': 'Meget svagt signal',
// 发现页
"searchAi": "Søg AI funktioner...",
"exploreSlogan": "Smarte øretelefoner, uendelige muligheder",
@ -726,7 +746,7 @@ const Map<String, String> daDK = {
"memberService": "Member Service",
"bindRewardTitle": "Rewards",
"bindRewardSimpleDesc":
"First bind device reward has been issued. Tap OK to close.",
"Belønning for første enhedsbinding er udstedt. Tryk OK for at lukke.",
"joinDevice": "Tilsluttet enhed:",
"accountId": "Konto-ID:",
"systemSetting": "Systemindstillinger",
@ -776,19 +796,19 @@ const Map<String, String> daDK = {
"loading": "Indlæser...",
// 设备管理模块
"deviceTypeUnknown": "Unknown Device",
"deviceTypeUnknown": "Ukendt enhed",
"deviceTypeClassicBluetoothHeadset": "Classic Bluetooth Headset",
"deviceTypeBleBluetoothHeadset": "BLE Bluetooth Headset",
"deviceTypeSmartVoiceRecorder": "Smart Voice Recorder",
"deviceTypeSmartVoiceRecorder": "Smart stemmeoptager",
"deviceTypeSmartEye": "Smart Glasses",
"unbind": "Afbind",
"noDevicesBound": "No devices bound yet",
"pleaseBindDeviceFirst": "Please bind a device first to manage",
"noDevicesBound": "Ingen enheder bundet endnu",
"pleaseBindDeviceFirst": "Bind venligst en enhed først for at administrere",
"noMacAddress": "No MAC Address",
"licenseCode": "License Code",
"confirmUnbind": "Confirm Unbind",
"confirmUnbindMessage":
"Are you sure you want to unbind device \"{deviceName}\"?",
"Er du sikker på, at du vil afbinde enheden \"{deviceName}\"?",
"confirmUnbindAction": "Confirm Unbind",
// Agent模块 - 主界面
@ -819,7 +839,7 @@ const Map<String, String> daDK = {
"loadMoreMessages": "Indlæs flere beskeder...",
"loadFailedClickRetry": "Indlæsning mislykkedes, klik for at prøve igen",
"swipeUpForMore": "Stryg op for mere",
"callingTool": "I'm helping you, please wait!", // 正在帮您,请稍等!
"callingTool": "Jeg hjælper dig, vent venligst!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断
'voice_interrupt_tip': 'Når aktiveret: AI\'en bliver ikke afbrudt af din stemme, mens den taler, og kan kun håndtere én samtaleomgang ad gangen. For at starte en ny omgang skal du bare sige vækkeordet.',
@ -830,7 +850,7 @@ const Map<String, String> daDK = {
"presetNews": "Today's news", // 今日新闻
"presetFood": "Nearby food", // 美食
"playSomeMusic": "Play some popular music", // 播放一些流行音乐
"navigationTo": "Please help me navigate to", // 导航到
"navigationTo": "Hjælp mig venligst med at navigere til", // 导航到
"todayWeather": "How's the weather today?", // 今日天气
"todayNews": "What's the news today?", // 今日新闻
"nearbyFood": "What delicious food is nearby?", // 美食
@ -877,6 +897,13 @@ const Map<String, String> daDK = {
'Vi vil gerne vide årsagen til din rapport, du kan beskrive problemet du stødte på.',
'generatedByAi': 'Genereret af AI',
// Agent模块 - 工具调用
'toolCall': 'Værktøjskald',
'noResult': 'Intet resultat',
'noToolCallContentToCopy': 'Intet værktøjskald at kopiere',
'toolCallDetails': 'Værktøjskaldsdetaljer:',
'toolCallContentCopied': 'Værktøjskald kopieret til udklipsholder',
// Agent模块 - 音乐卡片
'recommendedMusic': 'Her er nogle anbefalede musikker:',
'playList': 'Afspilningsliste',
@ -897,6 +924,28 @@ const Map<String, String> daDK = {
"bicycling": "Cykling",
"tsransit": "Offentlig transport",
// Agent模块 - 导航选择
'selectNavigationApp': 'Vælg navigationsapp',
'amapMap': 'Amap',
'useAmapNavigation': 'Navigér med Amap',
'baiduMap': 'Baidu Maps',
'useBaiduNavigation': 'Navigér med Baidu Maps',
'googleMap': 'Google Maps',
'useGoogleNavigation': 'Navigér med Google Maps',
'appleMap': 'Apple Maps',
'useAppleNavigation': 'Navigér med Apple Maps',
'builtInNavigation': 'Indbygget navigation',
'useBuiltInNavigation': 'Navigér med indbygget kort',
'navigationStartFailed': 'Kunne ikke starte navigation',
'cannotPlayMusicListRetryLater': 'Kan ikke afspille musiklisten, prøv igen senere',
'cannotPlaySong': 'Kan ikke afspille sangen',
'openMapError': 'Fejl ved åbning af kort',
'pleaseInstallAmapApp': 'Installér Amap-appen først',
'pleaseInstallBaiduMapApp': 'Installér Baidu Maps-appen først',
'appleMapStartFailed': 'Apple Maps kunne ikke starte',
'appleMapUnavailable': 'Apple Maps er ikke tilgængeligt',
'openAppleMapError': 'Fejl ved åbning af Apple Maps',
// Agent模块 - 天气卡片
'weatherQuery': 'Vejrforespørgsel:',
'highest': 'Højeste',
@ -950,8 +999,8 @@ const Map<String, String> daDK = {
"strongWind": "Kraftig vind",
// 翻译模块 - 中间层
"pictureTranslation": "Picture Translation",
"textTranslation": "Text Translation",
"pictureTranslation": "Billedoversættelse",
"textTranslation": "Tekstoversættelse",
// 翻译模块 - 主页
"translationHistory": "Oversættelseshistorik",
@ -964,18 +1013,28 @@ const Map<String, String> daDK = {
"me": "Me",
"counterPart": "Counterpart",
"bluetoothCallStateError":
"Please make sure the Bluetooth headset is connected to the phone and in a call state",
"Sørg venligst for, at Bluetooth-headsettet er forbundet til telefonen og i opkaldstilstand",
"autoDetect": "Auto Detect", // 自动检测
// 翻译模块 - 文本翻译
"languageDetectionFailed": "Language detection failed",
"translationFailed": "Translation failed",
"pleaseInputText": "Please input text",
"languageDetectionFailed": "Sprogregistrering mislykkedes",
// 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'Deaktivér flydende vindue',
'enableFloatingWindow': 'Aktivér flydende vindue',
'permissionTip': 'Tilladelsestip',
'micPermissionRequiredForRecording': 'Mikrofontilladelse kræves til optagelse',
'deleteTranslationRecordError': 'Fejl ved sletning af oversættelsespost: @error',
"translationFailed": "Oversættelse mislykkedes",
"translating": "Oversætter",
"translate": "Oversæt",
"pleaseInputText": "Indtast venligst tekst",
"inputTextToTranslate": "Indtast venligst teksten, der skal oversættes",
"textTooLong": "Text too long, max 5000 characters",
// 翻译模块 - 历史记录
"noTranslationHistory": "Ingen oversættelseshistorik",
"historyRecords": "History Records",
"historyRecords": "Historik",
"clearResults": "Clear Results",
"clearHistory": "Ryd historik",
"clearHistoryConfirm":
@ -988,12 +1047,12 @@ const Map<String, String> daDK = {
// 翻译模块 - 图片翻译
"selectImageSource": "Select Image Source",
"imagePreview": "Image Preview",
"translationResult": "Translation Result",
"translationResult": "Oversættelsesresultat",
"recognitionResult": "Recognition Result",
"translatedImagePreview": "Translated Image Preview",
"translatedImageLoadFailed": "Failed to load translated image",
"pleaseSelectImage": "Please select an image",
"imageLoadFailed": "Image load failed",
"translatedImagePreview": "Forhåndsvisning af oversat billede",
"translatedImageLoadFailed": "Kunne ikke indlæse oversat billede",
"pleaseSelectImage": "Vælg venligst et billede",
"imageLoadFailed": "Billedindlæsning mislykkedes",
"imageQuality": "Image Quality",
"maxSize": "Max Size",
"close": "Close",
@ -1002,38 +1061,38 @@ const Map<String, String> daDK = {
"setMaxSize": "Set Max Size",
"currentMaxSize": "Current: @pxpx",
"waitingForAction": "Waiting for action",
"pleaseSelectImageToStart": "Please select an image to start",
"pleaseSelectImageToStart": "Vælg venligst et billede for at starte",
"chooseImage": "Choose Image",
"openingCamera": "Opening camera...",
"openingPhotoAlbum": "Opening photo album...",
"cancelled": "Cancelled",
"userCancelledSelection": "User cancelled selection",
"translatingImage": "Translating Image",
"callingImageTranslateService": "Calling image translation service...",
"savingRecord": "Saving Record",
"savingTranslationResult": "Saving translation result...",
"translationCompleted": "Translation Completed",
"callingImageTranslateService": "Kalder billedoversættelsestjeneste...",
"savingRecord": "Gemmer optegnelse",
"savingTranslationResult": "Gemmer oversættelsesresultat...",
"translationCompleted": "Oversættelse fuldført",
"allStepsCompleted": "All steps completed",
"processingFailed": "Processing Failed",
"processingFailed": "Behandling mislykkedes",
"imageProcessingOrTranslationFailed":
"Image processing or translation failed. Please retry.\nError: {error}",
"Billedbehandling eller oversættelse mislykkedes. Prøv venligst igen.\nFejl: {error}",
"imageTooLarge": "Image size exceeds 4MB limit",
"imageTooLargeHint":
"Image size exceeds 4MB. Reduce quality or dimensions and retry",
"emptyTranslationResult": "Image translation API returned empty result",
"emptyTranslationResult": "Billedoversættelses-API returnerede tomt resultat",
"imageTranslationFailedTryLater":
"Image translation failed. Network issue or rate limit. Please try later",
"Billedoversættelse mislykkedes. Netværksproblem eller hastighedsbegrænsning. Prøv venligst igen senere",
"imageTranslationApiException":
"Image translation API exception. Check network and retry",
"permissionRequired": "Permission Required",
"cameraPermissionRequired": "Camera permission required to take photos",
"Billedoversættelses-API undtagelse. Kontroller netværket og prøv igen",
"permissionRequired": "Tilladelse påkrævet",
"cameraPermissionRequired": "Kameratilladelse kræves for at tage billeder",
"photoAlbumPermissionRequired":
"Photo album permission required to pick images",
"translationDetails": "Translation Details",
"Fotoalbumtilladelse kræves for at vælge billeder",
"translationDetails": "Oversættelsesdetaljer",
"originalImage": "Original Image",
"sourceLanguage": "Source Language",
"targetLanguage": "Target Language",
"translationTime": "Translation Time",
"translationTime": "Oversættelsestid",
"shareInDevelopment": "Sharing feature under development",
// 翻译模块 - 录音文件
@ -1391,6 +1450,49 @@ const Map<String, String> daDK = {
"removeEarbudsEnsureBattery":
"Tag begge øretelefoner ud og sørg for at batteriet på begge er over 20%",
// OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': 'Ny version @version fundet',
'otaConfirmUpdateNow': 'Opdatér nu?',
'otaUpdate': 'Opdatér',
'otaUpgradeSuccess': 'Opgradering gennemført',
'otaUpgradeCompleteRepair': 'Firmware-opgradering fuldført!\n\nEnheden skal parres igen. Gå til parringssiden?',
'otaPairLater': 'Par senere',
'otaPairNow': 'Par nu',
'okConfirm': 'OK',
// OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'Fejl ved BLE-kontrol: @error',
'otaBleNotConnected': 'BLE-enhed ikke forbundet',
'otaBleNeedConnection': 'Firmware-opgradering kræver BLE-forbindelse\nSørg for at enheden er forbundet og prøv igen',
'otaDeviceInfoUnavailableTitle': 'Enhedsinfo utilgængelig',
'otaCannotGetDeviceInfo': 'Kan ikke hente enhedsinfo\nTilslut enheden igen eller prøv senere',
'otaBleCheckFailed': 'BLE-kontrol mislykkedes',
'otaCannotGetDeviceInfoCheckConnection': 'Kan ikke hente enhedsinfo, kontrollér forbindelsen',
'otaCannotGetProductInfoWithName': 'Kan ikke hente produktinfo, enhedsnavn: @deviceName',
'otaCannotGetBatteryInfo': 'Kan ikke hente batteriinfo',
'otaLowBattery': 'Lavt batteri',
'otaSingleBatteryLow': 'Batteriniveau for lavt til opgradering\nKrav: batteri over 20%\nNuværende: @ear @battery%\nOplad og prøv igen',
'otaDoubleBatteryLow': 'Batteriniveau for lavt til opgradering\nKrav: begge ørepropper over 20%\nNuværende: Venstre @left%, Højre @right%\nOplad og prøv igen',
'otaBatteryCheckFailed': 'Batterikontrol mislykkedes',
// OTA升级模块 - 升级状态
'otaDefaultUpdateDesc': 'Opdateringen indeholder ydelsesforbedringer og fejlrettelser.',
'otaGetLatestVersionFailed': 'Kunne ikke hente seneste version',
'otaGetVersionInfoFailed': 'Kunne ikke hente versionsinfo',
'otaCheckingDeviceStatus': 'Kontrollerer enhedsstatus...',
'otaDownloadFailedCheckNetwork': 'Download mislykkedes, kontrollér netværksforbindelsen',
'otaDownloadFailed': 'Download mislykkedes',
'otaPreparingConnection': 'Forbereder enhedsforbindelse...',
'otaConnectingDevice': 'Forbinder til enhed...',
'otaUpgradeStarted': 'OTA-opgradering startet...',
'otaUpgradeProgressWithPercent': 'Opgraderingsforløb: @percent%',
'otaUpgradeSuccessComplete': 'Opgradering gennemført',
'otaUpgradeFailedWithCode': 'Opgradering mislykkedes, fejlkode: @code',
'otaUpgradeFailedTitle': 'Opgradering mislykkedes',
'otaUpgradeFailedDesc': 'Kontrollér forbindelse eller opdateringspakke, fejlkode: @code',
'otaDeviceDisconnected': 'Enhed frakoblet',
'otaDeviceConnected': 'Enhed forbundet',
// 音乐模块
"noMusic": "Ingen musik", // 暂无音乐
"noPlayingMusic": "Ingen musik afspilles", // 暂无播放音乐

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

@ -1,5 +1,4 @@
const Map<String, String> deDE = {
// 通用
'continue': 'Fortfahren',
'confirm': 'Bestätigen',
@ -19,11 +18,11 @@ const Map<String, String> deDE = {
"unknownError": "Unbekannter Fehler",
"asrConnectionFailed":
"Verbindung zum Spracherkennungsdienst fehlgeschlagen. Bitte Netzwerk prüfen oder es später erneut versuchen.",
"justNow": "Just now",
"minutesAgo": "@minutes minutes ago",
"yesterday": "Yesterday",
"daysAgo": "@days days ago",
"hoursAgo": "@hours hours ago",
"justNow": "Gerade eben",
"minutesAgo": "vor @minutes Minuten",
"yesterday": "Gestern",
"daysAgo": "vor @days Tagen",
"hoursAgo": "vor @hours Stunden",
// 启动页
"slogan": "Die Welt verbinden, jenseits der Stimme",
@ -170,6 +169,30 @@ const Map<String, String> deDE = {
'right': 'Rechts',
'checkConnectionStatusFailed': 'Verbindungsstatus-Überprüfung fehlgeschlagen',
// 蓝牙扫描模块
'bleInitFailedWithError': 'Bluetooth-Initialisierung fehlgeschlagen: @error',
'needBluetoothAndLocationPermission':
'Bluetooth- und Standortberechtigungen werden zum Scannen benoetigt',
'permissionRequestFailedWithError':
'Berechtigungsanfrage fehlgeschlagen: @error',
'needPermission': 'Berechtigung erforderlich',
'blePermissionDialogContent':
'Die App benoetigt Bluetooth- und Standortberechtigungen zum Scannen von Geraeten. Bitte aktivieren Sie diese in den Einstellungen.',
'needEnableBluetooth': 'Bluetooth aktivieren',
'enableBluetoothDialogContent':
'Bitte aktivieren Sie Bluetooth zum Scannen und Verbinden von Geraeten.',
'bleScanFailedWithError': 'Scan fehlgeschlagen: @error',
'bleConnectionSuccess': 'Verbindung erfolgreich',
'bleConnectedToDevice': 'Verbunden mit @device',
'bleConnectionFailedWithError': 'Verbindung fehlgeschlagen: @error',
'bleDisconnected': 'Getrennt',
'bleDeviceDisconnected': 'Geraet getrennt',
'bleDisconnectFailedWithError': 'Trennung fehlgeschlagen: @error',
'signalStrong': 'Stark',
'signalMedium': 'Mittel',
'signalWeak': 'Schwach',
'signalVeryWeak': 'Sehr schwach',
// 发现页
"searchAi": "KI-Funktionen suchen...",
"exploreSlogan": "Intelligente Kopfhörer, unendliche Möglichkeiten",
@ -246,66 +269,72 @@ const Map<String, String> deDE = {
'totalQuota': 'Gesamtkontingent',
'remaining': 'Verbleibend',
'featureDescription': 'Funktionsbeschreibung',
'paymentSuccess': 'Zahlung erfolgreich',
'paymentFailed': 'Zahlung fehlgeschlagen',
'gotIt': 'Verstanden',
'paymentFailedTryAgain': 'Zahlung fehlgeschlagen. Bitte versuchen Sie es erneut.',
'selectPaymentMethod': 'Zahlungsmethode auswählen',
'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay',
'paypalPay': 'PayPal',
'appleIap': 'Apple IAP',
'googleIap': 'Google IAP',
'wechatOrderCreateFailed': 'WeChat-Bestellung konnte nicht erstellt werden',
'alipayOrderCreateFailed': 'Alipay-Bestellung konnte nicht erstellt werden',
'appleOrderCreateFailed': 'Apple-Bestellung konnte nicht erstellt werden',
'googleOrderCreateFailed': 'Google-Bestellung konnte nicht erstellt werden',
'paypalOrderCreateFailed': 'PayPal-Bestellung konnte nicht erstellt werden',
'paymentException': 'Zahlungsausnahme',
'paymentLaunchFailed': 'Zahlungsstart fehlgeschlagen',
'paymentExceptionWithError': 'Zahlungsausnahme: @error',
'paymentProcessingCheckLater': 'Ihre Bestellung wird bearbeitet. Bitte überprüfen Sie es später.',
'paymentResultQueryException': 'Abfrage des Zahlungsergebnisses fehlgeschlagen: @error',
'orderConfirmedQuotaRefreshed': 'Bestellung bestätigt. Ihr Kontingent wurde aktualisiert.',
'paymentCompletedConfirming': 'Zahlung abgeschlossen. Bestätigung läuft…',
'paymentCancelled': 'Zahlung abgebrochen',
'paypalOpenedCompleteInBrowser': 'PayPal geöffnet. Bitte schließen Sie die Zahlung in Ihrem Browser ab.',
'paypalOpenFailed': 'PayPal-Zahlungsseite konnte nicht geöffnet werden',
'paymentTestTitle': 'Zahlungstest',
'paymentTestOrderInfo': 'Testbestellungsinformationen',
'paymentTestProductId': 'Produkt-ID',
'paymentTestProductDescription': 'Produktbeschreibung',
'paymentTestWechatDescription': 'WeChat Pay-Zahlungstest',
'paymentTestAlipayDescription': 'Alipay-Zahlungstest',
'paymentTestAmount': 'Betrag',
'paymentTestSelectAmount': 'Testbetrag auswählen',
'paying': 'Zahlung wird durchgeführt...',
'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': 'Zahlungsstatus',
'errorInfoWithMessage': 'Fehler: @message',
'retest': 'Erneut testen',
'paymentTestInstructionsTitle': 'Anleitung',
'paymentTestInstructionsContent': '1. Wählen Sie einen Testbetrag (empfohlen: ¥0,01)\n2. Klicken Sie auf die Zahlungsschaltfläche, um zu starten\n3. Schließen Sie die Zahlung in der Zahlungs-App ab\n4. Kehren Sie zurück, um das Ergebnis zu überprüfen',
'startingWechatPayment': 'WeChat Pay wird gestartet...',
'startingAlipayPayment': 'Alipay wird gestartet...',
'wechatPaymentSuccess': 'WeChat Pay-Zahlung erfolgreich!',
'wechatPaymentFailed': 'WeChat Pay-Zahlung fehlgeschlagen',
'wechatPaymentLaunchFailed': 'WeChat Pay konnte nicht gestartet werden',
'cannotLaunchWechatPayment': 'WeChat Pay kann nicht gestartet werden',
'wechatPaymentException': 'WeChat Pay-Ausnahme',
'wechatPaymentTestCompleted': 'WeChat Pay-Zahlungstest abgeschlossen',
'alipayPaymentSuccess': 'Alipay-Zahlung erfolgreich!',
'alipayPaymentFailed': 'Alipay-Zahlung fehlgeschlagen',
'alipayPaymentLaunchFailed': 'Alipay konnte nicht gestartet werden',
'cannotLaunchAlipayPayment': 'Alipay kann nicht gestartet werden',
'alipayPaymentException': 'Alipay-Ausnahme',
"insufficientIntegral": "Insufficient integral",
'paymentSuccess': 'Zahlung erfolgreich',
'paymentFailed': 'Zahlung fehlgeschlagen',
'gotIt': 'Verstanden',
'paymentFailedTryAgain':
'Zahlung fehlgeschlagen. Bitte versuchen Sie es erneut.',
'selectPaymentMethod': 'Zahlungsmethode auswählen',
'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay',
'paypalPay': 'PayPal',
'appleIap': 'Apple IAP',
'googleIap': 'Google IAP',
'wechatOrderCreateFailed': 'WeChat-Bestellung konnte nicht erstellt werden',
'alipayOrderCreateFailed': 'Alipay-Bestellung konnte nicht erstellt werden',
'appleOrderCreateFailed': 'Apple-Bestellung konnte nicht erstellt werden',
'googleOrderCreateFailed': 'Google-Bestellung konnte nicht erstellt werden',
'paypalOrderCreateFailed': 'PayPal-Bestellung konnte nicht erstellt werden',
'paymentException': 'Zahlungsausnahme',
'paymentLaunchFailed': 'Zahlungsstart fehlgeschlagen',
'paymentExceptionWithError': 'Zahlungsausnahme: @error',
'paymentProcessingCheckLater':
'Ihre Bestellung wird bearbeitet. Bitte überprüfen Sie es später.',
'paymentResultQueryException':
'Abfrage des Zahlungsergebnisses fehlgeschlagen: @error',
'orderConfirmedQuotaRefreshed':
'Bestellung bestätigt. Ihr Kontingent wurde aktualisiert.',
'paymentCompletedConfirming': 'Zahlung abgeschlossen. Bestätigung läuft…',
'paymentCancelled': 'Zahlung abgebrochen',
'paypalOpenedCompleteInBrowser':
'PayPal geöffnet. Bitte schließen Sie die Zahlung in Ihrem Browser ab.',
'paypalOpenFailed': 'PayPal-Zahlungsseite konnte nicht geöffnet werden',
'paymentTestTitle': 'Zahlungstest',
'paymentTestOrderInfo': 'Testbestellungsinformationen',
'paymentTestProductId': 'Produkt-ID',
'paymentTestProductDescription': 'Produktbeschreibung',
'paymentTestWechatDescription': 'WeChat Pay-Zahlungstest',
'paymentTestAlipayDescription': 'Alipay-Zahlungstest',
'paymentTestAmount': 'Betrag',
'paymentTestSelectAmount': 'Testbetrag auswählen',
'paying': 'Zahlung wird durchgeführt...',
'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': 'Zahlungsstatus',
'errorInfoWithMessage': 'Fehler: @message',
'retest': 'Erneut testen',
'paymentTestInstructionsTitle': 'Anleitung',
'paymentTestInstructionsContent':
'1. Wählen Sie einen Testbetrag (empfohlen: ¥0,01)\n2. Klicken Sie auf die Zahlungsschaltfläche, um zu starten\n3. Schließen Sie die Zahlung in der Zahlungs-App ab\n4. Kehren Sie zurück, um das Ergebnis zu überprüfen',
'startingWechatPayment': 'WeChat Pay wird gestartet...',
'startingAlipayPayment': 'Alipay wird gestartet...',
'wechatPaymentSuccess': 'WeChat Pay-Zahlung erfolgreich!',
'wechatPaymentFailed': 'WeChat Pay-Zahlung fehlgeschlagen',
'wechatPaymentLaunchFailed': 'WeChat Pay konnte nicht gestartet werden',
'cannotLaunchWechatPayment': 'WeChat Pay kann nicht gestartet werden',
'wechatPaymentException': 'WeChat Pay-Ausnahme',
'wechatPaymentTestCompleted': 'WeChat Pay-Zahlungstest abgeschlossen',
'alipayPaymentSuccess': 'Alipay-Zahlung erfolgreich!',
'alipayPaymentFailed': 'Alipay-Zahlung fehlgeschlagen',
'alipayPaymentLaunchFailed': 'Alipay konnte nicht gestartet werden',
'cannotLaunchAlipayPayment': 'Alipay kann nicht gestartet werden',
'alipayPaymentException': 'Alipay-Ausnahme',
"insufficientIntegral": "Nicht genügend Punkte",
"insufficientBalanceDesc":
'Insufficient balance, please go to the corresponding recharge page to recharge.',
"recharge": 'Go to Recharge',
'Unzureichendes Guthaben, bitte gehen Sie zur entsprechenden Aufladeseite, um aufzuladen.',
"recharge": 'Aufladen',
"aiMemberExpiredDesc":
'AI membership expired, please go to the membership recharge page to renew.',
'Die KI-Mitgliedschaft ist abgelaufen, bitte gehen Sie zur Mitgliedschafts-Aufladeseite, um zu verlängern.',
// 商品模块 - AI商品页
'musicAndRecommendation': 'Musik & Empfehlung',
@ -314,26 +343,28 @@ const Map<String, String> deDE = {
'newsInformation': 'Nachrichten',
'communicationAssistant': 'Kommunikationsassistent',
'aiHeaderDesc1':
'Longer conversation quota, more tool calls, extended context length.',
'Längeres Gesprächskontingent, mehr Tool-Aufrufe, längerer Kontext.',
'aiHeaderDesc2':
'Suitable for agent Q&A, summarization, analysis, and task execution.',
'musicSearchPlaybackControl': 'Music library search and playback control',
'Geeignet für Agent-Q&A, Zusammenfassungen, Analysen und Aufgaben.',
'musicSearchPlaybackControl':
'Musikbibliothek durchsuchen und Wiedergabe steuern',
'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',
'poiSearchFoodGasParking': 'POI search: dining / gas / parking',
'ratingsHoursAndDirectRoutes': 'Ratings, business hours, and direct routing',
'hotNewsAndTopicOverview': 'Hot news and topic overview',
'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points',
'helpCallAndSMS': 'Help with calls and SMS',
'Smarte Playlists und Empfehlungen ähnlicher Songs',
'routePlanningAndCongestionAvoidance': 'Routenplanung und Stauvermeidung',
'voiceBroadcastAndWaypoints': 'Sprachansagen und Zwischenziele',
'realTimeWeatherForecast': 'Echtzeit-Wetter und Vorhersage',
'clothingAdviceAndTravelReminders': 'Kleidungstipps und Reisehinweise',
'poiSearchFoodGasParking': 'POI-Suche: Essen / Tanken / Parken',
'ratingsHoursAndDirectRoutes':
'Bewertungen, Öffnungszeiten und direkte Routen',
'hotNewsAndTopicOverview': 'Top-Nachrichten und Themenübersicht',
'longArticleSummariesAndKeyPoints':
'Zusammenfassungen langer Artikel und Kernpunkte',
'helpCallAndSMS': 'Hilfe bei Anrufen und SMS',
'templatedMessagesAndScheduleReminders':
'Template messages and schedule reminders',
'Vorlagen-Nachrichten und Termin-Erinnerungen',
'aiDisclaimer':
'Features depend on device permissions, service availability, and network conditions.',
'Funktionen hängen von Geräteberechtigungen, Dienstverfügbarkeit und Netzwerkbedingungen ab.',
// 商品模块 - 翻译商品页
'realtimeTranscription': 'Echtzeit-Transkription',
@ -363,16 +394,16 @@ const Map<String, String> deDE = {
'Audio recording, transcription, keyword search, and auto summary.',
'meetingHeaderDesc2':
'Suitable for business meetings, class notes, and interview minutes.',
'meetingAutoRecording': 'Auto recording and segmentation',
'meetingSpeakerTagging': 'Speaker labeling',
'meetingLongAudioTranscription': 'Long audio transcription',
'meetingKeyPointSummary': 'Key point extraction',
'meetingTopicNameSearch': 'Search by topic/name',
'meetingTimelineJump': 'Timeline jump',
'meetingExportSummary': 'Export minutes',
'meetingMultiPlatformShare': 'Share across platforms',
'meetingAutoRecording': 'Automatische Aufnahme und Segmentierung',
'meetingSpeakerTagging': 'Sprecherkennzeichnung',
'meetingLongAudioTranscription': 'Transkription langer Audios',
'meetingKeyPointSummary': 'Kernpunkte extrahieren',
'meetingTopicNameSearch': 'Suche nach Thema/Name',
'meetingTimelineJump': 'Sprung in der Timeline',
'meetingExportSummary': 'Protokoll exportieren',
'meetingMultiPlatformShare': 'Plattformübergreifend teilen',
'meetingDisclaimer':
'Use in quiet environments; performance depends on microphone and network.',
'In ruhiger Umgebung verwenden; Leistung hängt von Mikrofon und Netzwerk ab.',
// 商品模块 - VIP会员页
'benefitsOverview': 'Übersicht der Vorteile',
@ -548,21 +579,22 @@ const Map<String, String> deDE = {
'selectSummaryTemplate': 'Zusammenfassungsvorlage auswählen',
'useThisTemplate': 'Diese Vorlage verwenden',
'lastUsed': 'Zuletzt verwendet',
'create': 'Erstellen',
'templateDetails': 'Vorlagendetails',
'tag': 'Schlagwort',
'description': 'Beschreibung',
'template': 'Vorlage',
'deleteTemplate': 'Vorlage löschen',
'deleteTemplateConfirm': 'Möchten Sie diese Vorlage wirklich löschen?',
'editTemplate': 'Vorlage bearbeiten',
'createTemplate': 'Vorlage erstellen',
'name': 'Name',
'templateContentHint': 'Bitte geben Sie den Vorlageninhalt ein! Tipp: Klicken Sie oben auf die KI-Schaltfläche, um schnell Vorlageninhalt basierend auf dem eingegebenen Namen und der Beschreibung zu generieren',
'inputNameHint': 'Bitte Namen eingeben',
'inputDescHint': 'Bitte Beschreibung eingeben',
'custom': 'Benutzerdefiniert',
'pleaseEnter': 'Bitte eingeben',
'create': 'Erstellen',
'templateDetails': 'Vorlagendetails',
'tag': 'Schlagwort',
'description': 'Beschreibung',
'template': 'Vorlage',
'deleteTemplate': 'Vorlage löschen',
'deleteTemplateConfirm': 'Möchten Sie diese Vorlage wirklich löschen?',
'editTemplate': 'Vorlage bearbeiten',
'createTemplate': 'Vorlage erstellen',
'name': 'Name',
'templateContentHint':
'Bitte geben Sie den Vorlageninhalt ein! Tipp: Klicken Sie oben auf die KI-Schaltfläche, um schnell Vorlageninhalt basierend auf dem eingegebenen Namen und der Beschreibung zu generieren',
'inputNameHint': 'Bitte Namen eingeben',
'inputDescHint': 'Bitte Beschreibung eingeben',
'custom': 'Benutzerdefiniert',
'pleaseEnter': 'Bitte eingeben',
'viewAll': 'Alle anzeigen',
'recordingLanguage': 'Aufnahmesprache',
'chineseSimplified': 'Chinesisch (Vereinfacht)',
@ -586,7 +618,7 @@ const Map<String, String> deDE = {
'Dateiverarbeitung fehlgeschlagen: {filePath}, Fehler: {error}',
// Meeting模块 - 思维导图
'saveMindMap': 'Mindmap speichern',
'saveMindMap': 'Mindmap speichern',
'shareMindMap': 'Mindmap teilen',
'shareSuccess': 'Teilen erfolgreich',
@ -608,7 +640,7 @@ const Map<String, String> deDE = {
'exportSummary': 'Zusammenfassung exportieren',
'exportAs': 'Exportieren als',
'exportingPDF': 'Exportiere PDF...',
'export': 'Exportieren',
'export': 'Exportieren',
// Meeting模块 - 发言者
'applyToAllParagraphs': 'Auf alle Absätze dieses Sprechers anwenden',
@ -720,18 +752,21 @@ const Map<String, String> deDE = {
// Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Unbekannte Sprache',
'analysisFailed': 'Analyse fehlgeschlagen, bitte versuchen Sie es später erneut',
'transcriptionFailed': 'Transkription fehlgeschlagen, bitte versuchen Sie es später erneut',
'summaryFailed': 'Zusammenfassung fehlgeschlagen, bitte versuchen Sie es später erneut',
'summaryFailedShort': 'Zusammenfassung fehlgeschlagen',
'transcriptionFailedShort': 'Transkription fehlgeschlagen',
'analysisFailed':
'Analyse fehlgeschlagen, bitte versuchen Sie es später erneut',
'transcriptionFailed':
'Transkription fehlgeschlagen, bitte versuchen Sie es später erneut',
'summaryFailed':
'Zusammenfassung fehlgeschlagen, bitte versuchen Sie es später erneut',
'summaryFailedShort': 'Zusammenfassung fehlgeschlagen',
'transcriptionFailedShort': 'Transkription fehlgeschlagen',
// Meeting模块 - 播放器
'playerNotReady': 'Audioplayer ist nicht bereit, bitte warten',
'playFailed': 'Wiedergabe fehlgeschlagen',
'audioFileNotFound': 'Audiodatei nicht gefunden',
'fetchingAudio': 'Audio wird aus der Cloud abgerufen...',
'playerLoadFailed': 'Audioplayer konnte nicht geladen werden',
'playerNotReady': 'Audioplayer ist nicht bereit, bitte warten',
'playFailed': 'Wiedergabe fehlgeschlagen',
'audioFileNotFound': 'Audiodatei nicht gefunden',
'fetchingAudio': 'Audio wird aus der Cloud abgerufen...',
'playerLoadFailed': 'Audioplayer konnte nicht geladen werden',
// 设置页
"systemSettings": "Systemeinstellungen",
@ -743,7 +778,7 @@ const Map<String, String> deDE = {
"memberService": "Member Service",
"bindRewardTitle": "Rewards",
"bindRewardSimpleDesc":
"First bind device reward has been issued. Tap OK to close.",
"Die Prämie für die erste Gerätebindung wurde ausgegeben. Tippen Sie auf OK, um zu schließen.",
"joinDevice": "Verbundenes Gerät:",
"accountId": "Konto-ID:",
"systemSetting": "Systemeinstellungen",
@ -839,7 +874,8 @@ const Map<String, String> deDE = {
"swipeUpForMore": "Nach oben wischen für mehr",
"callingTool": "Ich helfe Ihnen, bitte warten!", // 正在帮您,请稍等!
"voice_interrupt": "Unterbrechen", // 语音打断
'voice_interrupt_tip': 'Wenn aktiviert: Die KI wird nicht durch Ihre Stimme unterbrochen, während sie spricht, und kann nur eine Gesprächsrunde gleichzeitig bearbeiten. Um eine neue Runde zu starten, sagen Sie einfach das Aktivierungswort.',
'voice_interrupt_tip':
'Wenn aktiviert: Die KI wird nicht durch Ihre Stimme unterbrochen, während sie spricht, und kann nur eine Gesprächsrunde gleichzeitig bearbeiten. Um eine neue Runde zu starten, sagen Sie einfach das Aktivierungswort.',
// Agent模块 - 预设提示词
"presetMusic": "Musik abspielen", // 来点音乐
@ -897,6 +933,13 @@ const Map<String, String> deDE = {
'Wir möchten den Grund für Ihre Meldung wissen, Sie können das Problem beschreiben, das Sie erlebt haben.',
'generatedByAi': 'Von KI generiert',
// Agent模块 - 工具调用
'toolCall': 'Werkzeugaufruf',
'noResult': 'Kein Ergebnis',
'noToolCallContentToCopy': 'Kein Werkzeugaufruf-Inhalt zum Kopieren',
'toolCallDetails': 'Werkzeugaufruf-Details:',
'toolCallContentCopied': 'Werkzeugaufruf-Inhalt in Zwischenablage kopiert',
// Agent模块 - 音乐卡片
'recommendedMusic': 'Hier sind einige empfohlene Musik:',
'playList': 'Wiedergabeliste',
@ -917,6 +960,30 @@ const Map<String, String> deDE = {
"bicycling": "Radfahren",
"tsransit": "ÖPNV",
// Agent模块 - 导航选择
'selectNavigationApp': 'Navigations-App waehlen',
'amapMap': 'Amap',
'useAmapNavigation': 'Mit Amap navigieren',
'baiduMap': 'Baidu Maps',
'useBaiduNavigation': 'Mit Baidu Maps navigieren',
'googleMap': 'Google Maps',
'useGoogleNavigation': 'Mit Google Maps navigieren',
'appleMap': 'Apple Maps',
'useAppleNavigation': 'Mit Apple Maps navigieren',
'builtInNavigation': 'Integrierte Navigation',
'useBuiltInNavigation': 'Mit integrierter Karte navigieren',
'navigationStartFailed': 'Navigation konnte nicht gestartet werden',
'cannotPlayMusicListRetryLater':
'Musikliste kann nicht abgespielt werden, bitte spaeter erneut versuchen',
'cannotPlaySong': 'Lied kann nicht abgespielt werden',
'openMapError': 'Fehler beim Oeffnen der Karte',
'pleaseInstallAmapApp': 'Bitte installieren Sie zuerst die Amap-App',
'pleaseInstallBaiduMapApp':
'Bitte installieren Sie zuerst die Baidu Maps-App',
'appleMapStartFailed': 'Apple Maps konnte nicht gestartet werden',
'appleMapUnavailable': 'Apple Maps nicht verfuegbar',
'openAppleMapError': 'Fehler beim Oeffnen von Apple Maps',
// Agent模块 - 天气卡片
'weatherQuery': 'Wetterabfrage:',
'highest': 'Höchste',
@ -989,8 +1056,20 @@ const Map<String, String> deDE = {
// 翻译模块 - 文本翻译
"languageDetectionFailed": "Spracherkennung fehlgeschlagen",
// 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'Schwebendes Fenster deaktivieren',
'enableFloatingWindow': 'Schwebendes Fenster aktivieren',
'permissionTip': 'Berechtigungshinweis',
'micPermissionRequiredForRecording':
'Mikrofonberechtigung fuer Aufnahme erforderlich',
'deleteTranslationRecordError':
'Fehler beim Loeschen des Uebersetzungsdatensatzes: @error',
"translationFailed": "Übersetzung fehlgeschlagen",
"translating": "Wird uebersetzt",
"translate": "Uebersetzen",
"pleaseInputText": "Bitte Text eingeben",
"inputTextToTranslate": "Bitte geben Sie den zu übersetzenden Text ein",
"textTooLong": "Text zu lang, max. 5000 Zeichen",
// 翻译模块 - 历史记录
@ -1365,17 +1444,18 @@ const Map<String, String> deDE = {
'bleConnectionFailed': 'BLE-Verbindung fehlgeschlagen',
'deviceAuthorizationFailedCheckCode':
'Geräteautorisierung fehlgeschlagen, bitte überprüfen Sie den Autorisierungscode',
'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙
'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作:
'bluetoothGuideTitle':
'Manuelle Bluetooth-Aktivierung erforderlich', // 需要手动开启蓝牙
'bluetoothGuideSteps': 'Bitte folgen Sie diesen Schritten:', // 请按照以下步骤操作:
'bluetoothGuideStep1':
'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启
'Bluetooth aktivieren: Einstellungen → Bluetooth → Einschalten', // 开启蓝牙:设置 → 蓝牙 → 开启
'bluetoothGuideStep2':
'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接
'Gerät verbinden: Finden Sie Ihr Gerät unter „Meine Geräte“ und tippen Sie zum Verbinden', // 连接设备:在"我的设备"中找到您的设备并点击连接
'bluetoothGuideStep3':
'Return to app to continue pairing process', // 返回应用继续配对流程
'Zur App zurückkehren, um den Kopplungsvorgang fortzusetzen', // 返回应用继续配对流程
'bluetoothGuideTip':
'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置
'iKnow': 'I Know', // 我知道了
'Tipp: Sie können das Bluetooth-Symbol im Kontrollzentrum auch lange drücken, um schnell zu den Bluetooth-Einstellungen zu gelangen', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置
'iKnow': 'Verstanden', // 我知道了
// 配对模块 - 绑定奖励
"firstBindRewardTitle": "Willkommensbonus",
@ -1416,13 +1496,14 @@ const Map<String, String> deDE = {
"connectionFailed": "Verbindung fehlgeschlagen",
"retryConnection": "Verbindung wiederholen",
"ota_updateNow": "Jetzt aktualisieren",
"otaVersionInfoFailed": "Failed to get version info. Please try again later.",
"otaVersionInfoFailed":
"Versioninformationen konnten nicht abgerufen werden. Bitte versuchen Sie es später erneut.",
"otaDeviceInfoUnavailable":
"Unable to get device info. Please check the connection and retry.",
"Geräteinformationen konnten nicht abgerufen werden. Bitte prüfen Sie die Verbindung und versuchen Sie es erneut.",
"otaProductInfoUnavailable":
"Unable to identify the device. Please reconnect and retry.",
"Das Gerät konnte nicht erkannt werden. Bitte verbinden Sie es erneut und versuchen Sie es erneut.",
"otaFirmwareVersionInvalid":
"Firmware version is abnormal. Please reconnect and retry.",
"Die Firmware-Version ist ungültig. Bitte verbinden Sie das Gerät erneut und versuchen Sie es erneut.",
"keepConnectedDontClose":
"Bitte halten Sie das Gerät verbunden, schließen Sie die App nicht",
"doNotDisconnect": "Nicht trennen",
@ -1431,6 +1512,61 @@ const Map<String, String> deDE = {
"removeEarbudsEnsureBattery":
"Entfernen Sie beide Ohrhörer und stellen Sie sicher, dass der Batteriestand über 20% liegt",
// OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': 'Neue Version @version gefunden',
'otaConfirmUpdateNow': 'Jetzt aktualisieren?',
'otaUpdate': 'Aktualisieren',
'otaUpgradeSuccess': 'Upgrade erfolgreich',
'otaUpgradeCompleteRepair':
'Firmware-Upgrade abgeschlossen!\n\nDas Geraet muss neu gekoppelt werden. Zur Kopplungsseite wechseln?',
'otaPairLater': 'Spaeter koppeln',
'otaPairNow': 'Jetzt koppeln',
'okConfirm': 'OK',
// OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'Fehler bei der BLE-Verbindungspruefung: @error',
'otaBleNotConnected': 'BLE-Geraet nicht verbunden',
'otaBleNeedConnection':
'Firmware-Upgrade erfordert BLE-Verbindung\nBitte Geraet verbinden und erneut versuchen',
'otaDeviceInfoUnavailableTitle': 'Geraeteinformationen nicht verfuegbar',
'otaCannotGetDeviceInfo':
'Geräteinformationen konnten nicht abgerufen werden\nBitte verbinden Sie das Gerät erneut oder versuchen Sie es später erneut',
'otaBleCheckFailed': 'BLE-Verbindungspruefung fehlgeschlagen',
'otaCannotGetDeviceInfoCheckConnection':
'Geraeteinformationen nicht verfuegbar, bitte Verbindung pruefen',
'otaCannotGetProductInfoWithName':
'Produktinformationen nicht verfuegbar, Geraetename: @deviceName',
'otaCannotGetBatteryInfo': 'Keine gueltigen Batterieinformationen verfuegbar',
'otaLowBattery': 'Niedriger Akkustand',
'otaSingleBatteryLow':
'Akku zu schwach fuer Firmware-Upgrade\nAnforderung: Akku ueber 20%\nAktuell: @ear @battery%\nBitte laden und erneut versuchen',
'otaDoubleBatteryLow':
'Akku zu schwach fuer Firmware-Upgrade\nAnforderung: Beide Ohrhoerer ueber 20%\nAktuell: Links @left%, Rechts @right%\nBitte laden und erneut versuchen',
'otaBatteryCheckFailed': 'Batteriepruefung fehlgeschlagen',
// OTA升级模块 - 升级状态
'otaDefaultUpdateDesc':
'Dieses Update enthaelt Leistungsoptimierungen und Fehlerbehebungen.',
'otaGetLatestVersionFailed':
'Neueste Versionsinformationen konnten nicht abgerufen werden',
'otaGetVersionInfoFailed':
'Versionsinformationen konnten nicht abgerufen werden',
'otaCheckingDeviceStatus': 'Geraetestatus wird geprueft...',
'otaDownloadFailedCheckNetwork':
'Download fehlgeschlagen, bitte Netzwerkverbindung pruefen',
'otaDownloadFailed': 'Download fehlgeschlagen',
'otaPreparingConnection': 'Geraeteverbindung wird vorbereitet...',
'otaConnectingDevice': 'Verbindung zum Geraet wird hergestellt...',
'otaUpgradeStarted': 'OTA-Upgrade gestartet...',
'otaUpgradeProgressWithPercent': 'Upgrade-Fortschritt: @percent%',
'otaUpgradeSuccessComplete': 'Upgrade erfolgreich abgeschlossen',
'otaUpgradeFailedWithCode': 'Upgrade fehlgeschlagen, Fehlercode: @code',
'otaUpgradeFailedTitle': 'Upgrade fehlgeschlagen',
'otaUpgradeFailedDesc':
'Bitte Geraeteverbindung oder Update-Paket pruefen, Fehlercode: @code',
'otaDeviceDisconnected': 'Geraet getrennt',
'otaDeviceConnected': 'Geraet verbunden',
// 音乐模块
"noMusic": "Keine Musik", // 暂无音乐
"noPlayingMusic": "Keine Musik wird abgespielt", // 暂无播放音乐

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

@ -1,5 +1,4 @@
const Map<String, String> elGR = {
// 通用
'continue': 'Συνέχεια',
'confirm': 'Επιβεβαίωση',
@ -19,11 +18,11 @@ const Map<String, String> elGR = {
"unknownError": "Άγνωστο σφάλμα",
"asrConnectionFailed":
"Η σύνδεση με την υπηρεσία αναγνώρισης ομιλίας απέτυχε. Ελέγξτε το δίκτυο ή δοκιμάστε ξανά αργότερα.",
"justNow": "Just now",
"minutesAgo": "@minutes minutes ago",
"yesterday": "Yesterday",
"daysAgo": "@days days ago",
"hoursAgo": "@hours hours ago",
"justNow": "Μόλις τώρα",
"minutesAgo": "Πριν @minutes λεπτά",
"yesterday": "Χθες",
"daysAgo": "Πριν @days ημέρες",
"hoursAgo": "Πριν @hours ώρες",
// 启动页
"slogan": "Συνδέοντας τον κόσμο, πέρα από τον ήχο",
@ -168,6 +167,29 @@ const Map<String, String> elGR = {
'right': 'Δεξιά',
'checkConnectionStatusFailed': 'Αποτυχία ελέγχου κατάστασης σύνδεσης',
// 蓝牙扫描模块
'bleInitFailedWithError': 'Αποτυχία αρχικοποίησης Bluetooth: @error',
'needBluetoothAndLocationPermission':
'Απαιτούνται δικαιώματα Bluetooth και τοποθεσίας για σάρωση συσκευών',
'permissionRequestFailedWithError': 'Αποτυχία αιτήματος δικαιώματος: @error',
'needPermission': 'Απαιτείται δικαίωμα',
'blePermissionDialogContent':
'Αυτή η εφαρμογή χρειάζεται δικαιώματα Bluetooth και τοποθεσίας για σάρωση συσκευών. Ενεργοποιήστε τα στις Ρυθμίσεις.',
'needEnableBluetooth': 'Ενεργοποίηση Bluetooth',
'enableBluetoothDialogContent':
'Ενεργοποιήστε το Bluetooth για σάρωση και σύνδεση συσκευών.',
'bleScanFailedWithError': 'Αποτυχία σάρωσης: @error',
'bleConnectionSuccess': 'Επιτυχής σύνδεση',
'bleConnectedToDevice': 'Συνδέθηκε με @device',
'bleConnectionFailedWithError': 'Αποτυχία σύνδεσης: @error',
'bleDisconnected': 'Αποσυνδέθηκε',
'bleDeviceDisconnected': 'Η συσκευή αποσυνδέθηκε',
'bleDisconnectFailedWithError': 'Αποτυχία αποσύνδεσης: @error',
'signalStrong': 'Δυνατό',
'signalMedium': 'Μέτριο',
'signalWeak': 'Αδύναμο',
'signalVeryWeak': 'Πολύ αδύναμο',
// 发现页
"searchAi": "Αναζήτηση λειτουργιών AI...",
"exploreSlogan": "Έξυπνα ακουστικά, απεριόριστες δυνατότητες",
@ -194,7 +216,7 @@ const Map<String, String> elGR = {
"scene": "Σενάρια",
// 用量统计模块
"aiChat": "AI Chat",
"aiChat": "Συνομιλία AI",
"translationStats": "Στατιστικά Μετάφρασης",
"meetingStats": "Στατιστικά Συνάντησης",
"today": "Σήμερα",
@ -243,66 +265,71 @@ const Map<String, String> elGR = {
'totalQuota': 'Συνολικό όριο',
'remaining': 'Υπόλοιπο',
'featureDescription': 'Περιγραφή λειτουργίας',
'paymentSuccess': 'Πληρωμή επιτυχής',
'paymentFailed': 'Αποτυχία πληρωμής',
'gotIt': 'Κατάλαβα',
'paymentFailedTryAgain': 'Η πληρωμή απέτυχε. Παρακαλώ δοκιμάστε ξανά.',
'selectPaymentMethod': 'Επιλέξτε τρόπο πληρωμής',
'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay',
'paypalPay': 'PayPal',
'appleIap': 'Apple IAP',
'googleIap': 'Google IAP',
'wechatOrderCreateFailed': 'Αποτυχία δημιουργίας παραγγελίας WeChat Pay',
'alipayOrderCreateFailed': 'Αποτυχία δημιουργίας παραγγελίας Alipay',
'appleOrderCreateFailed': 'Αποτυχία δημιουργίας παραγγελίας Apple',
'googleOrderCreateFailed': 'Αποτυχία δημιουργίας παραγγελίας Google',
'paypalOrderCreateFailed': 'Αποτυχία δημιουργίας παραγγελίας PayPal',
'paymentException': 'Εξαίρεση πληρωμής',
'paymentLaunchFailed': 'Αποτυχία εκκίνησης πληρωμής',
'paymentExceptionWithError': 'Εξαίρεση πληρωμής: @error',
'paymentProcessingCheckLater': 'Η παραγγελία σας επεξεργάζεται. Παρακαλώ ελέγξτε αργότερα.',
'paymentResultQueryException': 'Αποτυχία αναζήτησης αποτελέσματος πληρωμής: @error',
'orderConfirmedQuotaRefreshed': 'Η παραγγελία επιβεβαιώθηκε. Το όριό σας ανανεώθηκε.',
'paymentCompletedConfirming': 'Η πληρωμή ολοκληρώθηκε. Επιβεβαίωση…',
'paymentCancelled': 'Η πληρωμή ακυρώθηκε',
'paypalOpenedCompleteInBrowser': 'Το PayPal άνοιξε. Παρακαλώ ολοκληρώστε την πληρωμή στο πρόγραμμα περιήγησής σας.',
'paypalOpenFailed': 'Αδυναμία ανοίγματος σελίδας πληρωμής PayPal',
'paymentTestTitle': 'Δοκιμή Πληρωμής',
'paymentTestOrderInfo': 'Πληροφορίες Δοκιμαστικής Παραγγελίας',
'paymentTestProductId': 'Αναγνωριστικό Προϊόντος',
'paymentTestProductDescription': 'Περιγραφή προϊόντος',
'paymentTestWechatDescription': 'Δοκιμή πληρωμής WeChat Pay',
'paymentTestAlipayDescription': 'Δοκιμή πληρωμής Alipay',
'paymentTestAmount': 'Ποσό',
'paymentTestSelectAmount': 'Επιλέξτε ποσό δοκιμής',
'paying': 'Πληρωμή...',
'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': 'Κατάσταση πληρωμής',
'errorInfoWithMessage': 'Σφάλμα: @message',
'retest': 'Επανέλεγχος',
'paymentTestInstructionsTitle': 'Οδηγίες',
'paymentTestInstructionsContent': '1. Επιλέξτε ένα ποσό δοκιμής (προτεινόμενο: ¥0,01)\n2. Κάντε κλικ στο κουμπί πληρωμής για να ξεκινήσετε\n3. Ολοκληρώστε την πληρωμή στην εφαρμογή πληρωμής\n4. Επιστρέψτε για να ελέγξετε το αποτέλεσμα',
'startingWechatPayment': 'Εκκίνηση WeChat Pay...',
'startingAlipayPayment': 'Εκκίνηση Alipay...',
'wechatPaymentSuccess': 'WeChat Pay επιτυχής!',
'wechatPaymentFailed': 'Αποτυχία WeChat Pay',
'wechatPaymentLaunchFailed': 'Αποτυχία εκκίνησης WeChat Pay',
'cannotLaunchWechatPayment': 'Αδυναμία εκκίνησης WeChat Pay',
'wechatPaymentException': 'Εξαίρεση WeChat Pay',
'wechatPaymentTestCompleted': 'Η δοκιμή WeChat Pay ολοκληρώθηκε',
'alipayPaymentSuccess': 'Alipay επιτυχής!',
'alipayPaymentFailed': 'Αποτυχία Alipay',
'alipayPaymentLaunchFailed': 'Αποτυχία εκκίνησης Alipay',
'cannotLaunchAlipayPayment': 'Αδυναμία εκκίνησης Alipay',
'alipayPaymentException': 'Εξαίρεση Alipay',
"insufficientIntegral": "Insufficient integral",
'paymentSuccess': 'Πληρωμή επιτυχής',
'paymentFailed': 'Αποτυχία πληρωμής',
'gotIt': 'Κατάλαβα',
'paymentFailedTryAgain': 'Η πληρωμή απέτυχε. Παρακαλώ δοκιμάστε ξανά.',
'selectPaymentMethod': 'Επιλέξτε τρόπο πληρωμής',
'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay',
'paypalPay': 'PayPal',
'appleIap': 'Apple IAP',
'googleIap': 'Google IAP',
'wechatOrderCreateFailed': 'Αποτυχία δημιουργίας παραγγελίας WeChat Pay',
'alipayOrderCreateFailed': 'Αποτυχία δημιουργίας παραγγελίας Alipay',
'appleOrderCreateFailed': 'Αποτυχία δημιουργίας παραγγελίας Apple',
'googleOrderCreateFailed': 'Αποτυχία δημιουργίας παραγγελίας Google',
'paypalOrderCreateFailed': 'Αποτυχία δημιουργίας παραγγελίας PayPal',
'paymentException': 'Εξαίρεση πληρωμής',
'paymentLaunchFailed': 'Αποτυχία εκκίνησης πληρωμής',
'paymentExceptionWithError': 'Εξαίρεση πληρωμής: @error',
'paymentProcessingCheckLater':
'Η παραγγελία σας επεξεργάζεται. Παρακαλώ ελέγξτε αργότερα.',
'paymentResultQueryException':
'Αποτυχία αναζήτησης αποτελέσματος πληρωμής: @error',
'orderConfirmedQuotaRefreshed':
'Η παραγγελία επιβεβαιώθηκε. Το όριό σας ανανεώθηκε.',
'paymentCompletedConfirming': 'Η πληρωμή ολοκληρώθηκε. Επιβεβαίωση…',
'paymentCancelled': 'Η πληρωμή ακυρώθηκε',
'paypalOpenedCompleteInBrowser':
'Το PayPal άνοιξε. Παρακαλώ ολοκληρώστε την πληρωμή στο πρόγραμμα περιήγησής σας.',
'paypalOpenFailed': 'Αδυναμία ανοίγματος σελίδας πληρωμής PayPal',
'paymentTestTitle': 'Δοκιμή Πληρωμής',
'paymentTestOrderInfo': 'Πληροφορίες Δοκιμαστικής Παραγγελίας',
'paymentTestProductId': 'Αναγνωριστικό Προϊόντος',
'paymentTestProductDescription': 'Περιγραφή προϊόντος',
'paymentTestWechatDescription': 'Δοκιμή πληρωμής WeChat Pay',
'paymentTestAlipayDescription': 'Δοκιμή πληρωμής Alipay',
'paymentTestAmount': 'Ποσό',
'paymentTestSelectAmount': 'Επιλέξτε ποσό δοκιμής',
'paying': 'Πληρωμή...',
'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': 'Κατάσταση πληρωμής',
'errorInfoWithMessage': 'Σφάλμα: @message',
'retest': 'Επανέλεγχος',
'paymentTestInstructionsTitle': 'Οδηγίες',
'paymentTestInstructionsContent':
'1. Επιλέξτε ένα ποσό δοκιμής (προτεινόμενο: ¥0,01)\n2. Κάντε κλικ στο κουμπί πληρωμής για να ξεκινήσετε\n3. Ολοκληρώστε την πληρωμή στην εφαρμογή πληρωμής\n4. Επιστρέψτε για να ελέγξετε το αποτέλεσμα',
'startingWechatPayment': 'Εκκίνηση WeChat Pay...',
'startingAlipayPayment': 'Εκκίνηση Alipay...',
'wechatPaymentSuccess': 'WeChat Pay επιτυχής!',
'wechatPaymentFailed': 'Αποτυχία WeChat Pay',
'wechatPaymentLaunchFailed': 'Αποτυχία εκκίνησης WeChat Pay',
'cannotLaunchWechatPayment': 'Αδυναμία εκκίνησης WeChat Pay',
'wechatPaymentException': 'Εξαίρεση WeChat Pay',
'wechatPaymentTestCompleted': 'Η δοκιμή WeChat Pay ολοκληρώθηκε',
'alipayPaymentSuccess': 'Alipay επιτυχής!',
'alipayPaymentFailed': 'Αποτυχία Alipay',
'alipayPaymentLaunchFailed': 'Αποτυχία εκκίνησης Alipay',
'cannotLaunchAlipayPayment': 'Αδυναμία εκκίνησης Alipay',
'alipayPaymentException': 'Εξαίρεση Alipay',
"insufficientIntegral": "Ανεπαρκείς πόντοι",
"insufficientBalanceDesc":
'Insufficient balance, please go to the corresponding recharge page to recharge.',
"recharge": 'Go to Recharge',
'Ανεπαρκές υπόλοιπο, μεταβείτε στη σελίδα φόρτισης για ανανέωση.',
"recharge": 'Μετάβαση στην ανανέωση',
"aiMemberExpiredDesc":
'AI membership expired, please go to the membership recharge page to renew.',
'Η συνδρομή AI έληξε, μεταβείτε στη σελίδα ανανέωσης συνδρομής.',
// 商品模块 - AI商品页
'musicAndRecommendation': 'Μουσική & Προτάσεις',
@ -401,9 +428,9 @@ const Map<String, String> elGR = {
'meet_001_name': 'Meeting Basic 100',
'meet_002_name': 'Meeting Basic 500',
'meet_003_name': 'Meeting Basic 1000',
'trans_001_name': 'Translation Basic 100',
'trans_002_name': 'Translation Basic 500',
'trans_003_name': 'Translation Basic 1000',
'trans_001_name': 'Μετάφραση Basic 100',
'trans_002_name': 'Μετάφραση Basic 500',
'trans_003_name': 'Μετάφραση Basic 1000',
'ai_001_desc':
'Περιλαμβάνει 100 χρήσεις. Πρόσβαση σε βασικές λειτουργίες AI.',
'ai_002_desc':
@ -511,16 +538,25 @@ const Map<String, String> elGR = {
'meetingRecordExitMessage': 'Επιλέξτε τι θα κάνετε πριν φύγετε', // 请选择离开后的操作
'meetingRecordEndAndSave': 'Τερματισμός και αποθήκευση', // 结束录音并保存
'meetingRecordEndWithoutSave': 'Τερματισμός χωρίς αποθήκευση', // 结束录音不保存
'meetingRecordContinueInBackground': 'Συνέχιση εγγραφής στο παρασκήνιο', // 后台继续录音
'meetingRecordStopTimeout': 'Έληξε το χρονικό όριο διακοπής της εγγραφής. Δοκιμάστε ξανά.', // 结束录音超时,请重试
'meetingRecordStopFailed': 'Αποτυχία διακοπής της εγγραφής. Δοκιμάστε ξανά.', // 结束录音失败,请重试
'meetingRecordSaveFailed': 'Αποτυχία αποθήκευσης της εγγραφής. Δοκιμάστε ξανά.', // 保存录音失败,请重试
'meetingRecordRecordingNotificationTitle': 'Η εγγραφή είναι σε εξέλιξη', // 录音进行中
'meetingRecordRecordingNotificationBody': 'Γίνεται εγγραφή στο παρασκήνιο. Πατήστε για επιστροφή στην εφαρμογή.', // 正在后台录音,点击返回应用
'meetingRecordContinueInBackground':
'Συνέχιση εγγραφής στο παρασκήνιο', // 后台继续录音
'meetingRecordStopTimeout':
'Έληξε το χρονικό όριο διακοπής της εγγραφής. Δοκιμάστε ξανά.', // 结束录音超时,请重试
'meetingRecordStopFailed':
'Αποτυχία διακοπής της εγγραφής. Δοκιμάστε ξανά.', // 结束录音失败,请重试
'meetingRecordSaveFailed':
'Αποτυχία αποθήκευσης της εγγραφής. Δοκιμάστε ξανά.', // 保存录音失败,请重试
'meetingRecordRecordingNotificationTitle':
'Η εγγραφή είναι σε εξέλιξη', // 录音进行中
'meetingRecordRecordingNotificationBody':
'Γίνεται εγγραφή στο παρασκήνιο. Πατήστε για επιστροφή στην εφαρμογή.', // 正在后台录音,点击返回应用
'overlayPermissionTitle': 'Εμφάνιση πάνω από άλλες εφαρμογές', // 悬浮窗权限
'overlayPermissionTranslationDesc': 'Για να εμφανίζουμε τα αποτελέσματα μετάφρασης κατά τη διάρκεια κλήσεων ή μετάφρασης ήχου/βίντεο, χρειαζόμαστε άδεια εμφάνισης πάνω από άλλες εφαρμογές. Έτσι θα βλέπετε μεταφράσεις σε πραγματικό χρόνο ενώ χρησιμοποιείτε άλλες εφαρμογές.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。
'overlayPermissionRecordingDesc': 'Για να εμφανίζουμε την αιωρούμενη μπάρα εγγραφής (χρονομετρητής/παύση/συνέχιση) κατά την εγγραφή, χρειαζόμαστε άδεια εμφάνισης πάνω από άλλες εφαρμογές.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。
'overlayPermissionOpenSettingsFailed': 'Δεν ήταν δυνατή η αυτόματη μετάβαση στις ρυθμίσεις συστήματος. Ανοίξτε τις Ρυθμίσεις και ενεργοποιήστε χειροκίνητα την άδεια εμφάνισης πάνω από άλλες εφαρμογές.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。
'overlayPermissionTranslationDesc':
'Για να εμφανίζουμε τα αποτελέσματα μετάφρασης κατά τη διάρκεια κλήσεων ή μετάφρασης ήχου/βίντεο, χρειαζόμαστε άδεια εμφάνισης πάνω από άλλες εφαρμογές. Έτσι θα βλέπετε μεταφράσεις σε πραγματικό χρόνο ενώ χρησιμοποιείτε άλλες εφαρμογές.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。
'overlayPermissionRecordingDesc':
'Για να εμφανίζουμε την αιωρούμενη μπάρα εγγραφής (χρονομετρητής/παύση/συνέχιση) κατά την εγγραφή, χρειαζόμαστε άδεια εμφάνισης πάνω από άλλες εφαρμογές.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。
'overlayPermissionOpenSettingsFailed':
'Δεν ήταν δυνατή η αυτόματη μετάβαση στις ρυθμίσεις συστήματος. Ανοίξτε τις Ρυθμίσεις και ενεργοποιήστε χειροκίνητα την άδεια εμφάνισης πάνω από άλλες εφαρμογές.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。
'transcribing': 'Απομαγνητοφώνηση...',
'summarizing': 'Δημιουργία περίληψης...',
'analyzing': 'Ανάλυση...',
@ -545,21 +581,23 @@ const Map<String, String> elGR = {
'selectSummaryTemplate': 'Επιλογή προτύπου περίληψης',
'useThisTemplate': 'Χρήση αυτού του προτύπου',
'lastUsed': 'Τελευταία χρήση',
'create': 'Δημιουργία',
'templateDetails': 'Λεπτομέρειες Προτύπου',
'tag': 'Ετικέτα',
'description': 'Περιγραφή',
'template': 'Πρότυπο',
'deleteTemplate': 'Διαγραφή Προτύπου',
'deleteTemplateConfirm': 'Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το πρότυπο;',
'editTemplate': 'Επεξεργασία Προτύπου',
'createTemplate': 'Δημιουργία Προτύπου',
'name': 'Όνομα',
'templateContentHint': 'Παρακαλώ εισάγετε περιεχόμενο προτύπου! Συμβουλή: Κάντε κλικ στο κουμπί AI παραπάνω για γρήγορη δημιουργία περιεχομένου προτύπου βάσει του ονόματος και της περιγραφής που εισάγατε',
'inputNameHint': 'Παρακαλώ εισάγετε όνομα',
'inputDescHint': 'Παρακαλώ εισάγετε περιγραφή',
'custom': 'Προσαρμοσμένο',
'pleaseEnter': 'Παρακαλώ εισάγετε',
'create': 'Δημιουργία',
'templateDetails': 'Λεπτομέρειες Προτύπου',
'tag': 'Ετικέτα',
'description': 'Περιγραφή',
'template': 'Πρότυπο',
'deleteTemplate': 'Διαγραφή Προτύπου',
'deleteTemplateConfirm':
'Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το πρότυπο;',
'editTemplate': 'Επεξεργασία Προτύπου',
'createTemplate': 'Δημιουργία Προτύπου',
'name': 'Όνομα',
'templateContentHint':
'Παρακαλώ εισάγετε περιεχόμενο προτύπου! Συμβουλή: Κάντε κλικ στο κουμπί AI παραπάνω για γρήγορη δημιουργία περιεχομένου προτύπου βάσει του ονόματος και της περιγραφής που εισάγατε',
'inputNameHint': 'Παρακαλώ εισάγετε όνομα',
'inputDescHint': 'Παρακαλώ εισάγετε περιγραφή',
'custom': 'Προσαρμοσμένο',
'pleaseEnter': 'Παρακαλώ εισάγετε',
'viewAll': 'Προβολή όλων',
'recordingLanguage': 'Γλώσσα εγγραφής',
'chineseSimplified': 'Κινέζικα (Απλοποιημένα)',
@ -583,7 +621,7 @@ const Map<String, String> elGR = {
'Αποτυχία επεξεργασίας αρχείου: {filePath}, σφάλμα: {error}',
// Meeting模块 - 思维导图
'saveMindMap': 'Αποθήκευση Νοητικού Χάρτη',
'saveMindMap': 'Αποθήκευση Νοητικού Χάρτη',
'shareMindMap': 'Κοινοποίηση χάρτη μυαλού',
'shareSuccess': 'Επιτυχής κοινοποίηση',
@ -605,7 +643,7 @@ const Map<String, String> elGR = {
'exportSummary': 'Εξαγωγή περίληψης',
'exportAs': 'Εξαγωγή ως',
'exportingPDF': 'Εξαγωγή PDF...',
'export': 'Εξαγωγή',
'export': 'Εξαγωγή',
// Meeting模块 - 发言者
'applyToAllParagraphs': 'Εφαρμογή σε όλες τις παραγράφους αυτού του ομιλητή',
@ -717,18 +755,20 @@ const Map<String, String> elGR = {
// Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Άγνωστη γλώσσα',
'analysisFailed': 'Η ανάλυση απέτυχε, παρακαλώ δοκιμάστε ξανά αργότερα',
'transcriptionFailed': 'Η μεταγραφή απέτυχε, παρακαλώ δοκιμάστε ξανά αργότερα',
'summaryFailed': 'Η σύνοψη απέτυχε, παρακαλώ δοκιμάστε ξανά αργότερα',
'summaryFailedShort': 'Αποτυχία σύνοψης',
'transcriptionFailedShort': 'Αποτυχία μεταγραφής',
'analysisFailed': 'Η ανάλυση απέτυχε, παρακαλώ δοκιμάστε ξανά αργότερα',
'transcriptionFailed':
'Η μεταγραφή απέτυχε, παρακαλώ δοκιμάστε ξανά αργότερα',
'summaryFailed': 'Η σύνοψη απέτυχε, παρακαλώ δοκιμάστε ξανά αργότερα',
'summaryFailedShort': 'Αποτυχία σύνοψης',
'transcriptionFailedShort': 'Αποτυχία μεταγραφής',
// Meeting模块 - 播放器
'playerNotReady': 'Ο αναπαραγωγέας ήχου δεν είναι έτοιμος, παρακαλώ περιμένετε',
'playFailed': 'Αποτυχία αναπαραγωγής',
'audioFileNotFound': 'Το αρχείο ήχου δεν βρέθηκε',
'fetchingAudio': 'Λήψη ήχου από το cloud...',
'playerLoadFailed': 'Αποτυχία φόρτωσης αναπαραγωγέα ήχου',
'playerNotReady':
'Ο αναπαραγωγέας ήχου δεν είναι έτοιμος, παρακαλώ περιμένετε',
'playFailed': 'Αποτυχία αναπαραγωγής',
'audioFileNotFound': 'Το αρχείο ήχου δεν βρέθηκε',
'fetchingAudio': 'Λήψη ήχου από το cloud...',
'playerLoadFailed': 'Αποτυχία φόρτωσης αναπαραγωγέα ήχου',
// 设置页
"systemSettings": "Ρυθμίσεις συστήματος",
@ -737,10 +777,10 @@ const Map<String, String> elGR = {
"translationRecharge": "Περιορέωση μετάφρασης",
"meetingAssistantRecharge": "Περιορέωση βοηθού συνάντησης",
"cloudSync": "Περιορέωση συγχρονισμού στο cloud",
"memberService": "Member Service",
"bindRewardTitle": "Rewards",
"memberService": "Υπηρεσία μελών",
"bindRewardTitle": "Ανταμοιβές",
"bindRewardSimpleDesc":
"First bind device reward has been issued. Tap OK to close.",
"Η ανταμοιβή πρώτης σύνδεσης συσκευής εκδόθηκε. Πατήστε OK για κλείσιμο.",
"joinDevice": "Συνδεδεμένη συσκευή:",
"accountId": "ID λογαριασμού:",
"systemSetting": "Ρυθμίσεις συστήματος",
@ -790,20 +830,20 @@ const Map<String, String> elGR = {
"loading": "Φόρτωση...",
// 设备管理模块
"deviceTypeUnknown": "Unknown Device",
"deviceTypeClassicBluetoothHeadset": "Classic Bluetooth Headset",
"deviceTypeBleBluetoothHeadset": "BLE Bluetooth Headset",
"deviceTypeSmartVoiceRecorder": "Smart Voice Recorder",
"deviceTypeSmartEye": "Smart Glasses",
"deviceTypeUnknown": "Άγνωστη συσκευή",
"deviceTypeClassicBluetoothHeadset": "Κλασικά ακουστικά Bluetooth",
"deviceTypeBleBluetoothHeadset": "Ακουστικά BLE Bluetooth",
"deviceTypeSmartVoiceRecorder": "Έξυπνη συσκευή εγγραφής φωνής",
"deviceTypeSmartEye": "Έξυπνα γυαλιά",
"unbind": "Αποσύνδεση",
"noDevicesBound": "No devices bound yet",
"pleaseBindDeviceFirst": "Please bind a device first to manage",
"noMacAddress": "No MAC Address",
"licenseCode": "License Code",
"confirmUnbind": "Confirm Unbind",
"noDevicesBound": "Δεν υπάρχουν συνδεδεμένες συσκευές",
"pleaseBindDeviceFirst": "Συνδέστε πρώτα μια συσκευή για διαχείριση",
"noMacAddress": "Χωρίς διεύθυνση MAC",
"licenseCode": "Κωδικός άδειας",
"confirmUnbind": "Επιβεβαίωση αποσύνδεσης",
"confirmUnbindMessage":
"Are you sure you want to unbind device \"{deviceName}\"?",
"confirmUnbindAction": "Confirm Unbind",
"Είστε βέβαιοι ότι θέλετε να αποσυνδέσετε τη συσκευή \"{deviceName}\";",
"confirmUnbindAction": "Επιβεβαίωση αποσύνδεσης",
// Agent模块 - 主界面
"Lily": "Lily",
@ -833,21 +873,22 @@ const Map<String, String> elGR = {
"loadMoreMessages": "Φόρτωση περισσότερων μηνυμάτων...",
"loadFailedClickRetry": "Αποτυχία φόρτωσης, κάντε κλικ για επανάληψη",
"swipeUpForMore": "Σύρετε προς τα πάνω για περισσότερα",
"callingTool": "I'm helping you, please wait!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断
'voice_interrupt_tip': 'Όταν είναι ενεργοποιημένο: Η AI δεν θα διακοπεί από τη φωνή σας κατά τη διάρκεια της ομιλίας και μπορεί να χειριστεί μόνο έναν γύρο συνομιλίας τη φορά. Για να ξεκινήσετε νέο γύρο, απλά πείτε τη λέξη αφύπνισης.',
"callingTool": "Σας βοηθάω, παρακαλώ περιμένετε!", // 正在帮您,请稍等!
"voice_interrupt": "Διακοπή", // 语音打断
'voice_interrupt_tip':
'Όταν είναι ενεργοποιημένο: Η AI δεν θα διακοπεί από τη φωνή σας κατά τη διάρκεια της ομιλίας και μπορεί να χειριστεί μόνο έναν γύρο συνομιλίας τη φορά. Για να ξεκινήσετε νέο γύρο, απλά πείτε τη λέξη αφύπνισης.',
// Agent模块 - 预设提示词
"presetMusic": "Play some music", // 来点音乐
"presetNavigation": "Navigation to", // 导航
"presetWeather": "Today's weather", // 今日天气
"presetNews": "Today's news", // 今日新闻
"presetFood": "Nearby food", // 美食
"playSomeMusic": "Play some popular music", // 播放一些流行音乐
"navigationTo": "Please help me navigate to", // 导航到
"todayWeather": "How's the weather today?", // 今日天气
"todayNews": "What's the news today?", // 今日新闻
"nearbyFood": "What delicious food is nearby?", // 美食
"presetMusic": "Παίξε μουσική", // 来点音乐
"presetNavigation": "Πλοήγηση σε", // 导航
"presetWeather": "Καιρός σήμερα", // 今日天气
"presetNews": "Ειδήσεις σήμερα", // 今日新闻
"presetFood": "Φαγητό κοντά", // 美食
"playSomeMusic": "Παίξε δημοφιλή μουσική", // 播放一些流行音乐
"navigationTo": "Βοηθήστε με να πλοηγηθώ στο", // 导航到
"todayWeather": "Πώς είναι ο καιρός σήμερα;", // 今日天气
"todayNews": "Ποια είναι τα νέα σήμερα;", // 今日新闻
"nearbyFood": "Τι νόστιμο φαγητό υπάρχει κοντά;", // 美食
// Agent模块 - 欢迎消息与权限
'welcomeMessage': 'Γεια σας! Είμαι ο **Lily**, μπορώ να σας βοηθήσω με:\n\n'
@ -893,6 +934,13 @@ const Map<String, String> elGR = {
'Θέλουμε να γνωρίζουμε τον λόγο της αναφοράς σας, μπορείτε να περιγράψετε το πρόβλημα που αντιμετωπίσατε.',
'generatedByAi': 'Δημιουργήθηκε από AI',
// Agent模块 - 工具调用
'toolCall': 'Κλήση εργαλείου',
'noResult': 'Κανένα αποτέλεσμα',
'noToolCallContentToCopy': 'Δεν υπάρχει περιεχόμενο κλήσης εργαλείου για αντιγραφή',
'toolCallDetails': 'Λεπτομέρειες κλήσης εργαλείου:',
'toolCallContentCopied': 'Το περιεχόμενο κλήσης εργαλείου αντιγράφηκε στο πρόχειρο',
// Agent模块 - 音乐卡片
'recommendedMusic': 'Ορίστε μερικές προτεινόμενες μουσικές:',
'playList': 'Λίστα αναπαραγωγής',
@ -913,6 +961,29 @@ const Map<String, String> elGR = {
"bicycling": "Ποδηλασία",
"tsransit": "Δημόσια συγκοινωνία",
// Agent模块 - 导航选择
'selectNavigationApp': 'Επιλογή εφαρμογής πλοήγησης',
'amapMap': 'Amap',
'useAmapNavigation': 'Πλοήγηση με Amap',
'baiduMap': 'Baidu Maps',
'useBaiduNavigation': 'Πλοήγηση με Baidu Maps',
'googleMap': 'Google Maps',
'useGoogleNavigation': 'Πλοήγηση με Google Maps',
'appleMap': 'Apple Maps',
'useAppleNavigation': 'Πλοήγηση με Apple Maps',
'builtInNavigation': 'Ενσωματωμένη πλοήγηση',
'useBuiltInNavigation': 'Πλοήγηση με ενσωματωμένο χάρτη',
'navigationStartFailed': 'Αποτυχία εκκίνησης πλοήγησης',
'cannotPlayMusicListRetryLater':
'Δεν είναι δυνατή η αναπαραγωγή της λίστας μουσικής, δοκιμάστε ξανά αργότερα',
'cannotPlaySong': 'Δεν είναι δυνατή η αναπαραγωγή τραγουδιού',
'openMapError': 'Σφάλμα κατά το άνοιγμα του χάρτη',
'pleaseInstallAmapApp': 'Εγκαταστήστε πρώτα την εφαρμογή Amap',
'pleaseInstallBaiduMapApp': 'Εγκαταστήστε πρώτα την εφαρμογή Baidu Maps',
'appleMapStartFailed': 'Αποτυχία εκκίνησης Apple Maps',
'appleMapUnavailable': 'Τα Apple Maps δεν είναι διαθέσιμα',
'openAppleMapError': 'Σφάλμα κατά το άνοιγμα των Apple Maps',
// Agent模块 - 天气卡片
'weatherQuery': 'Ερώτημα καιρού:',
'highest': 'Υψηλότερη',
@ -966,8 +1037,8 @@ const Map<String, String> elGR = {
"strongWind": "Δυνατός άνεμος",
// 翻译模块 - 中间层
"pictureTranslation": "Picture Translation",
"textTranslation": "Text Translation",
"pictureTranslation": "Μετάφραση εικόνας",
"textTranslation": "Μετάφραση κειμένου",
// 翻译模块 - 主页
"translationHistory": "Ιστορικό μεταφράσεων",
@ -977,22 +1048,33 @@ const Map<String, String> elGR = {
"phoneUser": "Χρήστης τηλεφώνου",
"selectSourceLanguage": "Επιλέξτε γλώσσα προέλευσης",
"selectTargetLanguage": "Επιλέξτε γλώσσα προορισμού",
"me": "Me",
"counterPart": "Counterpart",
"me": "Εγώ",
"counterPart": "Συνομιλητής",
"bluetoothCallStateError":
"Please make sure the Bluetooth headset is connected to the phone and in a call state",
"autoDetect": "Auto Detect", // 自动检测
"Βεβαιωθείτε ότι τα ακουστικά Bluetooth είναι συνδεδεμένα στο τηλέφωνο και σε κατάσταση κλήσης",
"autoDetect": "Αυτόματη ανίχνευση", // 自动检测
// 翻译模块 - 文本翻译
"languageDetectionFailed": "Language detection failed",
"translationFailed": "Translation failed",
"pleaseInputText": "Please input text",
"textTooLong": "Text too long, max 5000 characters",
"languageDetectionFailed": "Αποτυχία ανίχνευσης γλώσσας",
// 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'Απενεργοποίηση αιωρούμενου παραθύρου',
'enableFloatingWindow': 'Ενεργοποίηση αιωρούμενου παραθύρου',
'permissionTip': 'Υπόδειξη δικαιώματος',
'micPermissionRequiredForRecording':
'Απαιτείται δικαίωμα μικροφώνου για εγγραφή',
'deleteTranslationRecordError': 'Σφάλμα κατά τη διαγραφή εγγραφής μετάφρασης: @error',
"translationFailed": "Αποτυχία μετάφρασης",
"translating": "Μετάφραση σε εξέλιξη",
"translate": "Μετάφραση",
"pleaseInputText": "Εισαγάγετε κείμενο",
"inputTextToTranslate": "Παρακαλώ εισαγάγετε το κείμενο προς μετάφραση",
"textTooLong": "Το κείμενο είναι πολύ μεγάλο, μέγιστο 5000 χαρακτήρες",
// 翻译模块 - 历史记录
"noTranslationHistory": "Δεν υπάρχει ιστορικό μεταφράσεων",
"historyRecords": "History Records",
"clearResults": "Clear Results",
"historyRecords": "Ιστορικό εγγραφών",
"clearResults": "Εκκαθάριση αποτελεσμάτων",
"clearHistory": "Εκκαθάριση ιστορικού",
"clearHistoryConfirm":
"Είστε βέβαιοι ότι θέλετε να εκκαθαρίσετε όλο το ιστορικό μεταφράσεων; Αυτή η ενέργεια δεν μπορεί να αναιρεθεί.",
@ -1002,55 +1084,55 @@ const Map<String, String> elGR = {
"Είστε βέβαιοι ότι θέλετε να διαγράψετε όλες τις εγγραφές μεταφράσεων για αυτή τη συνεδρία; Αυτή η ενέργεια δεν μπορεί να αναιρεθεί.",
// 翻译模块 - 图片翻译
"selectImageSource": "Select Image Source",
"imagePreview": "Image Preview",
"translationResult": "Translation Result",
"recognitionResult": "Recognition Result",
"translatedImagePreview": "Translated Image Preview",
"translatedImageLoadFailed": "Failed to load translated image",
"pleaseSelectImage": "Please select an image",
"imageLoadFailed": "Image load failed",
"imageQuality": "Image Quality",
"maxSize": "Max Size",
"close": "Close",
"setImageQuality": "Set Image Quality",
"currentQuality": "Current quality: @value%",
"setMaxSize": "Set Max Size",
"currentMaxSize": "Current: @pxpx",
"waitingForAction": "Waiting for action",
"pleaseSelectImageToStart": "Please select an image to start",
"chooseImage": "Choose Image",
"openingCamera": "Opening camera...",
"openingPhotoAlbum": "Opening photo album...",
"cancelled": "Cancelled",
"userCancelledSelection": "User cancelled selection",
"translatingImage": "Translating Image",
"callingImageTranslateService": "Calling image translation service...",
"savingRecord": "Saving Record",
"savingTranslationResult": "Saving translation result...",
"translationCompleted": "Translation Completed",
"allStepsCompleted": "All steps completed",
"processingFailed": "Processing Failed",
"selectImageSource": "Επιλογή πηγής εικόνας",
"imagePreview": "Προεπισκόπηση εικόνας",
"translationResult": "Αποτέλεσμα μετάφρασης",
"recognitionResult": "Αποτέλεσμα αναγνώρισης",
"translatedImagePreview": "Προεπισκόπηση μεταφρασμένης εικόνας",
"translatedImageLoadFailed": "Αποτυχία φόρτωσης μεταφρασμένης εικόνας",
"pleaseSelectImage": "Επιλέξτε μια εικόνα",
"imageLoadFailed": "Αποτυχία φόρτωσης εικόνας",
"imageQuality": "Ποιότητα εικόνας",
"maxSize": "Μέγιστο μέγεθος",
"close": "Κλείσιμο",
"setImageQuality": "Ρύθμιση ποιότητας εικόνας",
"currentQuality": "Τρέχουσα ποιότητα: @value%",
"setMaxSize": "Ρύθμιση μέγιστου μεγέθους",
"currentMaxSize": "Τρέχον: @pxpx",
"waitingForAction": "Αναμονή ενέργειας",
"pleaseSelectImageToStart": "Επιλέξτε μια εικόνα για να ξεκινήσετε",
"chooseImage": "Επιλογή εικόνας",
"openingCamera": "Άνοιγμα κάμερας...",
"openingPhotoAlbum": "Άνοιγμα άλμπουμ φωτογραφιών...",
"cancelled": "Ακυρώθηκε",
"userCancelledSelection": "Ο χρήστης ακύρωσε την επιλογή",
"translatingImage": "Μετάφραση εικόνας",
"callingImageTranslateService": "Κλήση υπηρεσίας μετάφρασης εικόνας...",
"savingRecord": "Αποθήκευση εγγραφής",
"savingTranslationResult": "Αποθήκευση αποτελέσματος μετάφρασης...",
"translationCompleted": "Η μετάφραση ολοκληρώθηκε",
"allStepsCompleted": "Όλα τα βήματα ολοκληρώθηκαν",
"processingFailed": "Αποτυχία επεξεργασίας",
"imageProcessingOrTranslationFailed":
"Image processing or translation failed. Please retry.\nError: {error}",
"imageTooLarge": "Image size exceeds 4MB limit",
"Αποτυχία επεξεργασίας ή μετάφρασης εικόνας. Δοκιμάστε ξανά.\nΣφάλμα: {error}",
"imageTooLarge": "Το μέγεθος εικόνας υπερβαίνει το όριο των 4MB",
"imageTooLargeHint":
"Image size exceeds 4MB. Reduce quality or dimensions and retry",
"emptyTranslationResult": "Image translation API returned empty result",
"Το μέγεθος εικόνας υπερβαίνει τα 4MB. Μειώστε την ποιότητα ή τις διαστάσεις και δοκιμάστε ξανά",
"emptyTranslationResult": "Το API μετάφρασης εικόνας επέστρεψε κενό αποτέλεσμα",
"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",
"Εξαίρεση API μετάφρασης εικόνας. Ελέγξτε το δίκτυο και δοκιμάστε ξανά",
"permissionRequired": "Απαιτείται δικαίωμα",
"cameraPermissionRequired": "Απαιτείται δικαίωμα κάμερας για λήψη φωτογραφιών",
"photoAlbumPermissionRequired":
"Photo album permission required to pick images",
"translationDetails": "Translation Details",
"originalImage": "Original Image",
"sourceLanguage": "Source Language",
"targetLanguage": "Target Language",
"translationTime": "Translation Time",
"shareInDevelopment": "Sharing feature under development",
"Απαιτείται δικαίωμα άλμπουμ φωτογραφιών για επιλογή εικόνων",
"translationDetails": "Λεπτομέρειες μετάφρασης",
"originalImage": "Αρχική εικόνα",
"sourceLanguage": "Γλώσσα προέλευσης",
"targetLanguage": "Γλώσσα προορισμού",
"translationTime": "Χρόνος μετάφρασης",
"shareInDevelopment": "Η λειτουργία κοινοποίησης βρίσκεται υπό ανάπτυξη",
// 翻译模块 - 录音文件
"translateAudioFiles": "Μετάφραση αρχείων ήχου",
@ -1103,8 +1185,8 @@ const Map<String, String> elGR = {
'deleteAccount': 'Διαγραφή λογαριασμού',
'deleteAccountTips':
'Είστε βέβαιοι ότι θέλετε να διαγράψετε μόνιμα τον λογαριασμό σας; Αυτή η ενέργεια δεν μπορεί να αναιρεθεί',
'clean': 'Clear Cache',
'cleanTips': 'Are you sure you want to clear personal cache?',
'clean': 'Εκκαθάριση προσωρινής μνήμης',
'cleanTips': 'Είστε βέβαιοι ότι θέλετε να εκκαθαρίσετε την προσωπική προσωρινή μνήμη;',
'networkConnectionFailed':
'Αποτυχία σύνδεσης δικτύου, ελέγξτε τις ρυθμίσεις δικτύου και δοκιμάστε ξανά',
'serverTemporarilyUnavailable':
@ -1152,18 +1234,18 @@ const Map<String, String> elGR = {
'Εντοπίστηκε ότι έχετε αρνηθεί μόνιμα το δικαίωμα αποθήκευσης. Για να συνεχίσετε να χρησιμοποιείτε αυτή τη λειτουργία, παρακαλώ μεταβείτε στις ρυθμίσεις εφαρμογής για να ενεργοποιήσετε χειροκίνητα το δικαίωμα αποθήκευσης.',
'getPermissionStatusFailed': 'Αποτυχία λήψης κατάστασης δικαιωμάτων',
'communicationPermissions': 'Δικαιώματα επικοινωνίας',
'bluetoothPermissions': 'Bluetooth Permissions',
'notificationPermissions': 'Notification Permissions',
'storagePermissions': 'Storage Permissions',
'microphonePermissions': 'Microphone Permissions',
'alarmPermissions': 'Alarm Permissions',
'bluetoothPermissions': 'Δικαιώματα Bluetooth',
'notificationPermissions': 'Δικαιώματα ειδοποιήσεων',
'storagePermissions': 'Δικαιώματα αποθήκευσης',
'microphonePermissions': 'Δικαιώματα μικροφώνου',
'alarmPermissions': 'Δικαιώματα ξυπνητηριού',
'calendarPermissions': 'Δικαιώματα ημερολογίου',
'locationPermissions': 'Δικαιώματα τοποθεσίας',
'phone': 'Τηλέφωνο',
'sms': 'SMS',
'contacts': 'Contacts',
'notification': 'Notification',
'alarm': 'Alarm',
'contacts': 'Επαφές',
'notification': 'Ειδοποίηση',
'alarm': 'Ξυπνητήρι',
'calendarWrite': 'Εγγραφή ημερολογίου',
'calendarFullAccess': 'Πλήρης πρόσβαση ημερολογίου',
'locationInfo': 'Πληροφορίες τοποθεσίας',
@ -1171,7 +1253,7 @@ const Map<String, String> elGR = {
'Χρησιμοποιείται για τη λειτουργία τηλεφωνικών κλήσεων',
'smsPermissionDesc': 'Χρησιμοποιείται για τη λειτουργία αποστολής SMS',
'alarmPermissionDesc':
'Used to set exact alarms to ensure reminders trigger on time',
'Χρησιμοποιείται για τη ρύθμιση ακριβών ξυπνητηριών ώστε οι υπενθυμίσεις να ενεργοποιούνται έγκαιρα',
'calendarWritePermissionDesc':
'Χρησιμοποιείται για τη δημιουργία γεγονότων και υπενθυμίσεων ημερολογίου',
'calendarFullAccessPermissionDesc':
@ -1192,86 +1274,88 @@ const Map<String, String> elGR = {
'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',
'contactsPermissionDesc': 'Χρησιμοποιείται για πρόσβαση σε πληροφορίες επαφών',
'contactsPermissionDetailDesc':
'Phone call and SMS functionality requires contacts permission to select contacts',
'Η λειτουργία τηλεφωνικών κλήσεων και SMS χρειάζεται δικαίωμα επαφών για επιλογή επαφών',
'bluetoothPermissionDesc':
'Used for connecting and managing Bluetooth devices',
'Χρησιμοποιείται για σύνδεση και διαχείριση συσκευών Bluetooth',
'bluetoothPermissionDetailDesc':
'Connecting to Bluetooth headphones and other devices requires Bluetooth permission',
'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices',
'Η σύνδεση με ακουστικά Bluetooth και άλλες συσκευές απαιτεί δικαίωμα Bluetooth',
'bluetoothScanPermissionDesc': 'Χρησιμοποιείται για σάρωση κοντινών συσκευών Bluetooth',
'bluetoothScanPermissionDetailDesc':
'Scanning for nearby Bluetooth devices requires Bluetooth scan permission',
'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices',
'Η σάρωση κοντινών συσκευών Bluetooth απαιτεί δικαίωμα σάρωσης Bluetooth',
'bluetoothConnectPermissionDesc': 'Χρησιμοποιείται για σύνδεση σε συσκευές Bluetooth',
'bluetoothConnectPermissionDetailDesc':
'Connecting to Bluetooth devices requires Bluetooth connect permission',
'notificationPermissionDesc': 'Used for sending notification messages',
'Η σύνδεση σε συσκευές Bluetooth απαιτεί δικαίωμα σύνδεσης Bluetooth',
'notificationPermissionDesc': 'Χρησιμοποιείται για αποστολή μηνυμάτων ειδοποίησης',
'notificationPermissionDetailDesc':
'App needs notification permission to send you important alerts and messages',
'Η εφαρμογή χρειάζεται δικαίωμα ειδοποιήσεων για να σας στέλνει σημαντικές ειδοποιήσεις και μηνύματα',
'appNeedsPermissionForFullFunction':
'Η εφαρμογή χρειάζεται αυτό το δικαίωμα για να παρέχει πλήρη λειτουργικότητα',
'permanentDenialText':
'Έχετε αρνηθεί μόνιμα το δικαίωμα {permission}, μεταβείτε στις ρυθμίσεις εφαρμογής για να το ενεργοποιήσετε',
'goToSettings': 'Μετάβαση στις ρυθμίσεις',
'bluetoothScan': 'Bluetooth Scan',
'bluetoothConnect': 'Bluetooth Connect',
'bluetoothScan': 'Σάρωση Bluetooth',
'bluetoothConnect': 'Σύνδεση Bluetooth',
'bluetoothScanExplanation':
'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.',
'Η εφαρμογή χρειάζεται δικαίωμα σάρωσης Bluetooth για σάρωση κοντινών συσκευών Bluetooth.',
'bluetoothConnectExplanation':
'The app needs Bluetooth connect permission to connect to Bluetooth devices.',
'Η εφαρμογή χρειάζεται δικαίωμα σύνδεσης Bluetooth για σύνδεση σε συσκευές Bluetooth.',
'locationForBluetoothExplanation':
'The app needs location permission to scan Bluetooth devices.',
'Η εφαρμογή χρειάζεται δικαίωμα τοποθεσίας για σάρωση συσκευών Bluetooth.',
'bluetoothScanPermanentDenial':
'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.',
'Το δικαίωμα σάρωσης Bluetooth έχει απορριφθεί μόνιμα, μεταβείτε στις ρυθμίσεις για χειροκίνητη ενεργοποίηση.',
'bluetoothConnectPermanentDenial':
'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.',
'Το δικαίωμα σύνδεσης Bluetooth έχει απορριφθεί μόνιμα, μεταβείτε στις ρυθμίσεις για χειροκίνητη ενεργοποίηση.',
'locationPermanentDenial':
'Location permission has been permanently denied, please go to settings to enable it manually.',
'notificationPermission': 'Notification',
'locationPermission': 'Location',
'Το δικαίωμα τοποθεσίας έχει απορριφθεί μόνιμα, μεταβείτε στις ρυθμίσεις για χειροκίνητη ενεργοποίηση.',
'notificationPermission': 'Ειδοποίηση',
'locationPermission': 'Τοποθεσία',
'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.',
'storagePermission': 'Storage',
'Έχετε απορρίψει μόνιμα το δικαίωμα τοποθεσίας, μεταβείτε στις ρυθμίσεις για ενεργοποίηση.',
'storagePermission': 'Αποθήκευση',
'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.',
'permissionUtilNeed': 'Need ',
'permissionUtilPermission': ' Permission',
'permissionUtilRestricted': ' Permission Restricted',
'Το δικαίωμα αποθήκευσης έχει απορριφθεί μόνιμα. Για να συνεχίσετε να χρησιμοποιείτε αυτή τη λειτουργία, μεταβείτε στις ρυθμίσεις εφαρμογής για χειροκίνητη ενεργοποίηση.',
'permissionUtilNeed': 'Απαιτείται ',
'permissionUtilPermission': ' Δικαίωμα',
'permissionUtilRestricted': ' Δικαίωμα περιορισμένο',
'permissionUtilRestrictedMessage':
'This feature is unavailable or restricted on the current device, please check device settings or system restrictions',
'Αυτή η λειτουργία δεν είναι διαθέσιμη ή είναι περιορισμένη στην τρέχουσα συσκευή, ελέγξτε τις ρυθμίσεις συσκευής ή τους περιορισμούς συστήματος',
'permissionUtilConfirm': 'OK',
// 原生前台服务通知(Android)
'native.notification.appName': 'VOITRANS',
'native.notification.navigation.title': 'Πλοήγηση σε εξέλιξη',
'native.notification.navigation.keepRunning': 'Πλοήγηση σε εξέλιξη, διατηρήστε την εφαρμογή ανοιχτή',
'native.notification.bleAgent.running': 'Ο φωνητικός βοηθός εκτελείται',
'native.notification.audioRecording.recording': 'Εγγραφή ήχου, πατήστε για επιστροφή στην εφαρμογή',
'native.notification.music.waiting': 'Αναμονή αναπαραγωγής',
'native.notification.music.previous': 'Προηγούμενο',
'native.notification.music.next': 'Επόμενο',
'native.notification.music.play': 'Αναπαραγωγή',
'native.notification.music.pause': 'Παύση',
'native.notification.qqMusic.playing': 'Αναπαραγωγή μουσικής',
'native.notification.appName': 'VOITRANS',
'native.notification.navigation.title': 'Πλοήγηση σε εξέλιξη',
'native.notification.navigation.keepRunning':
'Πλοήγηση σε εξέλιξη, διατηρήστε την εφαρμογή ανοιχτή',
'native.notification.bleAgent.running': 'Ο φωνητικός βοηθός εκτελείται',
'native.notification.audioRecording.recording':
'Εγγραφή ήχου, πατήστε για επιστροφή στην εφαρμογή',
'native.notification.music.waiting': 'Αναμονή αναπαραγωγής',
'native.notification.music.previous': 'Προηγούμενο',
'native.notification.music.next': 'Επόμενο',
'native.notification.music.play': 'Αναπαραγωγή',
'native.notification.music.pause': 'Παύση',
'native.notification.qqMusic.playing': 'Αναπαραγωγή μουσικής',
// 版本更新
'newVersionFound': 'Βρέθηκε νέα έκδοση', // 版本更新对话框标题
@ -1345,27 +1429,27 @@ const Map<String, String> elGR = {
'bleConnectionFailed': 'Αποτυχία σύνδεσης BLE',
'deviceAuthorizationFailedCheckCode':
'Αποτυχία εξουσιοδότησης συσκευής, ελέγξτε τον κωδικό εξουσιοδότησης',
'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙
'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作:
'bluetoothGuideTitle': 'Απαιτείται χειροκίνητη ενεργοποίηση Bluetooth', // 需要手动开启蓝牙
'bluetoothGuideSteps': 'Ακολουθήστε τα παρακάτω βήματα:', // 请按照以下步骤操作:
'bluetoothGuideStep1':
'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启
'Ενεργοποίηση Bluetooth: Ρυθμίσεις → Bluetooth → Ενεργοποίηση', // 开启蓝牙:设置 → 蓝牙 → 开启
'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', // 我知道了
'Συμβουλή: Μπορείτε επίσης να πατήσετε παρατεταμένα το εικονίδιο Bluetooth στο Κέντρο ελέγχου για γρήγορη πρόσβαση στις ρυθμίσεις Bluetooth', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置
'iKnow': 'Κατάλαβα', // 我知道了
// 配对模块 - 绑定奖励
"firstBindRewardTitle": "Welcome Reward",
"firstBindRewardDesc": "You've received binding rewards.",
"vipLevelLabel": "VIP Level:",
"expiryLabel": "Expiration:",
"notActivated": "Not activated",
"aiChatCreditsLabel": "AI Chat Credits:",
"translationCreditsLabel": "Translation Credits:",
"meetingCreditsLabel": "Meeting Credits:",
"firstBindRewardTitle": "Ανταμοιβή καλωσορίσματος",
"firstBindRewardDesc": "Λάβατε ανταμοιβές σύνδεσης.",
"vipLevelLabel": "Επίπεδο VIP:",
"expiryLabel": "Λήξη:",
"notActivated": "Δεν έχει ενεργοποιηθεί",
"aiChatCreditsLabel": "Πόντοι συνομιλίας AI:",
"translationCreditsLabel": "Πόντοι μετάφρασης:",
"meetingCreditsLabel": "Πόντοι συνάντησης:",
"ok": "OK",
// 用户反馈模块
@ -1394,13 +1478,13 @@ const Map<String, String> elGR = {
"connectionFailed": "Αποτυχία σύνδεσης",
"retryConnection": "Επανάληψη σύνδεσης",
"ota_updateNow": "Ενημέρωση τώρα",
"otaVersionInfoFailed": "Failed to get version info. Please try again later.",
"otaVersionInfoFailed": "Αποτυχία λήψης πληροφοριών έκδοσης. Δοκιμάστε ξανά αργότερα.",
"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.",
"Η έκδοση firmware είναι μη κανονική. Επανασυνδέστε και δοκιμάστε ξανά.",
"keepConnectedDontClose":
"Διατηρήστε τη συσκευή συνδεδεμένη, μην κλείσετε την εφαρμογή",
"doNotDisconnect": "Μην αποσυνδέσετε",
@ -1409,6 +1493,59 @@ const Map<String, String> elGR = {
"removeEarbudsEnsureBattery":
"Αφαιρέστε και τα δύο ακουστικά και βεβαιωθείτε ότι η μπαταρία και των δύο είναι πάνω από 20%",
// OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': 'Βρέθηκε νέα έκδοση @version',
'otaConfirmUpdateNow': 'Ενημέρωση τώρα;',
'otaUpdate': 'Ενημέρωση',
'otaUpgradeSuccess': 'Επιτυχής αναβάθμιση',
'otaUpgradeCompleteRepair':
'Η αναβάθμιση firmware ολοκληρώθηκε!\n\nΗ συσκευή χρειάζεται εκ νέου σύζευξη για σωστή λειτουργία. Μετάβαση στη σελίδα σύζευξης τώρα;',
'otaPairLater': 'Σύζευξη αργότερα',
'otaPairNow': 'Σύζευξη τώρα',
'okConfirm': 'OK',
// OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'Σφάλμα ελέγχου σύνδεσης BLE: @error',
'otaBleNotConnected': 'Η συσκευή BLE δεν είναι συνδεδεμένη',
'otaBleNeedConnection':
'Η αναβάθμιση firmware απαιτεί σύνδεση συσκευής BLE\nΒεβαιωθείτε ότι η συσκευή είναι σωστά συνδεδεμένη και δοκιμάστε ξανά',
'otaDeviceInfoUnavailableTitle': 'Πληροφορίες συσκευής μη διαθέσιμες',
'otaCannotGetDeviceInfo':
'Αδυναμία λήψης πληροφοριών συσκευής\nΕπανασυνδέστε τη συσκευή ή δοκιμάστε αργότερα',
'otaBleCheckFailed': 'Αποτυχία ελέγχου σύνδεσης BLE',
'otaCannotGetDeviceInfoCheckConnection':
'Αδυναμία λήψης πληροφοριών συσκευής, ελέγξτε τη σύνδεση συσκευής',
'otaCannotGetProductInfoWithName':
'Αδυναμία λήψης πληροφοριών προϊόντος, όνομα συσκευής: @deviceName',
'otaCannotGetBatteryInfo': 'Αδυναμία λήψης έγκυρων πληροφοριών μπαταρίας',
'otaLowBattery': 'Χαμηλή μπαταρία',
'otaSingleBatteryLow':
'Η μπαταρία της συσκευής είναι πολύ χαμηλή για αναβάθμιση firmware\nΑπαίτηση: η μπαταρία πρέπει να είναι πάνω από 20%\nΤρέχον: @ear @battery%\nΦορτίστε και δοκιμάστε ξανά',
'otaDoubleBatteryLow':
'Η μπαταρία της συσκευής είναι πολύ χαμηλή για αναβάθμιση firmware\nΑπαίτηση: και τα δύο ακουστικά πρέπει να είναι πάνω από 20%\nΤρέχον: Αριστερό @left%, Δεξί @right%\nΦορτίστε και δοκιμάστε ξανά',
'otaBatteryCheckFailed': 'Αποτυχία ελέγχου μπαταρίας',
// OTA升级模块 - 升级状态
'otaDefaultUpdateDesc':
'Αυτή η ενημέρωση περιλαμβάνει βελτιστοποιήσεις απόδοσης και διορθώσεις σφαλμάτων.',
'otaGetLatestVersionFailed': 'Αποτυχία λήψης πληροφοριών τελευταίας έκδοσης',
'otaGetVersionInfoFailed': 'Αποτυχία λήψης πληροφοριών έκδοσης',
'otaCheckingDeviceStatus': 'Έλεγχος κατάστασης συσκευής...',
'otaDownloadFailedCheckNetwork':
'Αποτυχία λήψης, ελέγξτε τη σύνδεση δικτύου',
'otaDownloadFailed': 'Αποτυχία λήψης',
'otaPreparingConnection': 'Προετοιμασία σύνδεσης συσκευής...',
'otaConnectingDevice': 'Σύνδεση στη συσκευή...',
'otaUpgradeStarted': 'Η αναβάθμιση OTA ξεκίνησε...',
'otaUpgradeProgressWithPercent': 'Πρόοδος αναβάθμισης: @percent%',
'otaUpgradeSuccessComplete': 'Η αναβάθμιση ολοκληρώθηκε επιτυχώς',
'otaUpgradeFailedWithCode': 'Αποτυχία αναβάθμισης, κωδικός σφάλματος: @code',
'otaUpgradeFailedTitle': 'Αποτυχία αναβάθμισης',
'otaUpgradeFailedDesc':
'Ελέγξτε τη σύνδεση συσκευής ή το πακέτο ενημέρωσης, κωδικός σφάλματος: @code',
'otaDeviceDisconnected': 'Η συσκευή αποσυνδέθηκε',
'otaDeviceConnected': 'Η συσκευή συνδέθηκε',
// 音乐模块
"noMusic": "Δεν υπάρχει μουσική", // 暂无音乐
"noPlayingMusic": "Δεν παίζει μουσική", // 暂无播放音乐

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

@ -1,5 +1,4 @@
const Map<String, String> enUS = {
// 通用
'continue': 'Continue',
'confirm': 'Confirm',
@ -129,7 +128,8 @@ const Map<String, String> enUS = {
"aiAssistant": "AI Assistant",
"aiAssistantInfo": "24/7 personal consultant for questions and advice",
"interpretation": "Translation",
"simultaneousInterpretationInfo": "Real-time translation for multiple languages",
"simultaneousInterpretationInfo":
"Real-time translation for multiple languages",
"aiCompanion": "Parent-child bonding",
"aiCompanionInfo": "Understands you and provides warm companionship",
"homeSlogan": "Connect the World, Beyond Sound",
@ -166,6 +166,29 @@ const Map<String, String> enUS = {
'right': 'Right',
'checkConnectionStatusFailed': 'Failed to check connection status',
// 蓝牙扫描模块
'bleInitFailedWithError': 'Bluetooth initialization failed: @error',
'needBluetoothAndLocationPermission':
'Bluetooth and location permissions are required to scan devices',
'permissionRequestFailedWithError': 'Permission request failed: @error',
'needPermission': 'Permission Required',
'blePermissionDialogContent':
'This app requires Bluetooth and location permissions to scan devices. Please enable them in Settings.',
'needEnableBluetooth': 'Enable Bluetooth',
'enableBluetoothDialogContent':
'Please enable Bluetooth to scan and connect devices.',
'bleScanFailedWithError': 'Scan failed: @error',
'bleConnectionSuccess': 'Connection Successful',
'bleConnectedToDevice': 'Connected to @device',
'bleConnectionFailedWithError': 'Connection failed: @error',
'bleDisconnected': 'Disconnected',
'bleDeviceDisconnected': 'Device disconnected',
'bleDisconnectFailedWithError': 'Disconnect failed: @error',
'signalStrong': 'Strong',
'signalMedium': 'Medium',
'signalWeak': 'Weak',
'signalVeryWeak': 'Very Weak',
// 发现页
"searchAi": "Search AI features...",
"exploreSlogan": "Smart Earbuds, Infinite Possibilities",
@ -726,7 +749,8 @@ const Map<String, String> enUS = {
'playerNotReady': 'Audio player is not ready, please wait',
'playFailed': 'Playback failed',
'audioFileNotFound': 'Audio file not found',
'fetchingAudio': 'Fetching audio from cloud...', // Prompt shown when local audio file is missing and downloading from cloud
'fetchingAudio':
'Fetching audio from cloud...', // Prompt shown when local audio file is missing and downloading from cloud
'playerLoadFailed': 'Audio player failed to load',
// 设置页
@ -890,6 +914,13 @@ const Map<String, String> enUS = {
'We want to know the reason for your report, you can describe the problem you encountered.',
'generatedByAi': 'Generated by AI',
// Agent模块 - 工具调用
'toolCall': 'Tool Call',
'noResult': 'No Result',
'noToolCallContentToCopy': 'No tool call content to copy',
'toolCallDetails': 'Tool Call Details:',
'toolCallContentCopied': 'Tool call content copied to clipboard',
// Agent模块 - 音乐卡片
'recommendedMusic': 'Here are some recommended music:',
'playList': 'Playlist',
@ -912,6 +943,29 @@ const Map<String, String> enUS = {
// Agent模块 - 天气卡片
'weatherQuery': 'Weather Query:',
// Agent模块 - 导航选择
'selectNavigationApp': 'Select Navigation App',
'amapMap': 'Amap',
'useAmapNavigation': 'Navigate with Amap',
'baiduMap': 'Baidu Maps',
'useBaiduNavigation': 'Navigate with Baidu Maps',
'googleMap': 'Google Maps',
'useGoogleNavigation': 'Navigate with Google Maps',
'appleMap': 'Apple Maps',
'useAppleNavigation': 'Navigate with Apple Maps',
'builtInNavigation': 'Built-in Navigation',
'useBuiltInNavigation': 'Navigate with built-in map',
'navigationStartFailed': 'Failed to start navigation',
'cannotPlayMusicListRetryLater':
'Cannot play music list, please try again later',
'cannotPlaySong': 'Cannot play song',
'openMapError': 'Error opening map',
'pleaseInstallAmapApp': 'Please install the Amap app first',
'pleaseInstallBaiduMapApp': 'Please install the Baidu Maps app first',
'appleMapStartFailed': 'Apple Maps failed to start',
'appleMapUnavailable': 'Apple Maps unavailable',
'openAppleMapError': 'Error opening Apple Maps',
'highest': 'High',
'lowest': 'Low',
'futureForecast': 'Future Forecast',
@ -982,7 +1036,18 @@ const Map<String, String> enUS = {
// 翻译模块 - 文本翻译
"languageDetectionFailed": "Language detection failed",
"inputTextToTranslate": "Please enter the text to translate",
// 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'Disable Floating Window',
'enableFloatingWindow': 'Enable Floating Window',
'permissionTip': 'Permission Tip',
'micPermissionRequiredForRecording':
'Microphone permission is required for recording',
'deleteTranslationRecordError': 'Error deleting translation record: @error',
"translationFailed": "Translation failed",
"translating": "Translating",
"translate": "Translate",
"pleaseInputText": "Please input text",
"textTooLong": "Text too long, max 5000 characters",
@ -1402,6 +1467,59 @@ const Map<String, String> enUS = {
"removeEarbudsEnsureBattery":
"Remove both earbuds and ensure battery level is above 20%",
// OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': 'New version @version found',
'otaConfirmUpdateNow': 'Update now?',
'otaUpdate': 'Update',
'otaUpgradeSuccess': 'Upgrade Successful',
'otaUpgradeCompleteRepair':
'Firmware upgrade complete!\n\nDevice needs to be re-paired to work properly. Go to pairing page now?',
'otaPairLater': 'Pair Later',
'otaPairNow': 'Pair Now',
'okConfirm': 'OK',
// OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'Error checking BLE connection: @error',
'otaBleNotConnected': 'BLE Device Not Connected',
'otaBleNeedConnection':
'Firmware upgrade requires BLE device connection\nPlease ensure device is properly connected and try again',
'otaDeviceInfoUnavailableTitle': 'Device Info Unavailable',
'otaCannotGetDeviceInfo':
'Cannot get device info\nPlease reconnect device or try again later',
'otaBleCheckFailed': 'BLE Connection Check Failed',
'otaCannotGetDeviceInfoCheckConnection':
'Cannot get device info, please check device connection',
'otaCannotGetProductInfoWithName':
'Cannot get product info, device name: @deviceName',
'otaCannotGetBatteryInfo': 'Cannot get valid battery info',
'otaLowBattery': 'Low Battery',
'otaSingleBatteryLow':
'Device battery too low for firmware upgrade\nRequirement: battery must be above 20%\nCurrent: @ear @battery%\nPlease charge and try again',
'otaDoubleBatteryLow':
'Device battery too low for firmware upgrade\nRequirement: both earbuds must be above 20%\nCurrent: Left @left%, Right @right%\nPlease charge and try again',
'otaBatteryCheckFailed': 'Battery Check Failed',
// OTA升级模块 - 升级状态
'otaDefaultUpdateDesc':
'This update includes performance optimizations and bug fixes.',
'otaGetLatestVersionFailed': 'Failed to get latest version info',
'otaGetVersionInfoFailed': 'Failed to get version info',
'otaCheckingDeviceStatus': 'Checking device status...',
'otaDownloadFailedCheckNetwork':
'Download failed, please check network connection',
'otaDownloadFailed': 'Download Failed',
'otaPreparingConnection': 'Preparing device connection...',
'otaConnectingDevice': 'Connecting to device...',
'otaUpgradeStarted': 'OTA upgrade started...',
'otaUpgradeProgressWithPercent': 'Upgrade progress: @percent%',
'otaUpgradeSuccessComplete': 'Upgrade completed successfully',
'otaUpgradeFailedWithCode': 'Upgrade failed, error code: @code',
'otaUpgradeFailedTitle': 'Upgrade Failed',
'otaUpgradeFailedDesc':
'Please check device connection or update package, error code: @code',
'otaDeviceDisconnected': 'Device disconnected',
'otaDeviceConnected': 'Device connected',
// 音乐模块
"noMusic": "No Music", // 暂无音乐
"noPlayingMusic": "No Playing Music", // 暂无播放音乐

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

File diff suppressed because it is too large

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

@ -1,5 +1,4 @@
const Map<String, String> etEE = {
// 通用
'continue': 'Jätka',
'confirm': 'Kinnita',
@ -164,6 +163,29 @@ const Map<String, String> etEE = {
'right': 'Parem',
'checkConnectionStatusFailed': 'Ühenduse oleku kontrollimine ebaõnnestus',
// 蓝牙扫描模块
'bleInitFailedWithError': 'Bluetooth initialization failed: @error',
'needBluetoothAndLocationPermission':
'Bluetooth and location permissions are required to scan devices',
'permissionRequestFailedWithError': 'Permission request failed: @error',
'needPermission': 'Permission Required',
'blePermissionDialogContent':
'This app requires Bluetooth and location permissions to scan devices. Please enable them in Settings.',
'needEnableBluetooth': 'Enable Bluetooth',
'enableBluetoothDialogContent':
'Please enable Bluetooth to scan and connect devices.',
'bleScanFailedWithError': 'Scan failed: @error',
'bleConnectionSuccess': 'Connection Successful',
'bleConnectedToDevice': 'Connected to @device',
'bleConnectionFailedWithError': 'Connection failed: @error',
'bleDisconnected': 'Disconnected',
'bleDeviceDisconnected': 'Device disconnected',
'bleDisconnectFailedWithError': 'Disconnect failed: @error',
'signalStrong': 'Strong',
'signalMedium': 'Medium',
'signalWeak': 'Weak',
'signalVeryWeak': 'Very Weak',
// 发现页
"searchAi": "Otsi AI funktsioone...",
"exploreSlogan": "Nutikad kõrvaklapid, lõputud võimalused",
@ -239,60 +261,64 @@ const Map<String, String> etEE = {
'totalQuota': 'Total Quota',
'remaining': 'Remaining',
'featureDescription': 'Feature Description',
'paymentSuccess': 'Makse edukas',
'paymentFailed': 'Makse ebaõnnestus',
'gotIt': 'Selge',
'paymentFailedTryAgain': 'Makse ebaõnnestus. Palun proovi uuesti.',
'selectPaymentMethod': 'Vali makseviis',
'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay',
'paypalPay': 'PayPal',
'appleIap': 'Apple IAP',
'googleIap': 'Google IAP',
'wechatOrderCreateFailed': 'WeChat Pay tellimuse loomine ebaõnnestus',
'alipayOrderCreateFailed': 'Alipay tellimuse loomine ebaõnnestus',
'appleOrderCreateFailed': 'Apple tellimuse loomine ebaõnnestus',
'googleOrderCreateFailed': 'Google tellimuse loomine ebaõnnestus',
'paypalOrderCreateFailed': 'PayPal tellimuse loomine ebaõnnestus',
'paymentException': 'Makse erand',
'paymentLaunchFailed': 'Makse käivitamine ebaõnnestus',
'paymentExceptionWithError': 'Makse erand: @error',
'paymentProcessingCheckLater': 'Sinu tellimust töödeldakse. Palun kontrolli hiljem.',
'paymentResultQueryException': 'Makse tulemuse päring ebaõnnestus: @error',
'orderConfirmedQuotaRefreshed': 'Tellimus kinnitatud. Sinu kvoot on värskendatud.',
'paymentCompletedConfirming': 'Makse sooritatud. Kinnitamine…',
'paymentCancelled': 'Makse tühistatud',
'paypalOpenedCompleteInBrowser': 'PayPal avatud. Palun vii makse lõpule brauseris.',
'paypalOpenFailed': 'PayPal makseleht ei ava',
'paymentTestTitle': 'Makse test',
'paymentTestOrderInfo': 'Testtellimuse info',
'paymentTestProductId': 'Toote ID',
'paymentTestProductDescription': 'Toote kirjeldus',
'paymentTestWechatDescription': 'WeChat Pay makse test',
'paymentTestAlipayDescription': 'Alipay makse test',
'paymentTestAmount': 'Summa',
'paymentTestSelectAmount': 'Vali testisumma',
'paying': 'Maksmine...',
'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': 'Makse olek',
'errorInfoWithMessage': 'Viga: @message',
'retest': 'Kordustest',
'paymentTestInstructionsTitle': 'Juhised',
'paymentTestInstructionsContent': '1. Vali testisumma (soovitatud: ¥0,01)\n2. Klõpsa maksenupul alustamiseks\n3. Vii makse lõpule makserakenduses\n4. Naase tulemuse kontrollimiseks',
'startingWechatPayment': 'WeChat Pay käivitamine...',
'startingAlipayPayment': 'Alipay käivitamine...',
'wechatPaymentSuccess': 'WeChat Pay edukas!',
'wechatPaymentFailed': 'WeChat Pay ebaõnnestus',
'wechatPaymentLaunchFailed': 'WeChat Pay käivitamine ebaõnnestus',
'cannotLaunchWechatPayment': 'WeChat Pay käivitamine ei õnnestu',
'wechatPaymentException': 'WeChat Pay erand',
'wechatPaymentTestCompleted': 'WeChat Pay test lõpetatud',
'alipayPaymentSuccess': 'Alipay edukas!',
'alipayPaymentFailed': 'Alipay ebaõnnestus',
'alipayPaymentLaunchFailed': 'Alipay käivitamine ebaõnnestus',
'cannotLaunchAlipayPayment': 'Alipay käivitamine ei õnnestu',
'alipayPaymentException': 'Alipay erand',
'paymentSuccess': 'Makse edukas',
'paymentFailed': 'Makse ebaõnnestus',
'gotIt': 'Selge',
'paymentFailedTryAgain': 'Makse ebaõnnestus. Palun proovi uuesti.',
'selectPaymentMethod': 'Vali makseviis',
'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay',
'paypalPay': 'PayPal',
'appleIap': 'Apple IAP',
'googleIap': 'Google IAP',
'wechatOrderCreateFailed': 'WeChat Pay tellimuse loomine ebaõnnestus',
'alipayOrderCreateFailed': 'Alipay tellimuse loomine ebaõnnestus',
'appleOrderCreateFailed': 'Apple tellimuse loomine ebaõnnestus',
'googleOrderCreateFailed': 'Google tellimuse loomine ebaõnnestus',
'paypalOrderCreateFailed': 'PayPal tellimuse loomine ebaõnnestus',
'paymentException': 'Makse erand',
'paymentLaunchFailed': 'Makse käivitamine ebaõnnestus',
'paymentExceptionWithError': 'Makse erand: @error',
'paymentProcessingCheckLater':
'Sinu tellimust töödeldakse. Palun kontrolli hiljem.',
'paymentResultQueryException': 'Makse tulemuse päring ebaõnnestus: @error',
'orderConfirmedQuotaRefreshed':
'Tellimus kinnitatud. Sinu kvoot on värskendatud.',
'paymentCompletedConfirming': 'Makse sooritatud. Kinnitamine…',
'paymentCancelled': 'Makse tühistatud',
'paypalOpenedCompleteInBrowser':
'PayPal avatud. Palun vii makse lõpule brauseris.',
'paypalOpenFailed': 'PayPal makseleht ei ava',
'paymentTestTitle': 'Makse test',
'paymentTestOrderInfo': 'Testtellimuse info',
'paymentTestProductId': 'Toote ID',
'paymentTestProductDescription': 'Toote kirjeldus',
'paymentTestWechatDescription': 'WeChat Pay makse test',
'paymentTestAlipayDescription': 'Alipay makse test',
'paymentTestAmount': 'Summa',
'paymentTestSelectAmount': 'Vali testisumma',
'paying': 'Maksmine...',
'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': 'Makse olek',
'errorInfoWithMessage': 'Viga: @message',
'retest': 'Kordustest',
'paymentTestInstructionsTitle': 'Juhised',
'paymentTestInstructionsContent':
'1. Vali testisumma (soovitatud: ¥0,01)\n2. Klõpsa maksenupul alustamiseks\n3. Vii makse lõpule makserakenduses\n4. Naase tulemuse kontrollimiseks',
'startingWechatPayment': 'WeChat Pay käivitamine...',
'startingAlipayPayment': 'Alipay käivitamine...',
'wechatPaymentSuccess': 'WeChat Pay edukas!',
'wechatPaymentFailed': 'WeChat Pay ebaõnnestus',
'wechatPaymentLaunchFailed': 'WeChat Pay käivitamine ebaõnnestus',
'cannotLaunchWechatPayment': 'WeChat Pay käivitamine ei õnnestu',
'wechatPaymentException': 'WeChat Pay erand',
'wechatPaymentTestCompleted': 'WeChat Pay test lõpetatud',
'alipayPaymentSuccess': 'Alipay edukas!',
'alipayPaymentFailed': 'Alipay ebaõnnestus',
'alipayPaymentLaunchFailed': 'Alipay käivitamine ebaõnnestus',
'cannotLaunchAlipayPayment': 'Alipay käivitamine ei õnnestu',
'alipayPaymentException': 'Alipay erand',
"insufficientIntegral": "Insufficient integral",
"insufficientBalanceDesc":
'Insufficient balance, please go to the corresponding recharge page to recharge.',
@ -534,21 +560,22 @@ const Map<String, String> etEE = {
'selectSummaryTemplate': 'Select Summary Template',
'useThisTemplate': 'Use This Template',
'lastUsed': 'Last Used',
'create': 'Loo',
'templateDetails': 'Malli üksikasjad',
'tag': 'Silt',
'description': 'Kirjeldus',
'template': 'Mall',
'deleteTemplate': 'Kustuta mall',
'deleteTemplateConfirm': 'Kas oled kindel, et soovid selle malli kustutada?',
'editTemplate': 'Muuda malli',
'createTemplate': 'Loo mall',
'name': 'Nimi',
'templateContentHint': 'Palun sisesta malli sisu! Vihje: Klõpsa ülaloleval AI nupul, et kiiresti genereerida malli sisu sisestatud nime ja kirjelduse põhjal',
'inputNameHint': 'Palun sisesta nimi',
'inputDescHint': 'Palun sisesta kirjeldus',
'custom': 'Kohandatud',
'pleaseEnter': 'Palun sisestage',
'create': 'Loo',
'templateDetails': 'Malli üksikasjad',
'tag': 'Silt',
'description': 'Kirjeldus',
'template': 'Mall',
'deleteTemplate': 'Kustuta mall',
'deleteTemplateConfirm': 'Kas oled kindel, et soovid selle malli kustutada?',
'editTemplate': 'Muuda malli',
'createTemplate': 'Loo mall',
'name': 'Nimi',
'templateContentHint':
'Palun sisesta malli sisu! Vihje: Klõpsa ülaloleval AI nupul, et kiiresti genereerida malli sisu sisestatud nime ja kirjelduse põhjal',
'inputNameHint': 'Palun sisesta nimi',
'inputDescHint': 'Palun sisesta kirjeldus',
'custom': 'Kohandatud',
'pleaseEnter': 'Palun sisestage',
'viewAll': 'View All',
'recordingLanguage': 'Recording Language',
'chineseSimplified': 'Chinese Mandarin (Simplified)',
@ -571,7 +598,7 @@ const Map<String, String> etEE = {
'fileProcessingFailed': 'File processing failed: {filePath}, error: {error}',
// Meeting模块 - 思维导图
'saveMindMap': 'Salvesta mõttekaart',
'saveMindMap': 'Salvesta mõttekaart',
'shareMindMap': 'Share Mind Map',
'shareSuccess': 'Share Success',
@ -593,7 +620,7 @@ const Map<String, String> etEE = {
'exportSummary': 'Export Summary',
'exportAs': 'Export As',
'exportingPDF': 'Exporting PDF...',
'export': 'Ekspordi',
'export': 'Ekspordi',
// Meeting模块 - 发言者
'applyToAllParagraphs': 'Rakenda selle kõneleja kõigile lõikudele',
@ -703,18 +730,18 @@ const Map<String, String> etEE = {
// Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Unknown Language',
'analysisFailed': 'Analüüs ebaõnnestus, proovi hiljem uuesti',
'transcriptionFailed': 'Transkriptsioon ebaõnnestus, proovi hiljem uuesti',
'summaryFailed': 'Kokkuvõte ebaõnnestus, proovi hiljem uuesti',
'summaryFailedShort': 'Kokkuvõte ebaõnnestus',
'transcriptionFailedShort': 'Transkriptsioon ebaõnnestus',
'analysisFailed': 'Analüüs ebaõnnestus, proovi hiljem uuesti',
'transcriptionFailed': 'Transkriptsioon ebaõnnestus, proovi hiljem uuesti',
'summaryFailed': 'Kokkuvõte ebaõnnestus, proovi hiljem uuesti',
'summaryFailedShort': 'Kokkuvõte ebaõnnestus',
'transcriptionFailedShort': 'Transkriptsioon ebaõnnestus',
// Meeting模块 - 播放器
'playerNotReady': 'Helipleier pole valmis, palun oota',
'playFailed': 'Esitamine ebaõnnestus',
'audioFileNotFound': 'Helifaili ei leitud',
'fetchingAudio': 'Helifaili tõmbamine pilvest...',
'playerLoadFailed': 'Helipleieri laadimine ebaõnnestus',
'playerNotReady': 'Helipleier pole valmis, palun oota',
'playFailed': 'Esitamine ebaõnnestus',
'audioFileNotFound': 'Helifaili ei leitud',
'fetchingAudio': 'Helifaili tõmbamine pilvest...',
'playerLoadFailed': 'Helipleieri laadimine ebaõnnestus',
// 设置页
"systemSettings": "Süsteemi seaded",
@ -820,7 +847,8 @@ const Map<String, String> etEE = {
"swipeUpForMore": "Libista üles rohkema jaoks",
"callingTool": "I'm helping you, please wait!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断
'voice_interrupt_tip': 'Kui lubatud: AI-d ei katkesta sinu hääl rääkimise ajal ja see saab korraga käsitleda ainult ühte vestlusvooru. Uue vooru alustamiseks ütle lihtsalt äratussõna.',
'voice_interrupt_tip':
'Kui lubatud: AI-d ei katkesta sinu hääl rääkimise ajal ja see saab korraga käsitleda ainult ühte vestlusvooru. Uue vooru alustamiseks ütle lihtsalt äratussõna.',
// Agent模块 - 预设提示词
"presetMusic": "Play some music", // 来点音乐
@ -876,6 +904,13 @@ const Map<String, String> etEE = {
'Tahame teada teate põhjust, võid kirjeldada probleemi, millega kokku puutusid.',
'generatedByAi': 'AI poolt genereeritud',
// Agent模块 - 工具调用
'toolCall': 'Tool Call',
'noResult': 'No Result',
'noToolCallContentToCopy': 'No tool call content to copy',
'toolCallDetails': 'Tool Call Details:',
'toolCallContentCopied': 'Tool call content copied to clipboard',
// Agent模块 - 音乐卡片
'recommendedMusic': 'Siin on mõned soovitatud muusikad:',
'playList': 'Esitusloend',
@ -896,6 +931,29 @@ const Map<String, String> etEE = {
"bicycling": "Jalgrattasõit",
"tsransit": "Ühistransport",
// Agent模块 - 导航选择
'selectNavigationApp': 'Select Navigation App',
'amapMap': 'Amap',
'useAmapNavigation': 'Navigate with Amap',
'baiduMap': 'Baidu Maps',
'useBaiduNavigation': 'Navigate with Baidu Maps',
'googleMap': 'Google Maps',
'useGoogleNavigation': 'Navigate with Google Maps',
'appleMap': 'Apple Maps',
'useAppleNavigation': 'Navigate with Apple Maps',
'builtInNavigation': 'Built-in Navigation',
'useBuiltInNavigation': 'Navigate with built-in map',
'navigationStartFailed': 'Failed to start navigation',
'cannotPlayMusicListRetryLater':
'Cannot play music list, please try again later',
'cannotPlaySong': 'Cannot play song',
'openMapError': 'Error opening map',
'pleaseInstallAmapApp': 'Please install the Amap app first',
'pleaseInstallBaiduMapApp': 'Please install the Baidu Maps app first',
'appleMapStartFailed': 'Apple Maps failed to start',
'appleMapUnavailable': 'Apple Maps unavailable',
'openAppleMapError': 'Error opening Apple Maps',
// Agent模块 - 天气卡片
'weatherQuery': 'Ilma päring:',
'highest': 'Kõrgeim',
@ -966,8 +1024,19 @@ const Map<String, String> etEE = {
// 翻译模块 - 文本翻译
"languageDetectionFailed": "Language detection failed",
// 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'Disable Floating Window',
'enableFloatingWindow': 'Enable Floating Window',
'permissionTip': 'Permission Tip',
'micPermissionRequiredForRecording':
'Microphone permission is required for recording',
'deleteTranslationRecordError': 'Error deleting translation record: @error',
"translationFailed": "Translation failed",
"translating": "Translating",
"translate": "Translate",
"pleaseInputText": "Please input text",
"inputTextToTranslate": "Palun sisestage tõlgitav tekst",
"textTooLong": "Text too long, max 5000 characters",
// 翻译模块 - 历史记录
@ -1236,17 +1305,19 @@ const Map<String, String> etEE = {
'permissionUtilConfirm': 'OK',
// 原生前台服务通知(Android)
'native.notification.appName': 'VOITRANS',
'native.notification.navigation.title': 'Navigeerimine käib',
'native.notification.navigation.keepRunning': 'Navigeerimine, hoia rakendust avatuna',
'native.notification.bleAgent.running': 'Hääleassistendi agent töötab',
'native.notification.audioRecording.recording': 'Heli salvestamine, puuduta rakendusse naasmiseks',
'native.notification.music.waiting': 'Ootab esitamist',
'native.notification.music.previous': 'Eelmine',
'native.notification.music.next': 'Järgmine',
'native.notification.music.play': 'Esita',
'native.notification.music.pause': 'Paus',
'native.notification.qqMusic.playing': 'Muusika esitamine',
'native.notification.appName': 'VOITRANS',
'native.notification.navigation.title': 'Navigeerimine käib',
'native.notification.navigation.keepRunning':
'Navigeerimine, hoia rakendust avatuna',
'native.notification.bleAgent.running': 'Hääleassistendi agent töötab',
'native.notification.audioRecording.recording':
'Heli salvestamine, puuduta rakendusse naasmiseks',
'native.notification.music.waiting': 'Ootab esitamist',
'native.notification.music.previous': 'Eelmine',
'native.notification.music.next': 'Järgmine',
'native.notification.music.play': 'Esita',
'native.notification.music.pause': 'Paus',
'native.notification.qqMusic.playing': 'Muusika esitamine',
// 版本更新
'newVersionFound': 'Leitud uus versioon', // 版本更新对话框标题
@ -1380,6 +1451,59 @@ const Map<String, String> etEE = {
"removeEarbudsEnsureBattery":
"Võta mõlemad kõrvaklapid välja ja veendu, et mõlema aku on üle 20%",
// OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': 'New version @version found',
'otaConfirmUpdateNow': 'Update now?',
'otaUpdate': 'Update',
'otaUpgradeSuccess': 'Upgrade Successful',
'otaUpgradeCompleteRepair':
'Firmware upgrade complete!\n\nDevice needs to be re-paired to work properly. Go to pairing page now?',
'otaPairLater': 'Pair Later',
'otaPairNow': 'Pair Now',
'okConfirm': 'OK',
// OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'Error checking BLE connection: @error',
'otaBleNotConnected': 'BLE Device Not Connected',
'otaBleNeedConnection':
'Firmware upgrade requires BLE device connection\nPlease ensure device is properly connected and try again',
'otaDeviceInfoUnavailableTitle': 'Device Info Unavailable',
'otaCannotGetDeviceInfo':
'Cannot get device info\nPlease reconnect device or try again later',
'otaBleCheckFailed': 'BLE Connection Check Failed',
'otaCannotGetDeviceInfoCheckConnection':
'Cannot get device info, please check device connection',
'otaCannotGetProductInfoWithName':
'Cannot get product info, device name: @deviceName',
'otaCannotGetBatteryInfo': 'Cannot get valid battery info',
'otaLowBattery': 'Low Battery',
'otaSingleBatteryLow':
'Device battery too low for firmware upgrade\nRequirement: battery must be above 20%\nCurrent: @ear @battery%\nPlease charge and try again',
'otaDoubleBatteryLow':
'Device battery too low for firmware upgrade\nRequirement: both earbuds must be above 20%\nCurrent: Left @left%, Right @right%\nPlease charge and try again',
'otaBatteryCheckFailed': 'Battery Check Failed',
// OTA升级模块 - 升级状态
'otaDefaultUpdateDesc':
'This update includes performance optimizations and bug fixes.',
'otaGetLatestVersionFailed': 'Failed to get latest version info',
'otaGetVersionInfoFailed': 'Failed to get version info',
'otaCheckingDeviceStatus': 'Checking device status...',
'otaDownloadFailedCheckNetwork':
'Download failed, please check network connection',
'otaDownloadFailed': 'Download Failed',
'otaPreparingConnection': 'Preparing device connection...',
'otaConnectingDevice': 'Connecting to device...',
'otaUpgradeStarted': 'OTA upgrade started...',
'otaUpgradeProgressWithPercent': 'Upgrade progress: @percent%',
'otaUpgradeSuccessComplete': 'Upgrade completed successfully',
'otaUpgradeFailedWithCode': 'Upgrade failed, error code: @code',
'otaUpgradeFailedTitle': 'Upgrade Failed',
'otaUpgradeFailedDesc':
'Please check device connection or update package, error code: @code',
'otaDeviceDisconnected': 'Device disconnected',
'otaDeviceConnected': 'Device connected',
// 音乐模块
"noMusic": "Muusikat pole", // 暂无音乐
"noPlayingMusic": "Muusikat ei esitata", // 暂无播放音乐

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

@ -1,5 +1,4 @@
const Map<String, String> faIR = {
// 通用
'continue': 'ادامه',
'confirm': 'تأیید',
@ -166,6 +165,29 @@ const Map<String, String> faIR = {
'right': 'راست',
'checkConnectionStatusFailed': 'بررسی وضعیت اتصال ناموفق بود',
// 蓝牙扫描模块
'bleInitFailedWithError': 'راه‌اندازی بلوتوث ناموفق بود: @error',
'needBluetoothAndLocationPermission':
'برای اسکن دستگاه‌ها به مجوزهای بلوتوث و موقعیت مکانی نیاز است',
'permissionRequestFailedWithError': 'درخواست مجوز ناموفق بود: @error',
'needPermission': 'مجوز مورد نیاز',
'blePermissionDialogContent':
'این برنامه برای اسکن دستگاه‌ها به مجوزهای بلوتوث و موقعیت مکانی نیاز دارد. لطفاً آن‌ها را در تنظیمات فعال کنید.',
'needEnableBluetooth': 'فعال کردن بلوتوث',
'enableBluetoothDialogContent':
'لطفاً برای اسکن و اتصال دستگاه‌ها بلوتوث را فعال کنید.',
'bleScanFailedWithError': 'اسکن ناموفق بود: @error',
'bleConnectionSuccess': 'اتصال موفقیت‌آمیز',
'bleConnectedToDevice': 'متصل به @device',
'bleConnectionFailedWithError': 'اتصال ناموفق بود: @error',
'bleDisconnected': 'قطع شد',
'bleDeviceDisconnected': 'دستگاه قطع شد',
'bleDisconnectFailedWithError': 'قطع اتصال ناموفق بود: @error',
'signalStrong': 'قوی',
'signalMedium': 'متوسط',
'signalWeak': 'ضعیف',
'signalVeryWeak': 'بسیار ضعیف',
// 发现页
"searchAi": "جستجوی ویژگی‌های هوش مصنوعی...",
"exploreSlogan": "ایربادهای هوشمند، امکانات بی‌پایان",
@ -191,260 +213,260 @@ const Map<String, String> faIR = {
"scene": "سناریوها",
// 用量统计模块
"aiChat": "AI Chat",
"translationStats": "Translation Statistics",
"meetingStats": "Meeting Statistics",
"today": "Today",
"thisWeek": "This Week",
"thisMonth": "This Month",
"history": "History",
"currentSessionStats": "Current Session Stats",
"translationCount": "Translation Count",
"sessionDuration": "Session Duration",
"characters": "Characters",
"recordingDuration": "Recording Duration",
"totalApiCalls": "Total API Calls",
"sessionCount": "Session Count",
"totalCharacters": "Total Characters",
"apiCallStats": "API Call Stats",
"translationApi": "Translation API",
"asr": "ASR",
"tts": "TTS",
"dataVolumeStats": "Data Volume Stats",
"sourceTextCharacters": "Source Text Characters",
"ttsTextCharacters": "TTS Text Characters",
"effectiveAudioDuration": "Effective Audio Duration",
"totalSessionDuration": "Total Session Duration",
"costStats": "Cost Stats",
"estimatedCost": "Estimated Cost",
"dailyCostThreshold": "Daily Cost Threshold",
"monthlyCostThreshold": "Monthly Cost Threshold",
"usageBehaviorStats": "Usage Behavior Stats",
"mostUsedLanguagePair": "Most-used language pair",
"mostUsedMode": "Most-used mode",
"asrApiCalls": "ASR Calls",
"totalAudioDuration": "Total Audio Duration",
"audioFileSize": "Audio File Size",
"transcriptBytes": "Transcript Bytes",
"loadFailed": "Load Failed",
"aiChat": "چت هوش مصنوعی",
"translationStats": "آمار ترجمه",
"meetingStats": "آمار جلسات",
"today": "امروز",
"thisWeek": "این هفته",
"thisMonth": "این ماه",
"history": "تاریخچه",
"currentSessionStats": "آمار جلسه فعلی",
"translationCount": "تعداد ترجمه‌ها",
"sessionDuration": "مدت جلسه",
"characters": "کاراکترها",
"recordingDuration": "مدت ضبط",
"totalApiCalls": "مجموع فراخوانی‌های API",
"sessionCount": "تعداد جلسات",
"totalCharacters": "مجموع کاراکترها",
"apiCallStats": "آمار فراخوانی API",
"translationApi": "API ترجمه",
"asr": "تشخیص گفتار",
"tts": "تبدیل متن به گفتار",
"dataVolumeStats": "آمار حجم داده",
"sourceTextCharacters": "کاراکترهای متن مبدأ",
"ttsTextCharacters": "کاراکترهای متن تبدیل به گفتار",
"effectiveAudioDuration": "مدت صوتی مؤثر",
"totalSessionDuration": "مجموع مدت جلسات",
"costStats": "آمار هزینه",
"estimatedCost": "هزینه تخمینی",
"dailyCostThreshold": "سقف هزینه روزانه",
"monthlyCostThreshold": "سقف هزینه ماهانه",
"usageBehaviorStats": "آمار رفتار استفاده",
"mostUsedLanguagePair": "پرکاربردترین جفت زبانی",
"mostUsedMode": "پرکاربردترین حالت",
"asrApiCalls": "فراخوانی‌های تشخیص گفتار",
"totalAudioDuration": "مجموع مدت صوتی",
"audioFileSize": "حجم فایل صوتی",
"transcriptBytes": "حجم متن رونویسی",
"loadFailed": "بارگذاری ناموفق",
"statsLoadFailedTryLater":
"Statistics failed to load. Please try again later.",
"cleanupComplete": "Cleanup Complete",
"cleanedOldData": "Cleaned data older than 90 days",
"exportFeature": "Export Feature",
"exportInDevelopment": "Data export is under development",
"بارگذاری آمار ناموفق بود. لطفاً بعداً دوباره تلاش کنید.",
"cleanupComplete": "پاکسازی کامل شد",
"cleanedOldData": "داده‌های قدیمی‌تر از ۹۰ روز پاک شد",
"exportFeature": "قابلیت خروجی",
"exportInDevelopment": "خروجی داده‌ها در حال توسعه است",
// 商品模块 - 通用
'availablePackages': 'Available Packages',
'remainingQuota': 'Remaining Quota',
'totalQuota': 'Total Quota',
'remaining': 'Remaining',
'featureDescription': 'Feature Description',
'paymentSuccess': 'پرداخت موفق',
'paymentFailed': 'پرداخت ناموفق',
'gotIt': 'متوجه شدم',
'paymentFailedTryAgain': 'پرداخت ناموفق بود. لطفاً دوباره تلاش کنید.',
'selectPaymentMethod': 'روش پرداخت را انتخاب کنید',
'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay',
'paypalPay': 'PayPal',
'appleIap': 'Apple IAP',
'googleIap': 'Google IAP',
'wechatOrderCreateFailed': 'ایجاد سفارش WeChat Pay ناموفق بود',
'alipayOrderCreateFailed': 'ایجاد سفارش Alipay ناموفق بود',
'appleOrderCreateFailed': 'ایجاد سفارش Apple ناموفق بود',
'googleOrderCreateFailed': 'ایجاد سفارش Google ناموفق بود',
'paypalOrderCreateFailed': 'ایجاد سفارش PayPal ناموفق بود',
'paymentException': 'استثنای پرداخت',
'paymentLaunchFailed': 'راه‌اندازی پرداخت ناموفق بود',
'paymentExceptionWithError': 'استثنای پرداخت: @error',
'paymentProcessingCheckLater': 'سفارش شما در حال پردازش است. لطفاً بعداً بررسی کنید.',
'paymentResultQueryException': 'استعلام نتیجه پرداخت ناموفق بود: @error',
'orderConfirmedQuotaRefreshed': 'سفارش تأیید شد. سهمیه شما به‌روزرسانی شد.',
'paymentCompletedConfirming': 'پرداخت انجام شد. در حال تأیید…',
'paymentCancelled': 'پرداخت لغو شد',
'paypalOpenedCompleteInBrowser': 'PayPal باز شد. لطفاً پرداخت را در مرورگر خود تکمیل کنید.',
'paypalOpenFailed': 'امکان باز کردن صفحه پرداخت PayPal وجود ندارد',
'paymentTestTitle': 'تست پرداخت',
'paymentTestOrderInfo': 'اطلاعات سفارش آزمایشی',
'paymentTestProductId': 'شناسه محصول',
'paymentTestProductDescription': 'توضیحات محصول',
'paymentTestWechatDescription': 'تست پرداخت WeChat Pay',
'paymentTestAlipayDescription': 'تست پرداخت Alipay',
'paymentTestAmount': 'مبلغ',
'paymentTestSelectAmount': 'مبلغ آزمایشی را انتخاب کنید',
'paying': 'در حال پرداخت...',
'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': 'وضعیت پرداخت',
'errorInfoWithMessage': 'خطا: @message',
'retest': 'آزمایش مجدد',
'paymentTestInstructionsTitle': 'راهنما',
'paymentTestInstructionsContent': '1. یک مبلغ تست انتخاب کنید (پیشنهاد: ¥0.01)\n2. برای شروع روی دکمه پرداخت کلیک کنید\n3. پرداخت را در اپلیکیشن پرداخت تکمیل کنید\n4. برای بررسی نتیجه بازگردید',
'startingWechatPayment': 'در حال راه‌اندازی WeChat Pay...',
'startingAlipayPayment': 'در حال راه‌اندازی Alipay...',
'wechatPaymentSuccess': 'WeChat Pay موفق بود!',
'wechatPaymentFailed': 'WeChat Pay ناموفق بود',
'wechatPaymentLaunchFailed': 'راه‌اندازی WeChat Pay ناموفق بود',
'cannotLaunchWechatPayment': 'امکان راه‌اندازی WeChat Pay وجود ندارد',
'wechatPaymentException': 'استثنای WeChat Pay',
'wechatPaymentTestCompleted': 'تست WeChat Pay تکمیل شد',
'alipayPaymentSuccess': 'Alipay موفق بود!',
'alipayPaymentFailed': 'Alipay ناموفق بود',
'alipayPaymentLaunchFailed': 'راه‌اندازی Alipay ناموفق بود',
'cannotLaunchAlipayPayment': 'امکان راه‌اندازی Alipay وجود ندارد',
'alipayPaymentException': 'استثنای Alipay',
"insufficientIntegral": "Insufficient integral",
'availablePackages': 'بسته‌های موجود',
'remainingQuota': 'سهمیه باقی‌مانده',
'totalQuota': 'سهمیه کل',
'remaining': 'باقی‌مانده',
'featureDescription': 'توضیحات ویژگی',
'paymentSuccess': 'پرداخت موفق',
'paymentFailed': 'پرداخت ناموفق',
'gotIt': 'متوجه شدم',
'paymentFailedTryAgain': 'پرداخت ناموفق بود. لطفاً دوباره تلاش کنید.',
'selectPaymentMethod': 'روش پرداخت را انتخاب کنید',
'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay',
'paypalPay': 'PayPal',
'appleIap': 'Apple IAP',
'googleIap': 'Google IAP',
'wechatOrderCreateFailed': 'ایجاد سفارش WeChat Pay ناموفق بود',
'alipayOrderCreateFailed': 'ایجاد سفارش Alipay ناموفق بود',
'appleOrderCreateFailed': 'ایجاد سفارش Apple ناموفق بود',
'googleOrderCreateFailed': 'ایجاد سفارش Google ناموفق بود',
'paypalOrderCreateFailed': 'ایجاد سفارش PayPal ناموفق بود',
'paymentException': 'استثنای پرداخت',
'paymentLaunchFailed': 'راه‌اندازی پرداخت ناموفق بود',
'paymentExceptionWithError': 'استثنای پرداخت: @error',
'paymentProcessingCheckLater':
'سفارش شما در حال پردازش است. لطفاً بعداً بررسی کنید.',
'paymentResultQueryException': 'استعلام نتیجه پرداخت ناموفق بود: @error',
'orderConfirmedQuotaRefreshed': 'سفارش تأیید شد. سهمیه شما به‌روزرسانی شد.',
'paymentCompletedConfirming': 'پرداخت انجام شد. در حال تأیید…',
'paymentCancelled': 'پرداخت لغو شد',
'paypalOpenedCompleteInBrowser':
'PayPal باز شد. لطفاً پرداخت را در مرورگر خود تکمیل کنید.',
'paypalOpenFailed': 'امکان باز کردن صفحه پرداخت PayPal وجود ندارد',
'paymentTestTitle': 'تست پرداخت',
'paymentTestOrderInfo': 'اطلاعات سفارش آزمایشی',
'paymentTestProductId': 'شناسه محصول',
'paymentTestProductDescription': 'توضیحات محصول',
'paymentTestWechatDescription': 'تست پرداخت WeChat Pay',
'paymentTestAlipayDescription': 'تست پرداخت Alipay',
'paymentTestAmount': 'مبلغ',
'paymentTestSelectAmount': 'مبلغ آزمایشی را انتخاب کنید',
'paying': 'در حال پرداخت...',
'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': 'وضعیت پرداخت',
'errorInfoWithMessage': 'خطا: @message',
'retest': 'آزمایش مجدد',
'paymentTestInstructionsTitle': 'راهنما',
'paymentTestInstructionsContent':
'1. یک مبلغ تست انتخاب کنید (پیشنهاد: ¥0.01)\n2. برای شروع روی دکمه پرداخت کلیک کنید\n3. پرداخت را در اپلیکیشن پرداخت تکمیل کنید\n4. برای بررسی نتیجه بازگردید',
'startingWechatPayment': 'در حال راه‌اندازی WeChat Pay...',
'startingAlipayPayment': 'در حال راه‌اندازی Alipay...',
'wechatPaymentSuccess': 'WeChat Pay موفق بود!',
'wechatPaymentFailed': 'WeChat Pay ناموفق بود',
'wechatPaymentLaunchFailed': 'راه‌اندازی WeChat Pay ناموفق بود',
'cannotLaunchWechatPayment': 'امکان راه‌اندازی WeChat Pay وجود ندارد',
'wechatPaymentException': 'استثنای WeChat Pay',
'wechatPaymentTestCompleted': 'تست WeChat Pay تکمیل شد',
'alipayPaymentSuccess': 'Alipay موفق بود!',
'alipayPaymentFailed': 'Alipay ناموفق بود',
'alipayPaymentLaunchFailed': 'راه‌اندازی Alipay ناموفق بود',
'cannotLaunchAlipayPayment': 'امکان راه‌اندازی Alipay وجود ندارد',
'alipayPaymentException': 'استثنای Alipay',
"insufficientIntegral": "اعتبار ناکافی",
"insufficientBalanceDesc":
'Insufficient balance, please go to the corresponding recharge page to recharge.',
"recharge": 'Go to Recharge',
'موجودی ناکافی است، لطفاً به صفحه شارژ مربوطه بروید و شارژ کنید.',
"recharge": 'رفتن به شارژ',
"aiMemberExpiredDesc":
'AI membership expired, please go to the membership recharge page to renew.',
'عضویت هوش مصنوعی منقضی شده است، لطفاً به صفحه شارژ عضویت بروید و تمدید کنید.',
// 商品模块 - AI商品页
'musicAndRecommendation': 'Music & Recommendation',
'navigationAndRoutes': 'Navigation & Routes',
'nearbySearch': 'Nearby Search',
'newsInformation': 'News',
'communicationAssistant': 'Communication Assistant',
'musicAndRecommendation': 'موسیقی و توصیه‌ها',
'navigationAndRoutes': 'مسیریابی و مسیرها',
'nearbySearch': 'جستجوی نزدیک',
'newsInformation': 'اخبار',
'communicationAssistant': 'دستیار ارتباطی',
'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',
'سهمیه مکالمه بیشتر، فراخوانی ابزار بیشتر، طول متن گسترده‌تر.',
'aiHeaderDesc2': 'مناسب برای پرسش و پاسخ، خلاصه‌سازی، تحلیل و اجرای وظایف.',
'musicSearchPlaybackControl': 'جستجوی کتابخانه موسیقی و کنترل پخش',
'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',
'poiSearchFoodGasParking': 'POI search: dining / gas / parking',
'ratingsHoursAndDirectRoutes': 'Ratings, business hours, and direct routing',
'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',
'لیست پخش هوشمند و توصیه آهنگ‌های مشابه',
'routePlanningAndCongestionAvoidance': 'برنامه‌ریزی مسیر و اجتناب از ترافیک',
'voiceBroadcastAndWaypoints': 'راهنمای صوتی و تنظیمات نقاط مسیر',
'realTimeWeatherForecast': 'آب و هوای بلادرنگ و پیش‌بینی',
'clothingAdviceAndTravelReminders': 'توصیه پوشاک و یادآوری‌های سفر',
'poiSearchFoodGasParking': 'جستجوی مکان: غذا / پمپ بنزین / پارکینگ',
'ratingsHoursAndDirectRoutes': 'امتیازات، ساعات کاری و مسیریابی مستقیم',
'hotNewsAndTopicOverview': 'اخبار داغ و مرور موضوعات',
'longArticleSummariesAndKeyPoints': 'خلاصه مقالات طولانی و نکات کلیدی',
'helpCallAndSMS': 'کمک در تماس و پیامک',
'templatedMessagesAndScheduleReminders': 'پیام‌های الگو و یادآوری‌های برنامه',
'aiDisclaimer':
'Features depend on device permissions, service availability, and network conditions.',
'ویژگی‌ها به مجوزهای دستگاه، در دسترس بودن سرویس و شرایط شبکه بستگی دارند.',
// 商品模块 - 翻译商品页
'realtimeTranscription': 'Real-time Transcription',
'sceneLexicon': 'Scenario Glossary',
'subtitleDisplay': 'Subtitles',
'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',
'lexiconTourBusinessLife': 'Travel/Business/Life lexicons',
'personalVocabularyMemory': 'Personal vocabulary memory',
'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode',
'colorHighContrast': 'High color contrast',
'realtimeTranscription': 'رونویسی بلادرنگ',
'sceneLexicon': 'واژه‌نامه سناریویی',
'subtitleDisplay': 'زیرنویس‌ها',
'transHeaderDesc1': 'ترجمه همزمان بلادرنگ و ترجمه متن با صدای کم‌تأخیر.',
'transHeaderDesc2': 'مناسب برای سفر، تجارت، سخنرانی و آموزش.',
'translateZhEn': 'ترجمه چینی-انگلیسی',
'lowLatencyVoiceBroadcast': 'پخش صوتی کم‌تأخیر',
'multiLangTextTranslation': 'ترجمه متن چندزبانه',
'termOptimizationContextPreserve': 'بهینه‌سازی اصطلاحات و حفظ زمینه',
'lexiconTourBusinessLife': 'واژه‌نامه‌های سفر/تجارت/زندگی',
'personalVocabularyMemory': 'حافظه واژگان شخصی',
'conversationSubtitleLargeText': 'زیرنویس مکالمه / حالت متن بزرگ',
'colorHighContrast': 'کنتراست رنگ بالا',
'transDisclaimer':
'Translation performance depends on microphone, network latency, and ambient noise.',
'عملکرد ترجمه به میکروفون، تأخیر شبکه و نویز محیط بستگی دارد.',
// 商品模块 - 会议商品页
'meetingRecording': 'Meeting Recording',
'transcriptionAndSummary': 'Transcription & Summary',
'keywordSearch': 'Keyword Search',
'collaborationSharing': 'Collaboration & Sharing',
'meetingRecording': 'ضبط جلسه',
'transcriptionAndSummary': 'رونویسی و خلاصه',
'keywordSearch': 'جستجوی کلمات کلیدی',
'collaborationSharing': 'همکاری و اشتراک‌گذاری',
'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',
'meetingKeyPointSummary': 'Key point extraction',
'meetingTopicNameSearch': 'Search by topic/name',
'meetingTimelineJump': 'Timeline jump',
'meetingExportSummary': 'Export minutes',
'meetingMultiPlatformShare': 'Share across platforms',
'مناسب برای جلسات کاری، یادداشت کلاس و صورت‌جلسه مصاحبه.',
'meetingAutoRecording': 'ضبط خودکار و بخش‌بندی',
'meetingSpeakerTagging': 'برچسب‌گذاری گوینده',
'meetingLongAudioTranscription': 'رونویسی صوتی طولانی',
'meetingKeyPointSummary': 'استخراج نکات کلیدی',
'meetingTopicNameSearch': 'جستجو بر اساس موضوع/نام',
'meetingTimelineJump': 'پرش در خط زمانی',
'meetingExportSummary': 'خروجی صورت‌جلسه',
'meetingMultiPlatformShare': 'اشتراک‌گذاری بین پلتفرم‌ها',
'meetingDisclaimer':
'Use in quiet environments; performance depends on microphone and network.',
'در محیط آرام استفاده کنید؛ عملکرد به میکروفون و شبکه بستگی دارد.',
// 商品模块 - VIP会员页
'benefitsOverview': 'Benefits overview',
'higherQuota': 'Higher usage quota',
'lowerUnitPrice': 'Lower unit price',
'priorityService': 'Priority service',
'exclusiveSupportChannel': 'Dedicated support channel',
'fastResponse': 'Fast issue response',
'eventsAndDiscounts': 'Events and discounts',
'memberExclusiveEvents': 'Member-exclusive events',
'longTermDiscountPlan': 'Long-term discount plan',
'generalPrivileges': 'General privileges',
'earlyAccessNewFeatures': 'Early access to new features',
'crossDeviceSync': 'Cross-device sync',
'benefitsOverview': 'مرور مزایا',
'higherQuota': 'سهمیه استفاده بیشتر',
'lowerUnitPrice': 'قیمت واحد کمتر',
'priorityService': 'خدمات اولویت‌دار',
'exclusiveSupportChannel': 'کانال پشتیبانی اختصاصی',
'fastResponse': 'پاسخ سریع به مشکلات',
'eventsAndDiscounts': 'رویدادها و تخفیف‌ها',
'memberExclusiveEvents': 'رویدادهای ویژه اعضا',
'longTermDiscountPlan': 'طرح تخفیف بلندمدت',
'generalPrivileges': 'امتیازات عمومی',
'earlyAccessNewFeatures': 'دسترسی زودهنگام به ویژگی‌های جدید',
'crossDeviceSync': 'همگام‌سازی بین دستگاه‌ها',
'vipDisclaimer':
'Actual benefits depend on the package details and may change with versions.',
'مزایای واقعی به جزئیات بسته بستگی دارد و ممکن است با نسخه‌ها تغییر کند.',
// 商品模块 - 商品名称与描述
'ai_001_name': 'AI Basic 100',
'ai_002_name': 'AI Basic 500',
'ai_003_name': 'AI Basic 1000',
'meet_001_name': 'Meeting Basic 100',
'meet_002_name': 'Meeting Basic 500',
'meet_003_name': 'Meeting Basic 1000',
'trans_001_name': 'Translation Basic 100',
'trans_002_name': 'Translation Basic 500',
'trans_003_name': 'Translation Basic 1000',
'ai_001_desc': 'Includes 100 uses. Access core AI features.',
'ai_002_desc': 'Includes 500 uses. Access core AI features.',
'ai_003_desc': 'Includes 1000 uses. Access core AI features.',
'meet_001_desc': 'Includes 100 meeting recordings/transcriptions.',
'meet_002_desc': 'Includes 500 meeting recordings/transcriptions.',
'meet_003_desc': 'Includes 1000 meeting recordings/transcriptions.',
'trans_001_desc': 'Includes 100 translations (voice/text).',
'trans_002_desc': 'Includes 500 translations (voice/text).',
'trans_003_desc': 'Includes 1000 translations (voice/text).',
'ai_001_name': 'هوش مصنوعی پایه ۱۰۰',
'ai_002_name': 'هوش مصنوعی پایه ۵۰۰',
'ai_003_name': 'هوش مصنوعی پایه ۱۰۰۰',
'meet_001_name': 'جلسه پایه ۱۰۰',
'meet_002_name': 'جلسه پایه ۵۰۰',
'meet_003_name': 'جلسه پایه ۱۰۰۰',
'trans_001_name': 'ترجمه پایه ۱۰۰',
'trans_002_name': 'ترجمه پایه ۵۰۰',
'trans_003_name': 'ترجمه پایه ۱۰۰۰',
'ai_001_desc': 'شامل ۱۰۰ بار استفاده. دسترسی به ویژگی‌های اصلی هوش مصنوعی.',
'ai_002_desc': 'شامل ۵۰۰ بار استفاده. دسترسی به ویژگی‌های اصلی هوش مصنوعی.',
'ai_003_desc': 'شامل ۱۰۰۰ بار استفاده. دسترسی به ویژگی‌های اصلی هوش مصنوعی.',
'meet_001_desc': 'شامل ۱۰۰ ضبط/رونویسی جلسه.',
'meet_002_desc': 'شامل ۵۰۰ ضبط/رونویسی جلسه.',
'meet_003_desc': 'شامل ۱۰۰۰ ضبط/رونویسی جلسه.',
'trans_001_desc': 'شامل ۱۰۰ ترجمه (صوتی/متنی).',
'trans_002_desc': 'شامل ۵۰۰ ترجمه (صوتی/متنی).',
'trans_003_desc': 'شامل ۱۰۰۰ ترجمه (صوتی/متنی).',
// 商品模块 - 页脚
'appNameProvider': 'App: VoiTrans · Provided by: VoiTrans',
'iapCustomerServiceQQLabel': 'IAP customer service QQ: @qq',
'copyrightVoitrans': '© 2025 Voitrans Technologies',
'appNameProvider': 'برنامه: VoiTrans · ارائه‌دهنده: VoiTrans',
'iapCustomerServiceQQLabel': 'خدمات مشتری IAP QQ: @qq',
'copyrightVoitrans': '© ۲۰۲۵ Voitrans Technologies',
// 新手引导
'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, ',
'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',
'next': 'بعدی',
'sayLilyHint': 'به میکروفون بگویید «لیلی لیلی»',
'imHere': ' من اینجا هستم~',
'guideWelcomeWakeAI':
'به Voitrans خوش آمدید! ابتدا هوش مصنوعی «لیلی» را بیدار کنید.',
'aiReplyCompleted': 'لیلی پاسخ را تمام کرد!',
'aiThinking': 'لیلی در حال فکر کردن است…',
'guideAwakenSuccess': 'عالی! لیلی بیدار شد—از او کمک بخواهید.',
'confirmInput': 'تأیید ورودی',
'guideClickSendPrefix': 'روی ارسال ضربه بزنید، ',
'guideWeatherStart': 'به لیلی بگویید: «آب و هوای امروز چطور است؟»',
'guideWeatherInput': 'آب و هوای امروز چطور است؟',
'guideWeatherSend': 'لیلی آب و هوا را به صورت بلادرنگ گزارش می‌دهد',
'guideWeatherEnd':
'لیلی می‌تواند آب و هوا را گزارش دهد—دستورات دیگر را امتحان کنید',
'guideMusicStart': 'به لیلی بگویید: «کمی موسیقی راک پخش کن»',
'guideMusicInput': 'کمی موسیقی راک پخش کن',
'guideMusicSend': 'لیلی برای شما موسیقی پیدا می‌کند',
'guideMusicEnd': 'لیلی موسیقی پیدا کرد—دستورات دیگر را امتحان کنید',
'guideNavStart': 'به لیلی بگویید: «مسیریابی به فرودگاه شنژن»',
'guideNavInput': 'مسیریابی به فرودگاه شنژن',
'guideNavSend': 'لیلی مسیر را برنامه‌ریزی می‌کند',
'guideNavEnd': 'مسیریابی تنظیم شد—دستورات دیگر را امتحان کنید',
'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',
'به لیلی بگویید: «یک یادآوری جلسه برای ساعت ۳ فردا ایجاد کن»',
'guideMeetingInput': 'یک یادآوری جلسه برای ساعت ۳ فردا ایجاد کن',
'guideMeetingSend': 'لیلی یک یادآوری جلسه ایجاد می‌کند',
'guideMeetingEnd': 'یادآوری ایجاد شد—دستورات دیگر را امتحان کنید',
'guidePhoneStart': 'به لیلی بگویید: «به مادر زنگ بزن»',
'guidePhoneInput': 'به مادر زنگ بزن',
'guidePhoneSend': 'لیلی تماس می‌گیرد',
'guidePhoneEnd': 'تماس برقرار شد—دستورات دیگر را امتحان کنید',
'guideSmsStart': 'به لیلی بگویید: «به پدر پیامک بفرست: برای شام خانه هستم»',
'guideSmsInput': 'به پدر پیامک بفرست: برای شام خانه هستم',
'guideSmsSend': 'لیلی پیام را ارسال می‌کند',
'guideSmsEnd': 'پیام ارسال شد—کنترل صوتی راحت است',
// Meeting模块 - 首页与导航
"startMeeting": "شروع جلسه",
@ -537,21 +559,22 @@ const Map<String, String> faIR = {
'selectSummaryTemplate': 'انتخاب الگوی خلاصه',
'useThisTemplate': 'استفاده از این الگو',
'lastUsed': 'آخرین استفاده‌شده',
'create': 'ایجاد',
'templateDetails': 'جزئیات قالب',
'tag': 'برچسب',
'description': 'توضیحات',
'template': 'قالب',
'deleteTemplate': 'حذف قالب',
'deleteTemplateConfirm': 'آیا مطمئن هستید که می‌خواهید این قالب را حذف کنید؟',
'editTemplate': 'ویرایش قالب',
'createTemplate': 'ایجاد قالب',
'name': 'نام',
'templateContentHint': 'لطفاً محتوای قالب را وارد کنید! نکته: برای تولید سریع محتوای قالب بر اساس نام و توضیحاتی که وارد کرده‌اید، روی دکمه AI بالا کلیک کنید',
'inputNameHint': 'لطفاً نام را وارد کنید',
'inputDescHint': 'لطفاً توضیحات را وارد کنید',
'custom': 'سفارشی',
'pleaseEnter': 'لطفا وارد کنید',
'create': 'ایجاد',
'templateDetails': 'جزئیات قالب',
'tag': 'برچسب',
'description': 'توضیحات',
'template': 'قالب',
'deleteTemplate': 'حذف قالب',
'deleteTemplateConfirm': 'آیا مطمئن هستید که می‌خواهید این قالب را حذف کنید؟',
'editTemplate': 'ویرایش قالب',
'createTemplate': 'ایجاد قالب',
'name': 'نام',
'templateContentHint':
'لطفاً محتوای قالب را وارد کنید! نکته: برای تولید سریع محتوای قالب بر اساس نام و توضیحاتی که وارد کرده‌اید، روی دکمه AI بالا کلیک کنید',
'inputNameHint': 'لطفاً نام را وارد کنید',
'inputDescHint': 'لطفاً توضیحات را وارد کنید',
'custom': 'سفارشی',
'pleaseEnter': 'لطفا وارد کنید',
'viewAll': 'مشاهده همه',
'recordingLanguage': 'زبان ضبط',
'chineseSimplified': 'چینی ماندارین (ساده‌شده)',
@ -574,7 +597,7 @@ const Map<String, String> faIR = {
'fileProcessingFailed': 'پردازش فایل ناموفق بود: {filePath}, خطا: {error}',
// Meeting模块 - 思维导图
'saveMindMap': 'ذخیره نقشه ذهنی',
'saveMindMap': 'ذخیره نقشه ذهنی',
'shareMindMap': 'اشتراک‌گذاری نقشه ذهنی',
'shareSuccess': 'اشتراک‌گذاری موفقیت‌آمیز بود',
@ -596,7 +619,7 @@ const Map<String, String> faIR = {
'exportSummary': 'خروجی خلاصه',
'exportAs': 'خروجی به عنوان',
'exportingPDF': 'در حال خروجی گرفتن PDF...',
'export': 'صادر کردن',
'export': 'صادر کردن',
// Meeting模块 - 发言者
'applyToAllParagraphs': 'اعمال روی همه پاراگراف‌های این گوینده',
@ -708,18 +731,18 @@ const Map<String, String> faIR = {
// Meeting模块 - 错误提示
'meetingUnknownLanguage': 'زبان ناشناخته',
'analysisFailed': 'تحلیل ناموفق بود، لطفاً بعداً دوباره تلاش کنید',
'transcriptionFailed': 'رونویسی ناموفق بود، لطفاً بعداً دوباره تلاش کنید',
'summaryFailed': 'خلاصه‌سازی ناموفق بود، لطفاً بعداً دوباره تلاش کنید',
'summaryFailedShort': 'خلاصه‌سازی ناموفق',
'transcriptionFailedShort': 'رونویسی ناموفق',
'analysisFailed': 'تحلیل ناموفق بود، لطفاً بعداً دوباره تلاش کنید',
'transcriptionFailed': 'رونویسی ناموفق بود، لطفاً بعداً دوباره تلاش کنید',
'summaryFailed': 'خلاصه‌سازی ناموفق بود، لطفاً بعداً دوباره تلاش کنید',
'summaryFailedShort': 'خلاصه‌سازی ناموفق',
'transcriptionFailedShort': 'رونویسی ناموفق',
// Meeting模块 - 播放器
'playerNotReady': 'پخش‌کننده صدا آماده نیست، لطفاً صبر کنید',
'playFailed': 'پخش ناموفق بود',
'audioFileNotFound': 'فایل صوتی یافت نشد',
'fetchingAudio': 'در حال دریافت صدا از فضای ابری...',
'playerLoadFailed': 'بارگذاری پخش‌کننده صدا ناموفق بود',
'playerNotReady': 'پخش‌کننده صدا آماده نیست، لطفاً صبر کنید',
'playFailed': 'پخش ناموفق بود',
'audioFileNotFound': 'فایل صوتی یافت نشد',
'fetchingAudio': 'در حال دریافت صدا از فضای ابری...',
'playerLoadFailed': 'بارگذاری پخش‌کننده صدا ناموفق بود',
// 设置页
"systemSettings": "تنظیمات سیستم",
@ -728,10 +751,10 @@ const Map<String, String> faIR = {
"translationRecharge": "شارژ ترجمه",
"meetingAssistantRecharge": "شارژ کمک‌کننده جلسه",
"cloudSync": "شارژ همگام‌سازی ابری",
"memberService": "Member Service",
"bindRewardTitle": "Rewards",
"memberService": "خدمات عضویت",
"bindRewardTitle": "جوایز",
"bindRewardSimpleDesc":
"First bind device reward has been issued. Tap OK to close.",
"جایزه اولین اتصال دستگاه صادر شد. برای بستن روی تأیید ضربه بزنید.",
"joinDevice": "دستگاه متصل:",
"accountId": "شناسه حساب:",
"systemSetting": "تنظیمات سیستم",
@ -822,8 +845,9 @@ const Map<String, String> faIR = {
"loadFailedClickRetry": "بارگیری ناموفق بود، برای تلاش مجدد کلیک کنید",
"swipeUpForMore": "برای مشاهده بیشتر به بالا بکشید",
"callingTool": "در حال کمک به شما هستم، لطفاً صبر کنید!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断
'voice_interrupt_tip': 'وقتی فعال است: هوش مصنوعی هنگام صحبت کردن توسط صدای شما قطع نمی‌شود و فقط می‌تواند یک دور مکالمه را در هر بار پردازش کند. برای شروع دور جدید، کافی است کلمه بیدارسازی را بگویید.',
"voice_interrupt": "قطع صدا", // 语音打断
'voice_interrupt_tip':
'وقتی فعال است: هوش مصنوعی هنگام صحبت کردن توسط صدای شما قطع نمی‌شود و فقط می‌تواند یک دور مکالمه را در هر بار پردازش کند. برای شروع دور جدید، کافی است کلمه بیدارسازی را بگویید.',
// Agent模块 - 预设提示词
"presetMusic": "پخش موسیقی", // 来点音乐
@ -878,6 +902,13 @@ const Map<String, String> faIR = {
'ما می‌خواهیم دلیل گزارش شما را بدانیم، می‌توانید مشکلی را که با آن مواجه شدید توصیف کنید.',
'generatedByAi': 'تولید شده توسط هوش مصنوعی',
// Agent模块 - 工具调用
'toolCall': 'فراخوانی ابزار',
'noResult': 'نتیجه‌ای یافت نشد',
'noToolCallContentToCopy': 'محتوای فراخوانی ابزار برای کپی وجود ندارد',
'toolCallDetails': 'جزئیات فراخوانی ابزار:',
'toolCallContentCopied': 'محتوای فراخوانی ابزار در کلیپ‌بورد کپی شد',
// Agent模块 - 音乐卡片
'recommendedMusic': 'در اینجا چند موسیقی توصیه‌شده وجود دارد:',
'playList': 'لیست پخش',
@ -898,6 +929,29 @@ const Map<String, String> faIR = {
"bicycling": "دوچرخه‌سواری",
"tsransit": "حمل و نقل عمومی",
// Agent模块 - 导航选择
'selectNavigationApp': 'انتخاب برنامه مسیریابی',
'amapMap': 'نقشه Amap',
'useAmapNavigation': 'مسیریابی با Amap',
'baiduMap': 'نقشه بایدو',
'useBaiduNavigation': 'مسیریابی با نقشه بایدو',
'googleMap': 'نقشه گوگل',
'useGoogleNavigation': 'مسیریابی با نقشه گوگل',
'appleMap': 'نقشه اپل',
'useAppleNavigation': 'مسیریابی با نقشه اپل',
'builtInNavigation': 'مسیریابی داخلی',
'useBuiltInNavigation': 'مسیریابی با نقشه داخلی',
'navigationStartFailed': 'شروع مسیریابی ناموفق بود',
'cannotPlayMusicListRetryLater':
'امکان پخش لیست موسیقی نیست، لطفاً بعداً دوباره تلاش کنید',
'cannotPlaySong': 'امکان پخش آهنگ نیست',
'openMapError': 'خطا در باز کردن نقشه',
'pleaseInstallAmapApp': 'لطفاً ابتدا برنامه Amap را نصب کنید',
'pleaseInstallBaiduMapApp': 'لطفاً ابتدا برنامه نقشه بایدو را نصب کنید',
'appleMapStartFailed': 'شروع نقشه اپل ناموفق بود',
'appleMapUnavailable': 'نقشه اپل در دسترس نیست',
'openAppleMapError': 'خطا در باز کردن نقشه اپل',
// Agent模块 - 天气卡片
'weatherQuery': 'استعلام آب و هوا:',
'highest': 'حداکثر',
@ -965,19 +1019,29 @@ const Map<String, String> faIR = {
"me": "من",
"counterPart": "طرف مقابل",
"bluetoothCallStateError":
"Please make sure the Bluetooth headset is connected to the phone and in a call state",
"لطفاً مطمئن شوید هدست بلوتوث به تلفن متصل و در حالت تماس است",
"autoDetect": "تشخیص خودکار", // 自动检测
// 翻译模块 - 文本翻译
"languageDetectionFailed": "Language detection failed",
"translationFailed": "Translation failed",
"pleaseInputText": "Please input text",
"textTooLong": "Text too long, max 5000 characters",
"languageDetectionFailed": "تشخیص زبان ناموفق بود",
// 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'غیرفعال کردن پنجره شناور',
'enableFloatingWindow': 'فعال کردن پنجره شناور',
'permissionTip': 'نکته مجوز',
'micPermissionRequiredForRecording': 'مجوز میکروفون برای ضبط الزامی است',
'deleteTranslationRecordError': 'خطا در حذف سابقه ترجمه: @error',
"translationFailed": "ترجمه ناموفق بود",
"translating": "در حال ترجمه",
"translate": "ترجمه",
"pleaseInputText": "لطفاً متن را وارد کنید",
"inputTextToTranslate": "لطفاً متن مورد نظر برای ترجمه را وارد کنید",
"textTooLong": "متن بیش از حد طولانی است، حداکثر ۵۰۰۰ کاراکتر",
// 翻译模块 - 历史记录
"noTranslationHistory": "تاریخچه ترجمه وجود ندارد",
"historyRecords": "History Records",
"clearResults": "Clear Results",
"historyRecords": "سوابق تاریخچه",
"clearResults": "پاک کردن نتایج",
"clearHistory": "پاک کردن تاریخچه",
"clearHistoryConfirm":
"آیا مطمئن هستید که می‌خواهید تمام تاریخچه ترجمه را پاک کنید؟ این عمل قابل بازگشت نیست.",
@ -987,28 +1051,28 @@ const Map<String, String> faIR = {
"آیا مطمئن هستید که می‌خواهید تمام سوابق ترجمه این جلسه را حذف کنید؟ این عمل قابل بازگشت نیست.",
// 翻译模块 - 图片翻译
"selectImageSource": "Select Image Source",
"imagePreview": "Image Preview",
"translationResult": "Translation Result",
"recognitionResult": "Recognition Result",
"translatedImagePreview": "Translated Image Preview",
"translatedImageLoadFailed": "Failed to load translated image",
"pleaseSelectImage": "Please select an image",
"imageLoadFailed": "Image load failed",
"imageQuality": "Image Quality",
"maxSize": "Max Size",
"close": "Close",
"setImageQuality": "Set Image Quality",
"currentQuality": "Current quality: @value%",
"setMaxSize": "Set Max Size",
"currentMaxSize": "Current: @pxpx",
"waitingForAction": "Waiting for action",
"pleaseSelectImageToStart": "Please select an image to start",
"chooseImage": "Choose Image",
"openingCamera": "Opening camera...",
"openingPhotoAlbum": "Opening photo album...",
"cancelled": "Cancelled",
"userCancelledSelection": "User cancelled selection",
"selectImageSource": "انتخاب منبع تصویر",
"imagePreview": "پیش‌نمایش تصویر",
"translationResult": "نتیجه ترجمه",
"recognitionResult": "نتیجه تشخیص",
"translatedImagePreview": "پیش‌نمایش تصویر ترجمه‌شده",
"translatedImageLoadFailed": "بارگذاری تصویر ترجمه‌شده ناموفق بود",
"pleaseSelectImage": "لطفاً یک تصویر انتخاب کنید",
"imageLoadFailed": "بارگذاری تصویر ناموفق بود",
"imageQuality": "کیفیت تصویر",
"maxSize": "حداکثر اندازه",
"close": "بستن",
"setImageQuality": "تنظیم کیفیت تصویر",
"currentQuality": "کیفیت فعلی: @value%",
"setMaxSize": "تنظیم حداکثر اندازه",
"currentMaxSize": "فعلی: @pxpx",
"waitingForAction": "در انتظار اقدام",
"pleaseSelectImageToStart": "لطفاً برای شروع یک تصویر انتخاب کنید",
"chooseImage": "انتخاب تصویر",
"openingCamera": "در حال باز کردن دوربین...",
"openingPhotoAlbum": "در حال باز کردن آلبوم عکس...",
"cancelled": "لغو شد",
"userCancelledSelection": "کاربر انتخاب را لغو کرد",
"translatingImage": "Translating Image",
"callingImageTranslateService": "Calling image translation service...",
"savingRecord": "Saving Record",
@ -1243,17 +1307,19 @@ const Map<String, String> faIR = {
'permissionUtilConfirm': 'تأیید',
// 原生前台服务通知(Android)
'native.notification.appName': 'VOITRANS',
'native.notification.navigation.title': 'مسیریابی در جریان است',
'native.notification.navigation.keepRunning': 'در حال مسیریابی، اپلیکیشن را باز نگه دارید',
'native.notification.bleAgent.running': 'دستیار صوتی در حال اجراست',
'native.notification.audioRecording.recording': 'در حال ضبط صدا، برای بازگشت به اپلیکیشن ضربه بزنید',
'native.notification.music.waiting': 'در انتظار پخش',
'native.notification.music.previous': 'قبلی',
'native.notification.music.next': 'بعدی',
'native.notification.music.play': 'پخش',
'native.notification.music.pause': 'توقف',
'native.notification.qqMusic.playing': 'در حال پخش موسیقی',
'native.notification.appName': 'VOITRANS',
'native.notification.navigation.title': 'مسیریابی در جریان است',
'native.notification.navigation.keepRunning':
'در حال مسیریابی، اپلیکیشن را باز نگه دارید',
'native.notification.bleAgent.running': 'دستیار صوتی در حال اجراست',
'native.notification.audioRecording.recording':
'در حال ضبط صدا، برای بازگشت به اپلیکیشن ضربه بزنید',
'native.notification.music.waiting': 'در انتظار پخش',
'native.notification.music.previous': 'قبلی',
'native.notification.music.next': 'بعدی',
'native.notification.music.play': 'پخش',
'native.notification.music.pause': 'توقف',
'native.notification.qqMusic.playing': 'در حال پخش موسیقی',
// 版本更新
'newVersionFound': 'نسخه جدید یافت شد', // 版本更新对话框标题
@ -1391,6 +1457,59 @@ const Map<String, String> faIR = {
"removeEarbudsEnsureBattery":
"هر دو ایرباد را بردارید و اطمینان حاصل کنید که سطح باتری بالای ۲۰٪ است",
// OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': 'New version @version found',
'otaConfirmUpdateNow': 'Update now?',
'otaUpdate': 'Update',
'otaUpgradeSuccess': 'Upgrade Successful',
'otaUpgradeCompleteRepair':
'Firmware upgrade complete!\n\nDevice needs to be re-paired to work properly. Go to pairing page now?',
'otaPairLater': 'Pair Later',
'otaPairNow': 'Pair Now',
'okConfirm': 'OK',
// OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'Error checking BLE connection: @error',
'otaBleNotConnected': 'BLE Device Not Connected',
'otaBleNeedConnection':
'Firmware upgrade requires BLE device connection\nPlease ensure device is properly connected and try again',
'otaDeviceInfoUnavailableTitle': 'Device Info Unavailable',
'otaCannotGetDeviceInfo':
'Cannot get device info\nPlease reconnect device or try again later',
'otaBleCheckFailed': 'BLE Connection Check Failed',
'otaCannotGetDeviceInfoCheckConnection':
'Cannot get device info, please check device connection',
'otaCannotGetProductInfoWithName':
'Cannot get product info, device name: @deviceName',
'otaCannotGetBatteryInfo': 'Cannot get valid battery info',
'otaLowBattery': 'Low Battery',
'otaSingleBatteryLow':
'Device battery too low for firmware upgrade\nRequirement: battery must be above 20%\nCurrent: @ear @battery%\nPlease charge and try again',
'otaDoubleBatteryLow':
'Device battery too low for firmware upgrade\nRequirement: both earbuds must be above 20%\nCurrent: Left @left%, Right @right%\nPlease charge and try again',
'otaBatteryCheckFailed': 'Battery Check Failed',
// OTA升级模块 - 升级状态
'otaDefaultUpdateDesc':
'This update includes performance optimizations and bug fixes.',
'otaGetLatestVersionFailed': 'Failed to get latest version info',
'otaGetVersionInfoFailed': 'Failed to get version info',
'otaCheckingDeviceStatus': 'Checking device status...',
'otaDownloadFailedCheckNetwork':
'Download failed, please check network connection',
'otaDownloadFailed': 'Download Failed',
'otaPreparingConnection': 'Preparing device connection...',
'otaConnectingDevice': 'Connecting to device...',
'otaUpgradeStarted': 'OTA upgrade started...',
'otaUpgradeProgressWithPercent': 'Upgrade progress: @percent%',
'otaUpgradeSuccessComplete': 'Upgrade completed successfully',
'otaUpgradeFailedWithCode': 'Upgrade failed, error code: @code',
'otaUpgradeFailedTitle': 'Upgrade Failed',
'otaUpgradeFailedDesc':
'Please check device connection or update package, error code: @code',
'otaDeviceDisconnected': 'Device disconnected',
'otaDeviceConnected': 'Device connected',
// 音乐模块
"noMusic": "بدون موسیقی", // 暂无音乐
"noPlayingMusic": "موسیقی در حال پخش نیست", // 暂无播放音乐

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

@ -169,6 +169,26 @@ const Map<String, String> fiFI = {
'right': 'Oikea',
'checkConnectionStatusFailed': 'Yhteyden tilan tarkistus epäonnistui',
// 蓝牙扫描模块
'bleInitFailedWithError': 'Bluetooth-alustus epäonnistui: @error',
'needBluetoothAndLocationPermission': 'Bluetooth- ja sijaintiluvat tarvitaan laitteiden etsimiseen',
'permissionRequestFailedWithError': 'Lupapyyntö epäonnistui: @error',
'needPermission': 'Lupa vaaditaan',
'blePermissionDialogContent': 'Sovellus tarvitsee Bluetooth- ja sijaintiluvat laitteiden etsimiseen. Ota ne käyttöön Asetuksissa.',
'needEnableBluetooth': 'Ota Bluetooth käyttöön',
'enableBluetoothDialogContent': 'Ota Bluetooth käyttöön laitteiden etsimistä ja yhdistämistä varten.',
'bleScanFailedWithError': 'Etsintä epäonnistui: @error',
'bleConnectionSuccess': 'Yhdistäminen onnistui',
'bleConnectedToDevice': 'Yhdistetty laitteeseen @device',
'bleConnectionFailedWithError': 'Yhdistäminen epäonnistui: @error',
'bleDisconnected': 'Yhteys katkaistu',
'bleDeviceDisconnected': 'Laitteen yhteys katkaistu',
'bleDisconnectFailedWithError': 'Yhteyden katkaisu epäonnistui: @error',
'signalStrong': 'Vahva signaali',
'signalMedium': 'Keskitason signaali',
'signalWeak': 'Heikko signaali',
'signalVeryWeak': 'Erittäin heikko signaali',
// 发现页
"searchAi": "Etsi AI-toimintoja...",
"exploreSlogan": "Älykkäät kuulokkeet, loputtomat mahdollisuudet",
@ -876,6 +896,13 @@ const Map<String, String> fiFI = {
'Haluamme tietää, miksi ilmoitat, voit kuvailla kohtaamaasi ongelmaa.',
'generatedByAi': 'AI:n luoma',
// Agent模块 - 工具调用
'toolCall': 'Työkalukutsu',
'noResult': 'Ei tulosta',
'noToolCallContentToCopy': 'Ei työkalukutsua kopioitavaksi',
'toolCallDetails': 'Työkalukutsun tiedot:',
'toolCallContentCopied': 'Työkalukutsu kopioitu leikepöydälle',
// Agent模块 - 音乐卡片
'recommendedMusic': 'Tässä on joitain suositeltuja kappaleita:',
'playList': 'Soittolista',
@ -896,6 +923,28 @@ const Map<String, String> fiFI = {
"bicycling": 'Pyörällä',
"tsransit": 'Julkinen liikenne',
// Agent模块 - 导航选择
'selectNavigationApp': 'Valitse navigointisovellus',
'amapMap': 'Amap',
'useAmapNavigation': 'Navigoi Amapilla',
'baiduMap': 'Baidu Maps',
'useBaiduNavigation': 'Navigoi Baidu Mapsilla',
'googleMap': 'Google Maps',
'useGoogleNavigation': 'Navigoi Google Mapsilla',
'appleMap': 'Apple Maps',
'useAppleNavigation': 'Navigoi Apple Mapsilla',
'builtInNavigation': 'Sisäänrakennettu navigointi',
'useBuiltInNavigation': 'Navigoi sisäänrakennetulla kartalla',
'navigationStartFailed': 'Navigoinnin käynnistys epäonnistui',
'cannotPlayMusicListRetryLater': 'Musiikkilistaa ei voi toistaa, yritä myöhemmin',
'cannotPlaySong': 'Kappaletta ei voi toistaa',
'openMapError': 'Virhe kartan avaamisessa',
'pleaseInstallAmapApp': 'Asenna Amap-sovellus ensin',
'pleaseInstallBaiduMapApp': 'Asenna Baidu Maps -sovellus ensin',
'appleMapStartFailed': 'Apple Maps ei käynnistynyt',
'appleMapUnavailable': 'Apple Maps ei ole käytettävissä',
'openAppleMapError': 'Virhe Apple Mapsin avaamisessa',
// Agent模块 - 天气卡片
'weatherQuery': 'Säätietojen kysely:',
'highest': 'Korkein',
@ -966,8 +1015,18 @@ const Map<String, String> fiFI = {
// 翻译模块 - 文本翻译
"languageDetectionFailed": "Language detection failed",
// 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'Poista kelluva ikkuna käytöstä',
'enableFloatingWindow': 'Ota kelluva ikkuna käyttöön',
'permissionTip': 'Lupavihje',
'micPermissionRequiredForRecording': 'Mikrofonilupa vaaditaan äänitystä varten',
'deleteTranslationRecordError': 'Virhe käännöstietueen poistamisessa: @error',
"translationFailed": "Translation failed",
"translating": "Käännetään",
"translate": "Käännä",
"pleaseInputText": "Please input text",
"inputTextToTranslate": "Syötä käännettävä teksti",
"textTooLong": "Text too long, max 5000 characters",
// 翻译模块 - 历史记录
@ -1389,6 +1448,49 @@ const Map<String, String> fiFI = {
"removeEarbudsEnsureBattery":
"Poista molemmat kuulokkeet ja varmista, että molempien akun varaus on yli 20%",
// OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': 'Uusi versio @version löytyi',
'otaConfirmUpdateNow': 'Päivitä nyt?',
'otaUpdate': 'Päivitä',
'otaUpgradeSuccess': 'Päivitys onnistui',
'otaUpgradeCompleteRepair': 'Laiteohjelmiston päivitys valmis!\n\nLaite täytyy parittaa uudelleen. Siirry paritussivulle?',
'otaPairLater': 'Parita myöhemmin',
'otaPairNow': 'Parita nyt',
'okConfirm': 'OK',
// OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'Virhe BLE-tarkistuksessa: @error',
'otaBleNotConnected': 'BLE-laite ei yhdistetty',
'otaBleNeedConnection': 'Päivitys vaatii BLE-yhteyden\nVarmista että laite on yhdistetty ja yritä uudelleen',
'otaDeviceInfoUnavailableTitle': 'Laitteen tiedot eivät saatavilla',
'otaCannotGetDeviceInfo': 'Laitteen tietoja ei voi hakea\nYhdistä laite uudelleen tai yritä myöhemmin',
'otaBleCheckFailed': 'BLE-tarkistus epäonnistui',
'otaCannotGetDeviceInfoCheckConnection': 'Laitteen tietoja ei voi hakea, tarkista yhteys',
'otaCannotGetProductInfoWithName': 'Tuotetietoja ei voi hakea, laitteen nimi: @deviceName',
'otaCannotGetBatteryInfo': 'Akkutietoja ei voi hakea',
'otaLowBattery': 'Akku vähissä',
'otaSingleBatteryLow': 'Akku liian vähissä päivitykseen\nVaatimus: akku yli 20%\nNykyinen: @ear @battery%\nLataa ja yritä uudelleen',
'otaDoubleBatteryLow': 'Akku liian vähissä päivitykseen\nVaatimus: molemmat kuulokkeet yli 20%\nNykyinen: Vasen @left%, Oikea @right%\nLataa ja yritä uudelleen',
'otaBatteryCheckFailed': 'Akkutarkistus epäonnistui',
// OTA升级模块 - 升级状态
'otaDefaultUpdateDesc': 'Päivitys sisältää suorituskykyparannuksia ja virhekorjauksia.',
'otaGetLatestVersionFailed': 'Uusimman version haku epäonnistui',
'otaGetVersionInfoFailed': 'Versiotietojen haku epäonnistui',
'otaCheckingDeviceStatus': 'Tarkistetaan laitteen tilaa...',
'otaDownloadFailedCheckNetwork': 'Lataus epäonnistui, tarkista verkkoyhteys',
'otaDownloadFailed': 'Lataus epäonnistui',
'otaPreparingConnection': 'Valmistellaan yhteyttä...',
'otaConnectingDevice': 'Yhdistetään laitteeseen...',
'otaUpgradeStarted': 'OTA-päivitys aloitettu...',
'otaUpgradeProgressWithPercent': 'Päivityksen edistyminen: @percent%',
'otaUpgradeSuccessComplete': 'Päivitys onnistui',
'otaUpgradeFailedWithCode': 'Päivitys epäonnistui, virhekoodi: @code',
'otaUpgradeFailedTitle': 'Päivitys epäonnistui',
'otaUpgradeFailedDesc': 'Tarkista yhteys tai päivityspaketti, virhekoodi: @code',
'otaDeviceDisconnected': 'Laitteen yhteys katkaistu',
'otaDeviceConnected': 'Laite yhdistetty',
// 音乐模块
"noMusic": "Ei musiikkia", // 暂无音乐
"noPlayingMusic": "Ei soitettavaa musiikkia", // 暂无播放音乐

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

File diff suppressed because it is too large

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

@ -1,5 +1,4 @@
const Map<String, String> hiIN = {
// 通用
'continue': 'जारी रखें',
'confirm': 'पुष्टि करें',
@ -167,6 +166,29 @@ const Map<String, String> hiIN = {
'right': 'दायां',
'checkConnectionStatusFailed': 'कनेक्शन स्थिति की जाँच करने में विफल',
// 蓝牙扫描模块
'bleInitFailedWithError': 'Bluetooth initialization failed: @error',
'needBluetoothAndLocationPermission':
'Bluetooth and location permissions are required to scan devices',
'permissionRequestFailedWithError': 'Permission request failed: @error',
'needPermission': 'Permission Required',
'blePermissionDialogContent':
'This app requires Bluetooth and location permissions to scan devices. Please enable them in Settings.',
'needEnableBluetooth': 'Enable Bluetooth',
'enableBluetoothDialogContent':
'Please enable Bluetooth to scan and connect devices.',
'bleScanFailedWithError': 'Scan failed: @error',
'bleConnectionSuccess': 'Connection Successful',
'bleConnectedToDevice': 'Connected to @device',
'bleConnectionFailedWithError': 'Connection failed: @error',
'bleDisconnected': 'Disconnected',
'bleDeviceDisconnected': 'Device disconnected',
'bleDisconnectFailedWithError': 'Disconnect failed: @error',
'signalStrong': 'Strong',
'signalMedium': 'Medium',
'signalWeak': 'Weak',
'signalVeryWeak': 'Very Weak',
// 发现页
"searchAi": "एआई फ़ंक्शन खोजें...",
"exploreSlogan": "स्मार्ट ईयरफोन, अनंत संभावनाएं",
@ -242,60 +264,64 @@ const Map<String, String> hiIN = {
'totalQuota': 'Total Quota',
'remaining': 'Remaining',
'featureDescription': 'Feature Description',
'paymentSuccess': 'भुगतान सफल',
'paymentFailed': 'भुगतान विफल',
'gotIt': 'समझ गया',
'paymentFailedTryAgain': 'भुगतान विफल। कृपया पुनः प्रयास करें।',
'selectPaymentMethod': 'भुगतान विधि चुनें',
'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay',
'paypalPay': 'PayPal',
'appleIap': 'Apple IAP',
'googleIap': 'Google IAP',
'wechatOrderCreateFailed': 'WeChat ऑर्डर बनाने में विफल',
'alipayOrderCreateFailed': 'Alipay ऑर्डर बनाने में विफल',
'appleOrderCreateFailed': 'Apple ऑर्डर बनाने में विफल',
'googleOrderCreateFailed': 'Google ऑर्डर बनाने में विफल',
'paypalOrderCreateFailed': 'PayPal ऑर्डर बनाने में विफल',
'paymentException': 'भुगतान में समस्या',
'paymentLaunchFailed': 'भुगतान शुरू करने में विफल',
'paymentExceptionWithError': 'भुगतान में समस्या: @error',
'paymentProcessingCheckLater': 'आपका ऑर्डर प्रोसेस हो रहा है। कृपया बाद में जाँचें।',
'paymentResultQueryException': 'भुगतान परिणाम की जाँच विफल: @error',
'orderConfirmedQuotaRefreshed': 'ऑर्डर की पुष्टि हो गई। आपका कोटा रीफ़्रेश हो गया है।',
'paymentCompletedConfirming': 'भुगतान पूरा हुआ। पुष्टि हो रही है…',
'paymentCancelled': 'भुगतान रद्द किया गया',
'paypalOpenedCompleteInBrowser': 'PayPal खुल गया है। कृपया ब्राउज़र में भुगतान पूरा करें।',
'paypalOpenFailed': 'PayPal भुगतान पृष्ठ नहीं खोल सकते',
'paymentTestTitle': 'भुगतान परीक्षण',
'paymentTestOrderInfo': 'परीक्षण ऑर्डर जानकारी',
'paymentTestProductId': 'उत्पाद ID',
'paymentTestProductDescription': 'उत्पाद विवरण',
'paymentTestWechatDescription': 'WeChat भुगतान परीक्षण',
'paymentTestAlipayDescription': 'Alipay भुगतान परीक्षण',
'paymentTestAmount': 'राशि',
'paymentTestSelectAmount': 'परीक्षण राशि चुनें',
'paying': 'भुगतान हो रहा है...',
'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': 'भुगतान स्थिति',
'errorInfoWithMessage': 'त्रुटि: @message',
'retest': 'पुनः परीक्षण',
'paymentTestInstructionsTitle': 'निर्देश',
'paymentTestInstructionsContent': '1. परीक्षण राशि चुनें (अनुशंसित: ¥0.01)\n2. शुरू करने के लिए भुगतान बटन दबाएँ\n3. भुगतान ऐप में भुगतान पूरा करें\n4. परिणाम जाँचने के लिए वापस आएँ',
'startingWechatPayment': 'WeChat Pay खोल रहे हैं...',
'startingAlipayPayment': 'Alipay खोल रहे हैं...',
'wechatPaymentSuccess': 'WeChat Pay भुगतान सफल!',
'wechatPaymentFailed': 'WeChat Pay भुगतान विफल',
'wechatPaymentLaunchFailed': 'WeChat Pay खोलने में विफल',
'cannotLaunchWechatPayment': 'WeChat Pay नहीं खोल सकते',
'wechatPaymentException': 'WeChat Pay में समस्या',
'wechatPaymentTestCompleted': 'WeChat Pay भुगतान परीक्षण पूरा',
'alipayPaymentSuccess': 'Alipay भुगतान सफल!',
'alipayPaymentFailed': 'Alipay भुगतान विफल',
'alipayPaymentLaunchFailed': 'Alipay खोलने में विफल',
'cannotLaunchAlipayPayment': 'Alipay नहीं खोल सकते',
'alipayPaymentException': 'Alipay में समस्या',
'paymentSuccess': 'भुगतान सफल',
'paymentFailed': 'भुगतान विफल',
'gotIt': 'समझ गया',
'paymentFailedTryAgain': 'भुगतान विफल। कृपया पुनः प्रयास करें।',
'selectPaymentMethod': 'भुगतान विधि चुनें',
'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay',
'paypalPay': 'PayPal',
'appleIap': 'Apple IAP',
'googleIap': 'Google IAP',
'wechatOrderCreateFailed': 'WeChat ऑर्डर बनाने में विफल',
'alipayOrderCreateFailed': 'Alipay ऑर्डर बनाने में विफल',
'appleOrderCreateFailed': 'Apple ऑर्डर बनाने में विफल',
'googleOrderCreateFailed': 'Google ऑर्डर बनाने में विफल',
'paypalOrderCreateFailed': 'PayPal ऑर्डर बनाने में विफल',
'paymentException': 'भुगतान में समस्या',
'paymentLaunchFailed': 'भुगतान शुरू करने में विफल',
'paymentExceptionWithError': 'भुगतान में समस्या: @error',
'paymentProcessingCheckLater':
'आपका ऑर्डर प्रोसेस हो रहा है। कृपया बाद में जाँचें।',
'paymentResultQueryException': 'भुगतान परिणाम की जाँच विफल: @error',
'orderConfirmedQuotaRefreshed':
'ऑर्डर की पुष्टि हो गई। आपका कोटा रीफ़्रेश हो गया है।',
'paymentCompletedConfirming': 'भुगतान पूरा हुआ। पुष्टि हो रही है…',
'paymentCancelled': 'भुगतान रद्द किया गया',
'paypalOpenedCompleteInBrowser':
'PayPal खुल गया है। कृपया ब्राउज़र में भुगतान पूरा करें।',
'paypalOpenFailed': 'PayPal भुगतान पृष्ठ नहीं खोल सकते',
'paymentTestTitle': 'भुगतान परीक्षण',
'paymentTestOrderInfo': 'परीक्षण ऑर्डर जानकारी',
'paymentTestProductId': 'उत्पाद ID',
'paymentTestProductDescription': 'उत्पाद विवरण',
'paymentTestWechatDescription': 'WeChat भुगतान परीक्षण',
'paymentTestAlipayDescription': 'Alipay भुगतान परीक्षण',
'paymentTestAmount': 'राशि',
'paymentTestSelectAmount': 'परीक्षण राशि चुनें',
'paying': 'भुगतान हो रहा है...',
'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': 'भुगतान स्थिति',
'errorInfoWithMessage': 'त्रुटि: @message',
'retest': 'पुनः परीक्षण',
'paymentTestInstructionsTitle': 'निर्देश',
'paymentTestInstructionsContent':
'1. परीक्षण राशि चुनें (अनुशंसित: ¥0.01)\n2. शुरू करने के लिए भुगतान बटन दबाएँ\n3. भुगतान ऐप में भुगतान पूरा करें\n4. परिणाम जाँचने के लिए वापस आएँ',
'startingWechatPayment': 'WeChat Pay खोल रहे हैं...',
'startingAlipayPayment': 'Alipay खोल रहे हैं...',
'wechatPaymentSuccess': 'WeChat Pay भुगतान सफल!',
'wechatPaymentFailed': 'WeChat Pay भुगतान विफल',
'wechatPaymentLaunchFailed': 'WeChat Pay खोलने में विफल',
'cannotLaunchWechatPayment': 'WeChat Pay नहीं खोल सकते',
'wechatPaymentException': 'WeChat Pay में समस्या',
'wechatPaymentTestCompleted': 'WeChat Pay भुगतान परीक्षण पूरा',
'alipayPaymentSuccess': 'Alipay भुगतान सफल!',
'alipayPaymentFailed': 'Alipay भुगतान विफल',
'alipayPaymentLaunchFailed': 'Alipay खोलने में विफल',
'cannotLaunchAlipayPayment': 'Alipay नहीं खोल सकते',
'alipayPaymentException': 'Alipay में समस्या',
"insufficientIntegral": "Insufficient integral",
"insufficientBalanceDesc":
'Insufficient balance, please go to the corresponding recharge page to recharge.',
@ -493,19 +519,28 @@ const Map<String, String> hiIN = {
'callRecording': 'Call Recording',
'importAudio': 'Import Audio',
'meetingRecordExitTitle': 'रिकॉर्डिंग से बाहर निकलें', // 退出录音
'meetingRecordExitMessage': 'बाहर निकलने से पहले क्या करना है चुनें', // 请选择离开后的操作
'meetingRecordExitMessage':
'बाहर निकलने से पहले क्या करना है चुनें', // 请选择离开后的操作
'meetingRecordEndAndSave': 'रिकॉर्डिंग समाप्त करें और सहेजें', // 结束录音并保存
'meetingRecordEndWithoutSave': 'बिना सहेजे रिकॉर्डिंग समाप्त करें', // 结束录音不保存
'meetingRecordContinueInBackground': 'बैकग्राउंड में रिकॉर्डिंग जारी रखें', // 后台继续录音
'meetingRecordStopTimeout': 'रिकॉर्डिंग रोकने का समय समाप्त हो गया। कृपया फिर से प्रयास करें।', // 结束录音超时,请重试
'meetingRecordStopFailed': 'रिकॉर्डिंग रोकने में विफल। कृपया फिर से प्रयास करें।', // 结束录音失败,请重试
'meetingRecordSaveFailed': 'रिकॉर्डिंग सहेजने में विफल। कृपया फिर से प्रयास करें।', // 保存录音失败,请重试
'meetingRecordContinueInBackground':
'बैकग्राउंड में रिकॉर्डिंग जारी रखें', // 后台继续录音
'meetingRecordStopTimeout':
'रिकॉर्डिंग रोकने का समय समाप्त हो गया। कृपया फिर से प्रयास करें।', // 结束录音超时,请重试
'meetingRecordStopFailed':
'रिकॉर्डिंग रोकने में विफल। कृपया फिर से प्रयास करें।', // 结束录音失败,请重试
'meetingRecordSaveFailed':
'रिकॉर्डिंग सहेजने में विफल। कृपया फिर से प्रयास करें।', // 保存录音失败,请重试
'meetingRecordRecordingNotificationTitle': 'रिकॉर्डिंग चल रही है', // 录音进行中
'meetingRecordRecordingNotificationBody': 'बैकग्राउंड में रिकॉर्डिंग हो रही है। ऐप पर लौटने के लिए टैप करें।', // 正在后台录音,点击返回应用
'meetingRecordRecordingNotificationBody':
'बैकग्राउंड में रिकॉर्डिंग हो रही है। ऐप पर लौटने के लिए टैप करें।', // 正在后台录音,点击返回应用
'overlayPermissionTitle': 'अन्य ऐप्स के ऊपर दिखाएँ', // 悬浮窗权限
'overlayPermissionTranslationDesc': 'कॉल या ऑडियो/वीडियो अनुवाद के दौरान अनुवाद परिणाम दिखाने के लिए हमें ओवरले अनुमति चाहिए। इससे आप अन्य ऐप्स का उपयोग करते समय भी रीयल-टाइम अनुवाद देख सकते हैं।', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。
'overlayPermissionRecordingDesc': 'रिकॉर्डिंग के दौरान रिकॉर्डिंग फ्लोटिंग बार (टाइमर/पॉज़/जारी) दिखाने के लिए हमें ओवरले अनुमति चाहिए।', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。
'overlayPermissionOpenSettingsFailed': 'सिस्टम सेटिंग्स अपने आप नहीं खुल सकीं। कृपया सेटिंग्स खोलें और ओवरले अनुमति मैन्युअल रूप से सक्षम करें।', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。
'overlayPermissionTranslationDesc':
'कॉल या ऑडियो/वीडियो अनुवाद के दौरान अनुवाद परिणाम दिखाने के लिए हमें ओवरले अनुमति चाहिए। इससे आप अन्य ऐप्स का उपयोग करते समय भी रीयल-टाइम अनुवाद देख सकते हैं।', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。
'overlayPermissionRecordingDesc':
'रिकॉर्डिंग के दौरान रिकॉर्डिंग फ्लोटिंग बार (टाइमर/पॉज़/जारी) दिखाने के लिए हमें ओवरले अनुमति चाहिए।', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。
'overlayPermissionOpenSettingsFailed':
'सिस्टम सेटिंग्स अपने आप नहीं खुल सकीं। कृपया सेटिंग्स खोलें और ओवरले अनुमति मैन्युअल रूप से सक्षम करें।', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。
'transcribing': 'Transcribing...',
'summarizing': 'Summarizing...',
'analyzing': 'Analyzing...',
@ -530,21 +565,22 @@ const Map<String, String> hiIN = {
'selectSummaryTemplate': 'Select Summary Template',
'useThisTemplate': 'Use This Template',
'lastUsed': 'Last Used',
'create': 'बनाएँ',
'templateDetails': 'टेम्पलेट विवरण',
'tag': 'टैग',
'description': 'विवरण',
'template': 'टेम्पलेट',
'deleteTemplate': 'टेम्पलेट हटाएँ',
'deleteTemplateConfirm': 'क्या आप वाकई इस टेम्पलेट को हटाना चाहते हैं?',
'editTemplate': 'टेम्पलेट संपादित करें',
'createTemplate': 'टेम्पलेट बनाएँ',
'name': 'नाम',
'templateContentHint': 'कृपया टेम्पलेट सामग्री दर्ज करें! सुझाव: आपने जो नाम और विवरण दर्ज किया है उसके आधार पर टेम्पलेट सामग्री तेज़ी से बनाने के लिए ऊपर AI बटन दबाएँ',
'inputNameHint': 'कृपया नाम दर्ज करें',
'inputDescHint': 'कृपया विवरण दर्ज करें',
'custom': 'कस्टम',
'pleaseEnter': 'कृपया दर्ज करें',
'create': 'बनाएँ',
'templateDetails': 'टेम्पलेट विवरण',
'tag': 'टैग',
'description': 'विवरण',
'template': 'टेम्पलेट',
'deleteTemplate': 'टेम्पलेट हटाएँ',
'deleteTemplateConfirm': 'क्या आप वाकई इस टेम्पलेट को हटाना चाहते हैं?',
'editTemplate': 'टेम्पलेट संपादित करें',
'createTemplate': 'टेम्पलेट बनाएँ',
'name': 'नाम',
'templateContentHint':
'कृपया टेम्पलेट सामग्री दर्ज करें! सुझाव: आपने जो नाम और विवरण दर्ज किया है उसके आधार पर टेम्पलेट सामग्री तेज़ी से बनाने के लिए ऊपर AI बटन दबाएँ',
'inputNameHint': 'कृपया नाम दर्ज करें',
'inputDescHint': 'कृपया विवरण दर्ज करें',
'custom': 'कस्टम',
'pleaseEnter': 'कृपया दर्ज करें',
'viewAll': 'View All',
'recordingLanguage': 'Recording Language',
'chineseSimplified': 'Chinese Mandarin (Simplified)',
@ -567,7 +603,7 @@ const Map<String, String> hiIN = {
'fileProcessingFailed': 'File processing failed: {filePath}, error: {error}',
// Meeting模块 - 思维导图
'saveMindMap': 'माइंड मैप सहेजें',
'saveMindMap': 'माइंड मैप सहेजें',
'shareMindMap': 'Share Mind Map',
'shareSuccess': 'Share Success',
@ -589,7 +625,7 @@ const Map<String, String> hiIN = {
'exportSummary': 'Export Summary',
'exportAs': 'Export As',
'exportingPDF': 'Exporting PDF...',
'export': 'निर्यात',
'export': 'निर्यात',
// Meeting模块 - 发言者
'applyToAllParagraphs': 'इस वक्ता के सभी अनुच्छेदों पर लागू करें',
@ -699,18 +735,18 @@ const Map<String, String> hiIN = {
// Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Unknown Language',
'analysisFailed': 'विश्लेषण विफल, कृपया बाद में पुनः प्रयास करें',
'transcriptionFailed': 'ट्रांसक्रिप्शन विफल, कृपया बाद में पुनः प्रयास करें',
'summaryFailed': 'सारांश विफल, कृपया बाद में पुनः प्रयास करें',
'summaryFailedShort': 'सारांश विफल',
'transcriptionFailedShort': 'ट्रांसक्रिप्शन विफल',
'analysisFailed': 'विश्लेषण विफल, कृपया बाद में पुनः प्रयास करें',
'transcriptionFailed': 'ट्रांसक्रिप्शन विफल, कृपया बाद में पुनः प्रयास करें',
'summaryFailed': 'सारांश विफल, कृपया बाद में पुनः प्रयास करें',
'summaryFailedShort': 'सारांश विफल',
'transcriptionFailedShort': 'ट्रांसक्रिप्शन विफल',
// Meeting模块 - 播放器
'playerNotReady': 'ऑडियो प्लेयर तैयार नहीं है, कृपया प्रतीक्षा करें',
'playFailed': 'चलाने में विफल',
'audioFileNotFound': 'ऑडियो फ़ाइल नहीं मिली',
'fetchingAudio': 'क्लाउड से ऑडियो प्राप्त कर रहे हैं...',
'playerLoadFailed': 'ऑडियो प्लेयर लोड होने में विफल',
'playerNotReady': 'ऑडियो प्लेयर तैयार नहीं है, कृपया प्रतीक्षा करें',
'playFailed': 'चलाने में विफल',
'audioFileNotFound': 'ऑडियो फ़ाइल नहीं मिली',
'fetchingAudio': 'क्लाउड से ऑडियो प्राप्त कर रहे हैं...',
'playerLoadFailed': 'ऑडियो प्लेयर लोड होने में विफल',
// 设置页
"systemSettings": "सिस्टम सेटिंग्स",
@ -817,7 +853,8 @@ const Map<String, String> hiIN = {
"swipeUpForMore": "अधिक के लिए ऊपर स्वाइप करें",
"callingTool": "I'm helping you, please wait!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断
'voice_interrupt_tip': 'सक्षम होने पर: बोलते समय AI आपकी आवाज़ से बाधित नहीं होगा और एक समय में केवल एक वार्तालाप चरण संभाल सकता है। नया चरण शुरू करने के लिए, बस वेक-अप शब्द बोलें।',
'voice_interrupt_tip':
'सक्षम होने पर: बोलते समय AI आपकी आवाज़ से बाधित नहीं होगा और एक समय में केवल एक वार्तालाप चरण संभाल सकता है। नया चरण शुरू करने के लिए, बस वेक-अप शब्द बोलें।',
// Agent模块 - 预设提示词
"presetMusic": "Play some music", // 来点音乐
@ -873,6 +910,13 @@ const Map<String, String> hiIN = {
'हम जानना चाहते हैं कि आप क्यों रिपोर्ट कर रहे हैं, आप जिस समस्या का सामना कर रहे हैं उसका वर्णन कर सकते हैं।',
'generatedByAi': 'एआई द्वारा उत्पन्न',
// Agent模块 - 工具调用
'toolCall': 'Tool Call',
'noResult': 'No Result',
'noToolCallContentToCopy': 'No tool call content to copy',
'toolCallDetails': 'Tool Call Details:',
'toolCallContentCopied': 'Tool call content copied to clipboard',
// Agent模块 - 音乐卡片
'recommendedMusic': 'यहां कुछ अनुशंसित संगीत हैं:',
'playList': 'प्लेलिस्ट',
@ -893,6 +937,29 @@ const Map<String, String> hiIN = {
"bicycling": "साइकिल चलाना",
"tsransit": "पारगमन",
// Agent模块 - 导航选择
'selectNavigationApp': 'Select Navigation App',
'amapMap': 'Amap',
'useAmapNavigation': 'Navigate with Amap',
'baiduMap': 'Baidu Maps',
'useBaiduNavigation': 'Navigate with Baidu Maps',
'googleMap': 'Google Maps',
'useGoogleNavigation': 'Navigate with Google Maps',
'appleMap': 'Apple Maps',
'useAppleNavigation': 'Navigate with Apple Maps',
'builtInNavigation': 'Built-in Navigation',
'useBuiltInNavigation': 'Navigate with built-in map',
'navigationStartFailed': 'Failed to start navigation',
'cannotPlayMusicListRetryLater':
'Cannot play music list, please try again later',
'cannotPlaySong': 'Cannot play song',
'openMapError': 'Error opening map',
'pleaseInstallAmapApp': 'Please install the Amap app first',
'pleaseInstallBaiduMapApp': 'Please install the Baidu Maps app first',
'appleMapStartFailed': 'Apple Maps failed to start',
'appleMapUnavailable': 'Apple Maps unavailable',
'openAppleMapError': 'Error opening Apple Maps',
// Agent模块 - 天气卡片
'weatherQuery': 'मौसम की स्थिति की पूछताछ:',
'highest': 'उच्चतम',
@ -964,8 +1031,19 @@ const Map<String, String> hiIN = {
// 翻译模块 - 文本翻译
"languageDetectionFailed": "Language detection failed",
// 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'Disable Floating Window',
'enableFloatingWindow': 'Enable Floating Window',
'permissionTip': 'Permission Tip',
'micPermissionRequiredForRecording':
'Microphone permission is required for recording',
'deleteTranslationRecordError': 'Error deleting translation record: @error',
"translationFailed": "Translation failed",
"translating": "Translating",
"translate": "Translate",
"pleaseInputText": "Please input text",
"inputTextToTranslate": "कृपया अनुवाद करने के लिए पाठ दर्ज करें",
"textTooLong": "Text too long, max 5000 characters",
// 翻译模块 - 历史记录
@ -1241,17 +1319,19 @@ const Map<String, String> hiIN = {
'permissionUtilConfirm': 'OK',
// 原生前台服务通知(Android)
'native.notification.appName': 'VOITRANS',
'native.notification.navigation.title': 'नेविगेशन जारी है',
'native.notification.navigation.keepRunning': 'नेविगेट कर रहे हैं, ऐप चालू रखें',
'native.notification.bleAgent.running': 'वॉयस असिस्टेंट एजेंट चल रहा है',
'native.notification.audioRecording.recording': 'ऑडियो रिकॉर्ड हो रहा है, ऐप पर वापस जाने के लिए टैप करें',
'native.notification.music.waiting': 'चलाने की प्रतीक्षा में',
'native.notification.music.previous': 'पिछला',
'native.notification.music.next': 'अगला',
'native.notification.music.play': 'चलाएँ',
'native.notification.music.pause': 'रोकें',
'native.notification.qqMusic.playing': 'संगीत चल रहा है',
'native.notification.appName': 'VOITRANS',
'native.notification.navigation.title': 'नेविगेशन जारी है',
'native.notification.navigation.keepRunning':
'नेविगेट कर रहे हैं, ऐप चालू रखें',
'native.notification.bleAgent.running': 'वॉयस असिस्टेंट एजेंट चल रहा है',
'native.notification.audioRecording.recording':
'ऑडियो रिकॉर्ड हो रहा है, ऐप पर वापस जाने के लिए टैप करें',
'native.notification.music.waiting': 'चलाने की प्रतीक्षा में',
'native.notification.music.previous': 'पिछला',
'native.notification.music.next': 'अगला',
'native.notification.music.play': 'चलाएँ',
'native.notification.music.pause': 'रोकें',
'native.notification.qqMusic.playing': 'संगीत चल रहा है',
// 版本更新
'newVersionFound': 'नया संस्करण मिला', // 版本更新对话框标题
@ -1391,6 +1471,59 @@ const Map<String, String> hiIN = {
"removeEarbudsEnsureBattery":
"दोनों ईयरबड निकालें, और सुनिश्चित करें कि दोनों की बैटरी 20% से ऊपर है",
// OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': 'New version @version found',
'otaConfirmUpdateNow': 'Update now?',
'otaUpdate': 'Update',
'otaUpgradeSuccess': 'Upgrade Successful',
'otaUpgradeCompleteRepair':
'Firmware upgrade complete!\n\nDevice needs to be re-paired to work properly. Go to pairing page now?',
'otaPairLater': 'Pair Later',
'otaPairNow': 'Pair Now',
'okConfirm': 'OK',
// OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'Error checking BLE connection: @error',
'otaBleNotConnected': 'BLE Device Not Connected',
'otaBleNeedConnection':
'Firmware upgrade requires BLE device connection\nPlease ensure device is properly connected and try again',
'otaDeviceInfoUnavailableTitle': 'Device Info Unavailable',
'otaCannotGetDeviceInfo':
'Cannot get device info\nPlease reconnect device or try again later',
'otaBleCheckFailed': 'BLE Connection Check Failed',
'otaCannotGetDeviceInfoCheckConnection':
'Cannot get device info, please check device connection',
'otaCannotGetProductInfoWithName':
'Cannot get product info, device name: @deviceName',
'otaCannotGetBatteryInfo': 'Cannot get valid battery info',
'otaLowBattery': 'Low Battery',
'otaSingleBatteryLow':
'Device battery too low for firmware upgrade\nRequirement: battery must be above 20%\nCurrent: @ear @battery%\nPlease charge and try again',
'otaDoubleBatteryLow':
'Device battery too low for firmware upgrade\nRequirement: both earbuds must be above 20%\nCurrent: Left @left%, Right @right%\nPlease charge and try again',
'otaBatteryCheckFailed': 'Battery Check Failed',
// OTA升级模块 - 升级状态
'otaDefaultUpdateDesc':
'This update includes performance optimizations and bug fixes.',
'otaGetLatestVersionFailed': 'Failed to get latest version info',
'otaGetVersionInfoFailed': 'Failed to get version info',
'otaCheckingDeviceStatus': 'Checking device status...',
'otaDownloadFailedCheckNetwork':
'Download failed, please check network connection',
'otaDownloadFailed': 'Download Failed',
'otaPreparingConnection': 'Preparing device connection...',
'otaConnectingDevice': 'Connecting to device...',
'otaUpgradeStarted': 'OTA upgrade started...',
'otaUpgradeProgressWithPercent': 'Upgrade progress: @percent%',
'otaUpgradeSuccessComplete': 'Upgrade completed successfully',
'otaUpgradeFailedWithCode': 'Upgrade failed, error code: @code',
'otaUpgradeFailedTitle': 'Upgrade Failed',
'otaUpgradeFailedDesc':
'Please check device connection or update package, error code: @code',
'otaDeviceDisconnected': 'Device disconnected',
'otaDeviceConnected': 'Device connected',
// 音乐模块
"noMusic": "कोई संगीत नहीं", // 暂无音乐
"noPlayingMusic": "कोई संगीत नहीं चल रहा है", // 暂无播放音乐

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

@ -1,5 +1,4 @@
const Map<String, String> hrHR = {
// 通用
'continue': 'Nastavi',
'confirm': 'Potvrdi',
@ -170,6 +169,29 @@ const Map<String, String> hrHR = {
'right': 'Desno',
'checkConnectionStatusFailed': 'Provjera statusa veze nije uspjela',
// 蓝牙扫描模块
'bleInitFailedWithError': 'Bluetooth initialization failed: @error',
'needBluetoothAndLocationPermission':
'Bluetooth and location permissions are required to scan devices',
'permissionRequestFailedWithError': 'Permission request failed: @error',
'needPermission': 'Permission Required',
'blePermissionDialogContent':
'This app requires Bluetooth and location permissions to scan devices. Please enable them in Settings.',
'needEnableBluetooth': 'Enable Bluetooth',
'enableBluetoothDialogContent':
'Please enable Bluetooth to scan and connect devices.',
'bleScanFailedWithError': 'Scan failed: @error',
'bleConnectionSuccess': 'Connection Successful',
'bleConnectedToDevice': 'Connected to @device',
'bleConnectionFailedWithError': 'Connection failed: @error',
'bleDisconnected': 'Disconnected',
'bleDeviceDisconnected': 'Device disconnected',
'bleDisconnectFailedWithError': 'Disconnect failed: @error',
'signalStrong': 'Strong',
'signalMedium': 'Medium',
'signalWeak': 'Weak',
'signalVeryWeak': 'Very Weak',
// 发现页
"searchAi": "Traži AI funkcije...",
"exploreSlogan": "Pametne slušalice, beskonačne mogućnosti",
@ -246,60 +268,65 @@ const Map<String, String> hrHR = {
'totalQuota': 'Total Quota',
'remaining': 'Remaining',
'featureDescription': 'Feature Description',
'paymentSuccess': 'Plaćanje uspješno',
'paymentFailed': 'Plaćanje nije uspjelo',
'gotIt': 'Razumijem',
'paymentFailedTryAgain': 'Plaćanje nije uspjelo. Pokušajte ponovno.',
'selectPaymentMethod': 'Odaberite način plaćanja',
'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay',
'paypalPay': 'PayPal',
'appleIap': 'Apple IAP',
'googleIap': 'Google IAP',
'wechatOrderCreateFailed': 'Stvaranje WeChat narudžbe nije uspjelo',
'alipayOrderCreateFailed': 'Stvaranje Alipay narudžbe nije uspjelo',
'appleOrderCreateFailed': 'Stvaranje Apple narudžbe nije uspjelo',
'googleOrderCreateFailed': 'Stvaranje Google narudžbe nije uspjelo',
'paypalOrderCreateFailed': 'Stvaranje PayPal narudžbe nije uspjelo',
'paymentException': 'Iznimka pri plaćanju',
'paymentLaunchFailed': 'Pokretanje plaćanja nije uspjelo',
'paymentExceptionWithError': 'Iznimka pri plaćanju: @error',
'paymentProcessingCheckLater': 'Vaša narudžba se obrađuje. Provjerite kasnije.',
'paymentResultQueryException': 'Neuspješno dohvaćanje rezultata plaćanja: @error',
'orderConfirmedQuotaRefreshed': 'Narudžba je potvrđena. Vaša kvota je osvježena.',
'paymentCompletedConfirming': 'Plaćanje je završeno. Potvrđivanje…',
'paymentCancelled': 'Plaćanje je otkazano',
'paypalOpenedCompleteInBrowser': 'PayPal je otvoren. Molimo dovršite plaćanje u pregledniku.',
'paypalOpenFailed': 'Nije moguće otvoriti PayPal stranicu za plaćanje',
'paymentTestTitle': 'Test plaćanja',
'paymentTestOrderInfo': 'Informacije o testnoj narudžbi',
'paymentTestProductId': 'ID proizvoda',
'paymentTestProductDescription': 'Opis proizvoda',
'paymentTestWechatDescription': 'Test WeChat plaćanja',
'paymentTestAlipayDescription': 'Test Alipay plaćanja',
'paymentTestAmount': 'Iznos',
'paymentTestSelectAmount': 'Odaberite testni iznos',
'paying': 'Plaćanje...',
'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': 'Status plaćanja',
'errorInfoWithMessage': 'Greška: @message',
'retest': 'Ponovo testiraj',
'paymentTestInstructionsTitle': 'Upute',
'paymentTestInstructionsContent': '1. Odaberite testni iznos (preporučeno: ¥0.01)\n2. Kliknite gumb za plaćanje za početak\n3. Dovršite plaćanje u aplikaciji za plaćanje\n4. Vratite se da provjerite rezultat',
'startingWechatPayment': 'Pokretanje WeChat Pay-a...',
'startingAlipayPayment': 'Pokretanje Alipay-a...',
'wechatPaymentSuccess': 'WeChat Pay plaćanje uspješno!',
'wechatPaymentFailed': 'WeChat Pay plaćanje nije uspjelo',
'wechatPaymentLaunchFailed': 'Pokretanje WeChat Pay-a nije uspjelo',
'cannotLaunchWechatPayment': 'Nije moguće pokrenuti WeChat Pay',
'wechatPaymentException': 'WeChat Pay iznimka',
'wechatPaymentTestCompleted': 'Test WeChat Pay plaćanja je završen',
'alipayPaymentSuccess': 'Alipay plaćanje uspješno!',
'alipayPaymentFailed': 'Alipay plaćanje nije uspjelo',
'alipayPaymentLaunchFailed': 'Pokretanje Alipay-a nije uspjelo',
'cannotLaunchAlipayPayment': 'Nije moguće pokrenuti Alipay',
'alipayPaymentException': 'Alipay iznimka',
'paymentSuccess': 'Plaćanje uspješno',
'paymentFailed': 'Plaćanje nije uspjelo',
'gotIt': 'Razumijem',
'paymentFailedTryAgain': 'Plaćanje nije uspjelo. Pokušajte ponovno.',
'selectPaymentMethod': 'Odaberite način plaćanja',
'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay',
'paypalPay': 'PayPal',
'appleIap': 'Apple IAP',
'googleIap': 'Google IAP',
'wechatOrderCreateFailed': 'Stvaranje WeChat narudžbe nije uspjelo',
'alipayOrderCreateFailed': 'Stvaranje Alipay narudžbe nije uspjelo',
'appleOrderCreateFailed': 'Stvaranje Apple narudžbe nije uspjelo',
'googleOrderCreateFailed': 'Stvaranje Google narudžbe nije uspjelo',
'paypalOrderCreateFailed': 'Stvaranje PayPal narudžbe nije uspjelo',
'paymentException': 'Iznimka pri plaćanju',
'paymentLaunchFailed': 'Pokretanje plaćanja nije uspjelo',
'paymentExceptionWithError': 'Iznimka pri plaćanju: @error',
'paymentProcessingCheckLater':
'Vaša narudžba se obrađuje. Provjerite kasnije.',
'paymentResultQueryException':
'Neuspješno dohvaćanje rezultata plaćanja: @error',
'orderConfirmedQuotaRefreshed':
'Narudžba je potvrđena. Vaša kvota je osvježena.',
'paymentCompletedConfirming': 'Plaćanje je završeno. Potvrđivanje…',
'paymentCancelled': 'Plaćanje je otkazano',
'paypalOpenedCompleteInBrowser':
'PayPal je otvoren. Molimo dovršite plaćanje u pregledniku.',
'paypalOpenFailed': 'Nije moguće otvoriti PayPal stranicu za plaćanje',
'paymentTestTitle': 'Test plaćanja',
'paymentTestOrderInfo': 'Informacije o testnoj narudžbi',
'paymentTestProductId': 'ID proizvoda',
'paymentTestProductDescription': 'Opis proizvoda',
'paymentTestWechatDescription': 'Test WeChat plaćanja',
'paymentTestAlipayDescription': 'Test Alipay plaćanja',
'paymentTestAmount': 'Iznos',
'paymentTestSelectAmount': 'Odaberite testni iznos',
'paying': 'Plaćanje...',
'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': 'Status plaćanja',
'errorInfoWithMessage': 'Greška: @message',
'retest': 'Ponovo testiraj',
'paymentTestInstructionsTitle': 'Upute',
'paymentTestInstructionsContent':
'1. Odaberite testni iznos (preporučeno: ¥0.01)\n2. Kliknite gumb za plaćanje za početak\n3. Dovršite plaćanje u aplikaciji za plaćanje\n4. Vratite se da provjerite rezultat',
'startingWechatPayment': 'Pokretanje WeChat Pay-a...',
'startingAlipayPayment': 'Pokretanje Alipay-a...',
'wechatPaymentSuccess': 'WeChat Pay plaćanje uspješno!',
'wechatPaymentFailed': 'WeChat Pay plaćanje nije uspjelo',
'wechatPaymentLaunchFailed': 'Pokretanje WeChat Pay-a nije uspjelo',
'cannotLaunchWechatPayment': 'Nije moguće pokrenuti WeChat Pay',
'wechatPaymentException': 'WeChat Pay iznimka',
'wechatPaymentTestCompleted': 'Test WeChat Pay plaćanja je završen',
'alipayPaymentSuccess': 'Alipay plaćanje uspješno!',
'alipayPaymentFailed': 'Alipay plaćanje nije uspjelo',
'alipayPaymentLaunchFailed': 'Pokretanje Alipay-a nije uspjelo',
'cannotLaunchAlipayPayment': 'Nije moguće pokrenuti Alipay',
'alipayPaymentException': 'Alipay iznimka',
"insufficientIntegral": "Insufficient integral",
"insufficientBalanceDesc":
'Insufficient balance, please go to the corresponding recharge page to recharge.',
@ -497,19 +524,27 @@ const Map<String, String> hrHR = {
'callRecording': 'Call Recording',
'importAudio': 'Import Audio',
'meetingRecordExitTitle': 'Izađi iz snimanja', // 退出录音
'meetingRecordExitMessage': 'Odaberite što učiniti prije izlaska', // 请选择离开后的操作
'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.', // 保存录音失败,请重试
'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.', // 正在后台录音,点击返回应用
'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.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。
'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...',
@ -534,21 +569,23 @@ const Map<String, String> hrHR = {
'selectSummaryTemplate': 'Select Summary Template',
'useThisTemplate': 'Use This Template',
'lastUsed': 'Last Used',
'create': 'Stvori',
'templateDetails': 'Pojedinosti predloška',
'tag': 'Oznaka',
'description': 'Opis',
'template': 'Predložak',
'deleteTemplate': 'Obriši predložak',
'deleteTemplateConfirm': 'Jeste li sigurni da želite obrisati ovaj predložak?',
'editTemplate': 'Uredi predložak',
'createTemplate': 'Stvori predložak',
'name': 'Naziv',
'templateContentHint': 'Molimo unesite sadržaj predloška! Savjet: Kliknite na AI gumb iznad za brzo generiranje sadržaja predloška na temelju naziva i opisa koje ste unijeli',
'inputNameHint': 'Molimo unesite naziv',
'inputDescHint': 'Molimo unesite opis',
'custom': 'Prilagođeno',
'pleaseEnter': 'Molimo unesite',
'create': 'Stvori',
'templateDetails': 'Pojedinosti predloška',
'tag': 'Oznaka',
'description': 'Opis',
'template': 'Predložak',
'deleteTemplate': 'Obriši predložak',
'deleteTemplateConfirm':
'Jeste li sigurni da želite obrisati ovaj predložak?',
'editTemplate': 'Uredi predložak',
'createTemplate': 'Stvori predložak',
'name': 'Naziv',
'templateContentHint':
'Molimo unesite sadržaj predloška! Savjet: Kliknite na AI gumb iznad za brzo generiranje sadržaja predloška na temelju naziva i opisa koje ste unijeli',
'inputNameHint': 'Molimo unesite naziv',
'inputDescHint': 'Molimo unesite opis',
'custom': 'Prilagođeno',
'pleaseEnter': 'Molimo unesite',
'viewAll': 'View All',
'recordingLanguage': 'Recording Language',
'chineseSimplified': 'Chinese Mandarin (Simplified)',
@ -571,7 +608,7 @@ const Map<String, String> hrHR = {
'fileProcessingFailed': 'File processing failed: {filePath}, error: {error}',
// Meeting模块 - 思维导图
'saveMindMap': 'Spremi mentalnu mapu',
'saveMindMap': 'Spremi mentalnu mapu',
'shareMindMap': 'Share Mind Map',
'shareSuccess': 'Share Success',
@ -593,7 +630,7 @@ const Map<String, String> hrHR = {
'exportSummary': 'Export Summary',
'exportAs': 'Export As',
'exportingPDF': 'Exporting PDF...',
'export': 'Izvoz',
'export': 'Izvoz',
// Meeting模块 - 发言者
'applyToAllParagraphs': 'Primijeni na sve odlomke ovog govornika',
@ -703,18 +740,19 @@ const Map<String, String> hrHR = {
// Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Unknown Language',
'analysisFailed': 'Analiza nije uspjela, pokušajte ponovno kasnije',
'transcriptionFailed': 'Transkripcija nije uspjela, pokušajte ponovno kasnije',
'summaryFailed': 'Sažetak nije uspio, pokušajte ponovno kasnije',
'summaryFailedShort': 'Sažetak nije uspio',
'transcriptionFailedShort': 'Transkripcija nije uspjela',
'analysisFailed': 'Analiza nije uspjela, pokušajte ponovno kasnije',
'transcriptionFailed':
'Transkripcija nije uspjela, pokušajte ponovno kasnije',
'summaryFailed': 'Sažetak nije uspio, pokušajte ponovno kasnije',
'summaryFailedShort': 'Sažetak nije uspio',
'transcriptionFailedShort': 'Transkripcija nije uspjela',
// Meeting模块 - 播放器
'playerNotReady': 'Audio reproduktor nije spreman, molimo pričekajte',
'playFailed': 'Reprodukcija nije uspjela',
'audioFileNotFound': 'Audio datoteka nije pronađena',
'fetchingAudio': 'Dohvaćanje audio zapisa iz oblaka...',
'playerLoadFailed': 'Audio reproduktor se nije uspio učitati',
'playerNotReady': 'Audio reproduktor nije spreman, molimo pričekajte',
'playFailed': 'Reprodukcija nije uspjela',
'audioFileNotFound': 'Audio datoteka nije pronađena',
'fetchingAudio': 'Dohvaćanje audio zapisa iz oblaka...',
'playerLoadFailed': 'Audio reproduktor se nije uspio učitati',
// 设置页
"systemSettings": "Postavke sustava",
@ -821,7 +859,8 @@ const Map<String, String> hrHR = {
"swipeUpForMore": "Prijeđite prstom prema gore za više",
"callingTool": "I'm helping you, please wait!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断
'voice_interrupt_tip': 'Kada je uključeno: AI neće biti prekinut vašim glasom dok govori i može obraditi samo jedan krug razgovora odjednom. Za početak novog kruga, samo izgovorite riječ za buđenje.',
'voice_interrupt_tip':
'Kada je uključeno: AI neće biti prekinut vašim glasom dok govori i može obraditi samo jedan krug razgovora odjednom. Za početak novog kruga, samo izgovorite riječ za buđenje.',
// Agent模块 - 预设提示词
"presetMusic": "Play some music", // 来点音乐
@ -877,6 +916,13 @@ const Map<String, String> hrHR = {
'Želimo znati razlog vaše prijave, možete opisati problem s kojim ste se suočili.',
'generatedByAi': 'Generirano od strane AI',
// Agent模块 - 工具调用
'toolCall': 'Tool Call',
'noResult': 'No Result',
'noToolCallContentToCopy': 'No tool call content to copy',
'toolCallDetails': 'Tool Call Details:',
'toolCallContentCopied': 'Tool call content copied to clipboard',
// Agent模块 - 音乐卡片
'recommendedMusic': 'Evo nekoliko preporučenih pjesama:',
'playList': 'Popis pjesama',
@ -897,6 +943,29 @@ const Map<String, String> hrHR = {
"bicycling": "Biciklizam",
"tsransit": "Javni prijevoz",
// Agent模块 - 导航选择
'selectNavigationApp': 'Select Navigation App',
'amapMap': 'Amap',
'useAmapNavigation': 'Navigate with Amap',
'baiduMap': 'Baidu Maps',
'useBaiduNavigation': 'Navigate with Baidu Maps',
'googleMap': 'Google Maps',
'useGoogleNavigation': 'Navigate with Google Maps',
'appleMap': 'Apple Maps',
'useAppleNavigation': 'Navigate with Apple Maps',
'builtInNavigation': 'Built-in Navigation',
'useBuiltInNavigation': 'Navigate with built-in map',
'navigationStartFailed': 'Failed to start navigation',
'cannotPlayMusicListRetryLater':
'Cannot play music list, please try again later',
'cannotPlaySong': 'Cannot play song',
'openMapError': 'Error opening map',
'pleaseInstallAmapApp': 'Please install the Amap app first',
'pleaseInstallBaiduMapApp': 'Please install the Baidu Maps app first',
'appleMapStartFailed': 'Apple Maps failed to start',
'appleMapUnavailable': 'Apple Maps unavailable',
'openAppleMapError': 'Error opening Apple Maps',
// Agent模块 - 天气卡片
'weatherQuery': 'Upit o vremenskim uvjetima:',
'highest': 'Najviša',
@ -968,8 +1037,19 @@ const Map<String, String> hrHR = {
// 翻译模块 - 文本翻译
"languageDetectionFailed": "Language detection failed",
// 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'Disable Floating Window',
'enableFloatingWindow': 'Enable Floating Window',
'permissionTip': 'Permission Tip',
'micPermissionRequiredForRecording':
'Microphone permission is required for recording',
'deleteTranslationRecordError': 'Error deleting translation record: @error',
"translationFailed": "Translation failed",
"translating": "Translating",
"translate": "Translate",
"pleaseInputText": "Please input text",
"inputTextToTranslate": "Unesite tekst za prijevod",
"textTooLong": "Text too long, max 5000 characters",
// 翻译模块 - 历史记录
@ -1244,17 +1324,19 @@ const Map<String, String> hrHR = {
'permissionUtilConfirm': 'OK',
// 原生前台服务通知(Android)
'native.notification.appName': 'VOITRANS',
'native.notification.navigation.title': 'Navigacija u tijeku',
'native.notification.navigation.keepRunning': 'Navigacija, držite aplikaciju pokrenutom',
'native.notification.bleAgent.running': 'Glasovni asistent je pokrenut',
'native.notification.audioRecording.recording': 'Snimanje zvuka, dodirnite za povratak u aplikaciju',
'native.notification.music.waiting': 'Čekanje na reprodukciju',
'native.notification.music.previous': 'Prethodna',
'native.notification.music.next': 'Sljedeća',
'native.notification.music.play': 'Reproduciraj',
'native.notification.music.pause': 'Pauza',
'native.notification.qqMusic.playing': 'Reprodukcija glazbe',
'native.notification.appName': 'VOITRANS',
'native.notification.navigation.title': 'Navigacija u tijeku',
'native.notification.navigation.keepRunning':
'Navigacija, držite aplikaciju pokrenutom',
'native.notification.bleAgent.running': 'Glasovni asistent je pokrenut',
'native.notification.audioRecording.recording':
'Snimanje zvuka, dodirnite za povratak u aplikaciju',
'native.notification.music.waiting': 'Čekanje na reprodukciju',
'native.notification.music.previous': 'Prethodna',
'native.notification.music.next': 'Sljedeća',
'native.notification.music.play': 'Reproduciraj',
'native.notification.music.pause': 'Pauza',
'native.notification.qqMusic.playing': 'Reprodukcija glazbe',
// 版本更新
'newVersionFound': 'Pronađena nova verzija', // 版本更新对话框标题
@ -1396,6 +1478,59 @@ const Map<String, String> hrHR = {
"removeEarbudsEnsureBattery":
"Izvadite obje slušalice i provjerite je li baterija obje iznad 20%",
// OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': 'New version @version found',
'otaConfirmUpdateNow': 'Update now?',
'otaUpdate': 'Update',
'otaUpgradeSuccess': 'Upgrade Successful',
'otaUpgradeCompleteRepair':
'Firmware upgrade complete!\n\nDevice needs to be re-paired to work properly. Go to pairing page now?',
'otaPairLater': 'Pair Later',
'otaPairNow': 'Pair Now',
'okConfirm': 'OK',
// OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'Error checking BLE connection: @error',
'otaBleNotConnected': 'BLE Device Not Connected',
'otaBleNeedConnection':
'Firmware upgrade requires BLE device connection\nPlease ensure device is properly connected and try again',
'otaDeviceInfoUnavailableTitle': 'Device Info Unavailable',
'otaCannotGetDeviceInfo':
'Cannot get device info\nPlease reconnect device or try again later',
'otaBleCheckFailed': 'BLE Connection Check Failed',
'otaCannotGetDeviceInfoCheckConnection':
'Cannot get device info, please check device connection',
'otaCannotGetProductInfoWithName':
'Cannot get product info, device name: @deviceName',
'otaCannotGetBatteryInfo': 'Cannot get valid battery info',
'otaLowBattery': 'Low Battery',
'otaSingleBatteryLow':
'Device battery too low for firmware upgrade\nRequirement: battery must be above 20%\nCurrent: @ear @battery%\nPlease charge and try again',
'otaDoubleBatteryLow':
'Device battery too low for firmware upgrade\nRequirement: both earbuds must be above 20%\nCurrent: Left @left%, Right @right%\nPlease charge and try again',
'otaBatteryCheckFailed': 'Battery Check Failed',
// OTA升级模块 - 升级状态
'otaDefaultUpdateDesc':
'This update includes performance optimizations and bug fixes.',
'otaGetLatestVersionFailed': 'Failed to get latest version info',
'otaGetVersionInfoFailed': 'Failed to get version info',
'otaCheckingDeviceStatus': 'Checking device status...',
'otaDownloadFailedCheckNetwork':
'Download failed, please check network connection',
'otaDownloadFailed': 'Download Failed',
'otaPreparingConnection': 'Preparing device connection...',
'otaConnectingDevice': 'Connecting to device...',
'otaUpgradeStarted': 'OTA upgrade started...',
'otaUpgradeProgressWithPercent': 'Upgrade progress: @percent%',
'otaUpgradeSuccessComplete': 'Upgrade completed successfully',
'otaUpgradeFailedWithCode': 'Upgrade failed, error code: @code',
'otaUpgradeFailedTitle': 'Upgrade Failed',
'otaUpgradeFailedDesc':
'Please check device connection or update package, error code: @code',
'otaDeviceDisconnected': 'Device disconnected',
'otaDeviceConnected': 'Device connected',
// 音乐模块
"noMusic": "Nema glazbe", // 暂无音乐
"noPlayingMusic": "Nema glazbe koja se reproducira", // 暂无播放音乐

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

@ -1,5 +1,4 @@
const Map<String, String> huHU = {
// 通用
'continue': 'Folytatás',
'confirm': 'Megerősítés',
@ -172,6 +171,29 @@ const Map<String, String> huHU = {
'checkConnectionStatusFailed':
'A kapcsolat állapotának ellenőrzése sikertelen',
// 蓝牙扫描模块
'bleInitFailedWithError': 'Bluetooth initialization failed: @error',
'needBluetoothAndLocationPermission':
'Bluetooth and location permissions are required to scan devices',
'permissionRequestFailedWithError': 'Permission request failed: @error',
'needPermission': 'Permission Required',
'blePermissionDialogContent':
'This app requires Bluetooth and location permissions to scan devices. Please enable them in Settings.',
'needEnableBluetooth': 'Enable Bluetooth',
'enableBluetoothDialogContent':
'Please enable Bluetooth to scan and connect devices.',
'bleScanFailedWithError': 'Scan failed: @error',
'bleConnectionSuccess': 'Connection Successful',
'bleConnectedToDevice': 'Connected to @device',
'bleConnectionFailedWithError': 'Connection failed: @error',
'bleDisconnected': 'Disconnected',
'bleDeviceDisconnected': 'Device disconnected',
'bleDisconnectFailedWithError': 'Disconnect failed: @error',
'signalStrong': 'Strong',
'signalMedium': 'Medium',
'signalWeak': 'Weak',
'signalVeryWeak': 'Very Weak',
// 发现页
"searchAi": "AI funkciók keresése...",
"exploreSlogan": "Okos fülhallgatók, végtelen lehetőségek",
@ -246,60 +268,64 @@ const Map<String, String> huHU = {
'totalQuota': 'Total Quota',
'remaining': 'Remaining',
'featureDescription': 'Feature Description',
'paymentSuccess': 'Fizetés sikeres',
'paymentFailed': 'Fizetés sikertelen',
'gotIt': 'Értem',
'paymentFailedTryAgain': 'Fizetés sikertelen. Kérjük, próbálja újra.',
'selectPaymentMethod': 'Fizetési mód kiválasztása',
'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay',
'paypalPay': 'PayPal',
'appleIap': 'Apple IAP',
'googleIap': 'Google IAP',
'wechatOrderCreateFailed': 'WeChat Pay rendelés létrehozása sikertelen',
'alipayOrderCreateFailed': 'Alipay rendelés létrehozása sikertelen',
'appleOrderCreateFailed': 'Apple rendelés létrehozása sikertelen',
'googleOrderCreateFailed': 'Google rendelés létrehozása sikertelen',
'paypalOrderCreateFailed': 'PayPal rendelés létrehozása sikertelen',
'paymentException': 'Fizetési kivétel',
'paymentLaunchFailed': 'Fizetés indítása sikertelen',
'paymentExceptionWithError': 'Fizetési kivétel: @error',
'paymentProcessingCheckLater': 'A rendelése feldolgozás alatt áll. Kérjük, ellenőrizze később.',
'paymentResultQueryException': 'Nem sikerült lekérdezni a fizetés eredményét: @error',
'orderConfirmedQuotaRefreshed': 'Rendelés megerősítve. A kvótája frissült.',
'paymentCompletedConfirming': 'Fizetés befejezve. Megerősítés folyamatban…',
'paymentCancelled': 'Fizetés megszakítva',
'paypalOpenedCompleteInBrowser': 'PayPal megnyitva. Kérjük, fejezze be a fizetést a böngészőben.',
'paypalOpenFailed': 'Nem sikerült megnyitni a PayPal fizetési oldalt',
'paymentTestTitle': 'Fizetési teszt',
'paymentTestOrderInfo': 'Teszt rendelési információ',
'paymentTestProductId': 'Termékazonosító',
'paymentTestProductDescription': 'Termékleírás',
'paymentTestWechatDescription': 'WeChat Pay fizetési teszt',
'paymentTestAlipayDescription': 'Alipay fizetési teszt',
'paymentTestAmount': 'Összeg',
'paymentTestSelectAmount': 'Válassza ki a teszt összeget',
'paying': 'Fizetés...',
'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': 'Fizetés állapota',
'errorInfoWithMessage': 'Hiba: @message',
'retest': 'Újratesztelés',
'paymentTestInstructionsTitle': 'Útmutató',
'paymentTestInstructionsContent': '1. Válasszon egy teszt összeget (ajánlott: ¥0,01)\n2. Kattintson a fizetés gombra az indításhoz\n3. Fejezze be a fizetést a fizetési alkalmazásban\n4. Térjen vissza az eredmény ellenőrzéséhez',
'startingWechatPayment': 'WeChat Pay indítása...',
'startingAlipayPayment': 'Alipay indítása...',
'wechatPaymentSuccess': 'WeChat Pay sikeres!',
'wechatPaymentFailed': 'WeChat Pay sikertelen',
'wechatPaymentLaunchFailed': 'WeChat Pay indítása sikertelen',
'cannotLaunchWechatPayment': 'Nem sikerült elindítani a WeChat Pay-t',
'wechatPaymentException': 'WeChat Pay kivétel',
'wechatPaymentTestCompleted': 'WeChat Pay teszt befejezve',
'alipayPaymentSuccess': 'Alipay sikeres!',
'alipayPaymentFailed': 'Alipay sikertelen',
'alipayPaymentLaunchFailed': 'Alipay indítása sikertelen',
'cannotLaunchAlipayPayment': 'Nem sikerült elindítani az Alipay-t',
'alipayPaymentException': 'Alipay kivétel',
'paymentSuccess': 'Fizetés sikeres',
'paymentFailed': 'Fizetés sikertelen',
'gotIt': 'Értem',
'paymentFailedTryAgain': 'Fizetés sikertelen. Kérjük, próbálja újra.',
'selectPaymentMethod': 'Fizetési mód kiválasztása',
'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay',
'paypalPay': 'PayPal',
'appleIap': 'Apple IAP',
'googleIap': 'Google IAP',
'wechatOrderCreateFailed': 'WeChat Pay rendelés létrehozása sikertelen',
'alipayOrderCreateFailed': 'Alipay rendelés létrehozása sikertelen',
'appleOrderCreateFailed': 'Apple rendelés létrehozása sikertelen',
'googleOrderCreateFailed': 'Google rendelés létrehozása sikertelen',
'paypalOrderCreateFailed': 'PayPal rendelés létrehozása sikertelen',
'paymentException': 'Fizetési kivétel',
'paymentLaunchFailed': 'Fizetés indítása sikertelen',
'paymentExceptionWithError': 'Fizetési kivétel: @error',
'paymentProcessingCheckLater':
'A rendelése feldolgozás alatt áll. Kérjük, ellenőrizze később.',
'paymentResultQueryException':
'Nem sikerült lekérdezni a fizetés eredményét: @error',
'orderConfirmedQuotaRefreshed': 'Rendelés megerősítve. A kvótája frissült.',
'paymentCompletedConfirming': 'Fizetés befejezve. Megerősítés folyamatban…',
'paymentCancelled': 'Fizetés megszakítva',
'paypalOpenedCompleteInBrowser':
'PayPal megnyitva. Kérjük, fejezze be a fizetést a böngészőben.',
'paypalOpenFailed': 'Nem sikerült megnyitni a PayPal fizetési oldalt',
'paymentTestTitle': 'Fizetési teszt',
'paymentTestOrderInfo': 'Teszt rendelési információ',
'paymentTestProductId': 'Termékazonosító',
'paymentTestProductDescription': 'Termékleírás',
'paymentTestWechatDescription': 'WeChat Pay fizetési teszt',
'paymentTestAlipayDescription': 'Alipay fizetési teszt',
'paymentTestAmount': 'Összeg',
'paymentTestSelectAmount': 'Válassza ki a teszt összeget',
'paying': 'Fizetés...',
'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': 'Fizetés állapota',
'errorInfoWithMessage': 'Hiba: @message',
'retest': 'Újratesztelés',
'paymentTestInstructionsTitle': 'Útmutató',
'paymentTestInstructionsContent':
'1. Válasszon egy teszt összeget (ajánlott: ¥0,01)\n2. Kattintson a fizetés gombra az indításhoz\n3. Fejezze be a fizetést a fizetési alkalmazásban\n4. Térjen vissza az eredmény ellenőrzéséhez',
'startingWechatPayment': 'WeChat Pay indítása...',
'startingAlipayPayment': 'Alipay indítása...',
'wechatPaymentSuccess': 'WeChat Pay sikeres!',
'wechatPaymentFailed': 'WeChat Pay sikertelen',
'wechatPaymentLaunchFailed': 'WeChat Pay indítása sikertelen',
'cannotLaunchWechatPayment': 'Nem sikerült elindítani a WeChat Pay-t',
'wechatPaymentException': 'WeChat Pay kivétel',
'wechatPaymentTestCompleted': 'WeChat Pay teszt befejezve',
'alipayPaymentSuccess': 'Alipay sikeres!',
'alipayPaymentFailed': 'Alipay sikertelen',
'alipayPaymentLaunchFailed': 'Alipay indítása sikertelen',
'cannotLaunchAlipayPayment': 'Nem sikerült elindítani az Alipay-t',
'alipayPaymentException': 'Alipay kivétel',
"insufficientIntegral": "Insufficient integral",
"insufficientBalanceDesc":
'Insufficient balance, please go to the corresponding recharge page to recharge.',
@ -543,21 +569,22 @@ const Map<String, String> huHU = {
'selectSummaryTemplate': 'Select Summary Template',
'useThisTemplate': 'Use This Template',
'lastUsed': 'Last Used',
'create': 'Létrehozás',
'templateDetails': 'Sablon részletei',
'tag': 'Címke',
'description': 'Leírás',
'template': 'Sablon',
'deleteTemplate': 'Sablon törlése',
'deleteTemplateConfirm': 'Biztosan törölni szeretné ezt a sablont?',
'editTemplate': 'Sablon szerkesztése',
'createTemplate': 'Sablon létrehozása',
'name': 'Név',
'templateContentHint': 'Kérjük, adja meg a sablon tartalmát! Tipp: Kattintson a fenti AI gombra, hogy gyorsan generáljon sablontartalmat a megadott név és leírás alapján',
'inputNameHint': 'Kérjük, adjon meg nevet',
'inputDescHint': 'Kérjük, adjon meg leírást',
'custom': 'Egyéni',
'pleaseEnter': 'Kérjük, adja meg',
'create': 'Létrehozás',
'templateDetails': 'Sablon részletei',
'tag': 'Címke',
'description': 'Leírás',
'template': 'Sablon',
'deleteTemplate': 'Sablon törlése',
'deleteTemplateConfirm': 'Biztosan törölni szeretné ezt a sablont?',
'editTemplate': 'Sablon szerkesztése',
'createTemplate': 'Sablon létrehozása',
'name': 'Név',
'templateContentHint':
'Kérjük, adja meg a sablon tartalmát! Tipp: Kattintson a fenti AI gombra, hogy gyorsan generáljon sablontartalmat a megadott név és leírás alapján',
'inputNameHint': 'Kérjük, adjon meg nevet',
'inputDescHint': 'Kérjük, adjon meg leírást',
'custom': 'Egyéni',
'pleaseEnter': 'Kérjük, adja meg',
'viewAll': 'View All',
'recordingLanguage': 'Recording Language',
'chineseSimplified': 'Chinese Mandarin (Simplified)',
@ -580,7 +607,7 @@ const Map<String, String> huHU = {
'fileProcessingFailed': 'File processing failed: {filePath}, error: {error}',
// Meeting模块 - 思维导图
'saveMindMap': 'Gondolattérkép mentése',
'saveMindMap': 'Gondolattérkép mentése',
'shareMindMap': 'Share Mind Map',
'shareSuccess': 'Share Success',
@ -602,7 +629,7 @@ const Map<String, String> huHU = {
'exportSummary': 'Export Summary',
'exportAs': 'Export As',
'exportingPDF': 'Exporting PDF...',
'export': 'Exportálás',
'export': 'Exportálás',
// Meeting模块 - 发言者
'applyToAllParagraphs': 'Alkalmazás a beszélő összes bekezdésére',
@ -712,18 +739,18 @@ const Map<String, String> huHU = {
// Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Unknown Language',
'analysisFailed': 'Az elemzés sikertelen, kérjük, próbálja újra később',
'transcriptionFailed': 'Az átírás sikertelen, kérjük, próbálja újra később',
'summaryFailed': 'Az összefoglalás sikertelen, kérjük, próbálja újra később',
'summaryFailedShort': 'Összefoglalás sikertelen',
'transcriptionFailedShort': 'Átírás sikertelen',
'analysisFailed': 'Az elemzés sikertelen, kérjük, próbálja újra később',
'transcriptionFailed': 'Az átírás sikertelen, kérjük, próbálja újra később',
'summaryFailed': 'Az összefoglalás sikertelen, kérjük, próbálja újra később',
'summaryFailedShort': 'Összefoglalás sikertelen',
'transcriptionFailedShort': 'Átírás sikertelen',
// Meeting模块 - 播放器
'playerNotReady': 'A hanglejátszó nem áll készen, kérjük, várjon',
'playFailed': 'Lejátszás sikertelen',
'audioFileNotFound': 'Hangfájl nem található',
'fetchingAudio': 'Hanganyag letöltése a felhőből...',
'playerLoadFailed': 'A hanglejátszó betöltése sikertelen',
'playerNotReady': 'A hanglejátszó nem áll készen, kérjük, várjon',
'playFailed': 'Lejátszás sikertelen',
'audioFileNotFound': 'Hangfájl nem található',
'fetchingAudio': 'Hanganyag letöltése a felhőből...',
'playerLoadFailed': 'A hanglejátszó betöltése sikertelen',
// 设置页
"systemSettings": "Rendszerbeállítások",
@ -832,7 +859,8 @@ const Map<String, String> huHU = {
"swipeUpForMore": "Húzza felfelé a továbbiakért",
"callingTool": "I'm helping you, please wait!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断
'voice_interrupt_tip': 'Ha engedélyezve van: Az AI nem szakítható meg a hangjával beszéd közben, és egyszerre csak egy beszélgetési kört tud kezelni. Új kör indításához mondja ki az ébresztő szót.',
'voice_interrupt_tip':
'Ha engedélyezve van: Az AI nem szakítható meg a hangjával beszéd közben, és egyszerre csak egy beszélgetési kört tud kezelni. Új kör indításához mondja ki az ébresztő szót.',
// Agent模块 - 预设提示词
"presetMusic": "Play some music", // 来点音乐
@ -888,6 +916,13 @@ const Map<String, String> huHU = {
'Szeretnénk tudni a jelentés okát, leírhatja a tapasztalt problémát.',
'generatedByAi': 'AI által generált',
// Agent模块 - 工具调用
'toolCall': 'Tool Call',
'noResult': 'No Result',
'noToolCallContentToCopy': 'No tool call content to copy',
'toolCallDetails': 'Tool Call Details:',
'toolCallContentCopied': 'Tool call content copied to clipboard',
// Agent模块 - 音乐卡片
'recommendedMusic': 'Itt van néhány ajánlott zene:',
'playList': 'Lejátszási lista',
@ -908,6 +943,29 @@ const Map<String, String> huHU = {
"bicycling": "Kerékpározás",
"tsransit": "Tömegközlekedés",
// Agent模块 - 导航选择
'selectNavigationApp': 'Select Navigation App',
'amapMap': 'Amap',
'useAmapNavigation': 'Navigate with Amap',
'baiduMap': 'Baidu Maps',
'useBaiduNavigation': 'Navigate with Baidu Maps',
'googleMap': 'Google Maps',
'useGoogleNavigation': 'Navigate with Google Maps',
'appleMap': 'Apple Maps',
'useAppleNavigation': 'Navigate with Apple Maps',
'builtInNavigation': 'Built-in Navigation',
'useBuiltInNavigation': 'Navigate with built-in map',
'navigationStartFailed': 'Failed to start navigation',
'cannotPlayMusicListRetryLater':
'Cannot play music list, please try again later',
'cannotPlaySong': 'Cannot play song',
'openMapError': 'Error opening map',
'pleaseInstallAmapApp': 'Please install the Amap app first',
'pleaseInstallBaiduMapApp': 'Please install the Baidu Maps app first',
'appleMapStartFailed': 'Apple Maps failed to start',
'appleMapUnavailable': 'Apple Maps unavailable',
'openAppleMapError': 'Error opening Apple Maps',
// Agent模块 - 天气卡片
'weatherQuery': 'Időjárási körülmények lekérdezése:',
'highest': 'Legmagasabb',
@ -979,8 +1037,19 @@ const Map<String, String> huHU = {
// 翻译模块 - 文本翻译
"languageDetectionFailed": "Language detection failed",
// 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'Disable Floating Window',
'enableFloatingWindow': 'Enable Floating Window',
'permissionTip': 'Permission Tip',
'micPermissionRequiredForRecording':
'Microphone permission is required for recording',
'deleteTranslationRecordError': 'Error deleting translation record: @error',
"translationFailed": "Translation failed",
"translating": "Translating",
"translate": "Translate",
"pleaseInputText": "Please input text",
"inputTextToTranslate": "Kérjük, adja meg a lefordítandó szöveget",
"textTooLong": "Text too long, max 5000 characters",
// 翻译模块 - 历史记录
@ -1255,17 +1324,19 @@ const Map<String, String> huHU = {
'permissionUtilConfirm': 'OK',
// 原生前台服务通知(Android)
'native.notification.appName': 'VOITRANS',
'native.notification.navigation.title': 'Navigálás folyamatban',
'native.notification.navigation.keepRunning': 'Navigálás, tartsa nyitva az alkalmazást',
'native.notification.bleAgent.running': 'A hangasszisztens ügynök fut',
'native.notification.audioRecording.recording': 'Hangfelvétel folyamatban, koppintson az alkalmazásba való visszatéréshez',
'native.notification.music.waiting': 'Lejátszásra vár',
'native.notification.music.previous': 'Előző',
'native.notification.music.next': 'Következő',
'native.notification.music.play': 'Lejátszás',
'native.notification.music.pause': 'Szünet',
'native.notification.qqMusic.playing': 'Zene lejátszása',
'native.notification.appName': 'VOITRANS',
'native.notification.navigation.title': 'Navigálás folyamatban',
'native.notification.navigation.keepRunning':
'Navigálás, tartsa nyitva az alkalmazást',
'native.notification.bleAgent.running': 'A hangasszisztens ügynök fut',
'native.notification.audioRecording.recording':
'Hangfelvétel folyamatban, koppintson az alkalmazásba való visszatéréshez',
'native.notification.music.waiting': 'Lejátszásra vár',
'native.notification.music.previous': 'Előző',
'native.notification.music.next': 'Következő',
'native.notification.music.play': 'Lejátszás',
'native.notification.music.pause': 'Szünet',
'native.notification.qqMusic.playing': 'Zene lejátszása',
// 版本更新
'newVersionFound': 'Új verzió található', // 版本更新对话框标题
@ -1407,6 +1478,59 @@ const Map<String, String> huHU = {
"removeEarbudsEnsureBattery":
"Vegye ki mindkét fülhallgatót, és győződjön meg róla, hogy mindkettő akkumulátora 20% felett van",
// OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': 'New version @version found',
'otaConfirmUpdateNow': 'Update now?',
'otaUpdate': 'Update',
'otaUpgradeSuccess': 'Upgrade Successful',
'otaUpgradeCompleteRepair':
'Firmware upgrade complete!\n\nDevice needs to be re-paired to work properly. Go to pairing page now?',
'otaPairLater': 'Pair Later',
'otaPairNow': 'Pair Now',
'okConfirm': 'OK',
// OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'Error checking BLE connection: @error',
'otaBleNotConnected': 'BLE Device Not Connected',
'otaBleNeedConnection':
'Firmware upgrade requires BLE device connection\nPlease ensure device is properly connected and try again',
'otaDeviceInfoUnavailableTitle': 'Device Info Unavailable',
'otaCannotGetDeviceInfo':
'Cannot get device info\nPlease reconnect device or try again later',
'otaBleCheckFailed': 'BLE Connection Check Failed',
'otaCannotGetDeviceInfoCheckConnection':
'Cannot get device info, please check device connection',
'otaCannotGetProductInfoWithName':
'Cannot get product info, device name: @deviceName',
'otaCannotGetBatteryInfo': 'Cannot get valid battery info',
'otaLowBattery': 'Low Battery',
'otaSingleBatteryLow':
'Device battery too low for firmware upgrade\nRequirement: battery must be above 20%\nCurrent: @ear @battery%\nPlease charge and try again',
'otaDoubleBatteryLow':
'Device battery too low for firmware upgrade\nRequirement: both earbuds must be above 20%\nCurrent: Left @left%, Right @right%\nPlease charge and try again',
'otaBatteryCheckFailed': 'Battery Check Failed',
// OTA升级模块 - 升级状态
'otaDefaultUpdateDesc':
'This update includes performance optimizations and bug fixes.',
'otaGetLatestVersionFailed': 'Failed to get latest version info',
'otaGetVersionInfoFailed': 'Failed to get version info',
'otaCheckingDeviceStatus': 'Checking device status...',
'otaDownloadFailedCheckNetwork':
'Download failed, please check network connection',
'otaDownloadFailed': 'Download Failed',
'otaPreparingConnection': 'Preparing device connection...',
'otaConnectingDevice': 'Connecting to device...',
'otaUpgradeStarted': 'OTA upgrade started...',
'otaUpgradeProgressWithPercent': 'Upgrade progress: @percent%',
'otaUpgradeSuccessComplete': 'Upgrade completed successfully',
'otaUpgradeFailedWithCode': 'Upgrade failed, error code: @code',
'otaUpgradeFailedTitle': 'Upgrade Failed',
'otaUpgradeFailedDesc':
'Please check device connection or update package, error code: @code',
'otaDeviceDisconnected': 'Device disconnected',
'otaDeviceConnected': 'Device connected',
// 音乐模块
"noMusic": "Nincs zene", // 暂无音乐
"noPlayingMusic": "Nincs lejátszott zene", // 暂无播放音乐

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

File diff suppressed because it is too large

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

@ -169,6 +169,26 @@ const Map<String, String> isIS = {
'right': 'Hægri',
'checkConnectionStatusFailed': 'Athugun á tengingarstöðu mistókst',
// 蓝牙扫描模块
'bleInitFailedWithError': 'Bluetooth ræsing mistókst: @error',
'needBluetoothAndLocationPermission': 'Bluetooth- og staðsetningarheimildir þarf til að leita að tækjum',
'permissionRequestFailedWithError': 'Heimildarbeiðni mistókst: @error',
'needPermission': 'Heimild nauðsynleg',
'blePermissionDialogContent': 'Forritið þarf Bluetooth- og staðsetningarheimildir til að leita að tækjum. Virkjaðu þær í Stillingum.',
'needEnableBluetooth': 'Virkja Bluetooth',
'enableBluetoothDialogContent': 'Virkjaðu Bluetooth til að leita að og tengja tæki.',
'bleScanFailedWithError': 'Leit mistókst: @error',
'bleConnectionSuccess': 'Tenging tókst',
'bleConnectedToDevice': 'Tengt við @device',
'bleConnectionFailedWithError': 'Tenging mistókst: @error',
'bleDisconnected': 'Aftengt',
'bleDeviceDisconnected': 'Tæki aftengt',
'bleDisconnectFailedWithError': 'Aftenging mistókst: @error',
'signalStrong': 'Sterkt merki',
'signalMedium': 'Miðlungs merki',
'signalWeak': 'Veikt merki',
'signalVeryWeak': 'Mjög veikt merki',
// 发现页
"searchAi": "Leita að gervigreindareiginleikum...",
"exploreSlogan": "Snjallheyrnartól, óendanlegir möguleikar",
@ -883,6 +903,13 @@ const Map<String, String> isIS = {
'Við viljum vita hvers vegna þú ert að tilkynna, þú getur lýst vandamálinu sem þú lendir í.',
'generatedByAi': 'Myndað af gervigreind',
// Agent模块 - 工具调用
'toolCall': 'Verkfærakall',
'noResult': 'Engin niðurstaða',
'noToolCallContentToCopy': 'Ekkert verkfærakall til að afrita',
'toolCallDetails': 'Upplýsingar um verkfærakall:',
'toolCallContentCopied': 'Verkfærakall afritað á klippiborð',
// Agent模块 - 音乐卡片
'recommendedMusic': 'Hér eru nokkur lög sem mælt er með:',
'playList': 'Spilunarlisti',
@ -903,6 +930,28 @@ const Map<String, String> isIS = {
"bicycling": 'Hjólreiðar',
"tsransit": 'Almenningssamgöngur',
// Agent模块 - 导航选择
'selectNavigationApp': 'Veldu leiðsögn',
'amapMap': 'Amap',
'useAmapNavigation': 'Nota Amap leiðsögn',
'baiduMap': 'Baidu Maps',
'useBaiduNavigation': 'Nota Baidu Maps leiðsögn',
'googleMap': 'Google Maps',
'useGoogleNavigation': 'Nota Google Maps leiðsögn',
'appleMap': 'Apple Maps',
'useAppleNavigation': 'Nota Apple Maps leiðsögn',
'builtInNavigation': 'Innbyggð leiðsögn',
'useBuiltInNavigation': 'Nota innbyggða leiðsögn',
'navigationStartFailed': 'Ekki tókst að hefja leiðsögn',
'cannotPlayMusicListRetryLater': 'Get ekki spilað tónlistalista, reyndu aftur síðar',
'cannotPlaySong': 'Get ekki spilað lag',
'openMapError': 'Villa við opnun korts',
'pleaseInstallAmapApp': 'Settu upp Amap appið fyrst',
'pleaseInstallBaiduMapApp': 'Settu upp Baidu Maps appið fyrst',
'appleMapStartFailed': 'Apple Maps ræstist ekki',
'appleMapUnavailable': 'Apple Maps er ekki tiltækt',
'openAppleMapError': 'Villa við opnun Apple Maps',
// Agent模块 - 天气卡片
'weatherQuery': 'Fyrirspurn um veðurskilyrði:',
'highest': 'Hæst',
@ -975,8 +1024,18 @@ const Map<String, String> isIS = {
// 翻译模块 - 文本翻译
"languageDetectionFailed": "Language detection failed",
// 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'Slökkva á fljótandi glugga',
'enableFloatingWindow': 'Virkja fljótandi glugga',
'permissionTip': 'Heimildaábending',
'micPermissionRequiredForRecording': 'Hljóðnemaheimild þarf til upptöku',
'deleteTranslationRecordError': 'Villa við eyðingu þýðingarfærslu: @error',
"translationFailed": "Translation failed",
"translating": "Þýði",
"translate": "Þýða",
"pleaseInputText": "Please input text",
"inputTextToTranslate": "Vinsamlegast sláðu inn texta til að þýða",
"textTooLong": "Text too long, max 5000 characters",
// 翻译模块 - 历史记录
@ -1397,6 +1456,49 @@ const Map<String, String> isIS = {
"removeEarbudsEnsureBattery":
"Taktu báðar heyrnartólin úr og gakktu úr skugga um að rafhlaðan á báðum sé yfir 20%",
// OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': 'Ný útgáfa @version fannst',
'otaConfirmUpdateNow': 'Uppfæra núna?',
'otaUpdate': 'Uppfæra',
'otaUpgradeSuccess': 'Uppfærsla tókst',
'otaUpgradeCompleteRepair': 'Hugbúnaðaruppfærsla lokið!\n\nTækið þarf að para aftur. Fara á pörunarsíðu?',
'otaPairLater': 'Para síðar',
'otaPairNow': 'Para núna',
'okConfirm': 'OK',
// OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'Villa í BLE-athugun: @error',
'otaBleNotConnected': 'BLE-tæki ekki tengt',
'otaBleNeedConnection': 'Uppfærsla krefst BLE-tengingar\nGakktu úr skugga um að tækið sé tengt og reyndu aftur',
'otaDeviceInfoUnavailableTitle': 'Tækjaupplýsingar ekki tiltækar',
'otaCannotGetDeviceInfo': 'Get ekki sótt tækjaupplýsingar\nTengdu tækið aftur eða reyndu síðar',
'otaBleCheckFailed': 'BLE-athugun mistókst',
'otaCannotGetDeviceInfoCheckConnection': 'Get ekki sótt tækjaupplýsingar, athugaðu tengingu',
'otaCannotGetProductInfoWithName': 'Get ekki sótt vöruupplýsingar, tækjanafn: @deviceName',
'otaCannotGetBatteryInfo': 'Get ekki sótt rafhlöðuupplýsingar',
'otaLowBattery': 'Lítil rafhlaða',
'otaSingleBatteryLow': 'Rafhlaða of lítil fyrir uppfærslu\nKrafa: rafhlaða yfir 20%\nNúverandi: @ear @battery%\nHladdu og reyndu aftur',
'otaDoubleBatteryLow': 'Rafhlaða of lítil fyrir uppfærslu\nKrafa: báðir heyrnartólar yfir 20%\nNúverandi: Vinstri @left%, Hægri @right%\nHladdu og reyndu aftur',
'otaBatteryCheckFailed': 'Rafhlöðuathugun mistókst',
// OTA升级模块 - 升级状态
'otaDefaultUpdateDesc': 'Uppfærslan inniheldur afkastabætingar og villuleiðréttingar.',
'otaGetLatestVersionFailed': 'Ekki tókst að sækja nýjustu útgáfu',
'otaGetVersionInfoFailed': 'Ekki tókst að sækja útgáfuupplýsingar',
'otaCheckingDeviceStatus': 'Athuga stöðu tækis...',
'otaDownloadFailedCheckNetwork': 'Niðurhal mistókst, athugaðu nettengingu',
'otaDownloadFailed': 'Niðurhal mistókst',
'otaPreparingConnection': 'Undirbý tengingu...',
'otaConnectingDevice': 'Tengi við tæki...',
'otaUpgradeStarted': 'OTA-uppfærsla hafin...',
'otaUpgradeProgressWithPercent': 'Framvinda uppfærslu: @percent%',
'otaUpgradeSuccessComplete': 'Uppfærsla lokið',
'otaUpgradeFailedWithCode': 'Uppfærsla mistókst, villukóði: @code',
'otaUpgradeFailedTitle': 'Uppfærsla mistókst',
'otaUpgradeFailedDesc': 'Athugaðu tengingu eða uppfærslupakka, villukóði: @code',
'otaDeviceDisconnected': 'Tæki aftengt',
'otaDeviceConnected': 'Tæki tengt',
// 音乐模块
"noMusic": "Engin tónlist", // 暂无音乐
"noPlayingMusic": "Engin tónlist í spilun", // 暂无播放音乐

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

@ -1,5 +1,4 @@
const Map<String, String> itIT = {
// 通用
'continue': 'Continua',
'confirm': 'Conferma',
@ -172,6 +171,29 @@ const Map<String, String> itIT = {
'checkConnectionStatusFailed':
'Verifica dello stato della connessione fallita',
// 蓝牙扫描模块
'bleInitFailedWithError': 'Inizializzazione Bluetooth fallita: @error',
'needBluetoothAndLocationPermission':
'Sono necessari i permessi Bluetooth e posizione per scansionare i dispositivi',
'permissionRequestFailedWithError': 'Richiesta permessi fallita: @error',
'needPermission': 'Permesso necessario',
'blePermissionDialogContent':
'Questa app necessita dei permessi Bluetooth e posizione per scansionare i dispositivi. Attivarli nelle Impostazioni.',
'needEnableBluetooth': 'Attivare il Bluetooth',
'enableBluetoothDialogContent':
'Attivare il Bluetooth per scansionare e connettere i dispositivi.',
'bleScanFailedWithError': 'Scansione fallita: @error',
'bleConnectionSuccess': 'Connessione riuscita',
'bleConnectedToDevice': 'Connesso a @device',
'bleConnectionFailedWithError': 'Connessione fallita: @error',
'bleDisconnected': 'Disconnesso',
'bleDeviceDisconnected': 'Dispositivo disconnesso',
'bleDisconnectFailedWithError': 'Disconnessione fallita: @error',
'signalStrong': 'Forte',
'signalMedium': 'Medio',
'signalWeak': 'Debole',
'signalVeryWeak': 'Molto debole',
// 发现页
"searchAi": "Cerca funzioni AI...",
"exploreSlogan": "Auricolari intelligenti, possibilità infinite",
@ -247,60 +269,65 @@ const Map<String, String> itIT = {
'totalQuota': 'Total Quota',
'remaining': 'Remaining',
'featureDescription': 'Feature Description',
'paymentSuccess': 'Pagamento riuscito',
'paymentFailed': 'Pagamento non riuscito',
'gotIt': 'Capito',
'paymentFailedTryAgain': 'Pagamento non riuscito. Riprova.',
'selectPaymentMethod': 'Seleziona il metodo di pagamento',
'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay',
'paypalPay': 'PayPal',
'appleIap': 'Apple IAP',
'googleIap': 'Google IAP',
'wechatOrderCreateFailed': "Impossibile creare l'ordine WeChat",
'alipayOrderCreateFailed': "Impossibile creare l'ordine Alipay",
'appleOrderCreateFailed': "Impossibile creare l'ordine Apple",
'googleOrderCreateFailed': "Impossibile creare l'ordine Google",
'paypalOrderCreateFailed': "Impossibile creare l'ordine PayPal",
'paymentException': 'Eccezione di pagamento',
'paymentLaunchFailed': 'Avvio del pagamento non riuscito',
'paymentExceptionWithError': 'Eccezione di pagamento: @error',
'paymentProcessingCheckLater': 'Il tuo ordine è in fase di elaborazione. Controlla più tardi.',
'paymentResultQueryException': 'Impossibile interrogare il risultato del pagamento: @error',
'orderConfirmedQuotaRefreshed': 'Ordine confermato. La tua quota è stata aggiornata.',
'paymentCompletedConfirming': 'Pagamento completato. Conferma in corso…',
'paymentCancelled': 'Pagamento annullato',
'paypalOpenedCompleteInBrowser': 'PayPal aperto. Completa il pagamento nel tuo browser.',
'paypalOpenFailed': 'Impossibile aprire la pagina di pagamento PayPal',
'paymentTestTitle': 'Test di pagamento',
'paymentTestOrderInfo': 'Informazioni ordine di prova',
'paymentTestProductId': 'ID prodotto',
'paymentTestProductDescription': 'Descrizione del prodotto',
'paymentTestWechatDescription': 'Test di pagamento WeChat Pay',
'paymentTestAlipayDescription': 'Test di pagamento Alipay',
'paymentTestAmount': 'Importo',
'paymentTestSelectAmount': "Seleziona l'importo di prova",
'paying': 'Pagamento in corso...',
'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': 'Stato del pagamento',
'errorInfoWithMessage': 'Errore: @message',
'retest': 'Ripeti il test',
'paymentTestInstructionsTitle': 'Istruzioni',
'paymentTestInstructionsContent': "1. Seleziona un importo di prova (consigliato: ¥0,01)\n2. Clicca il pulsante di pagamento per iniziare\n3. Completa il pagamento nell'app di pagamento\n4. Torna per verificare il risultato",
'startingWechatPayment': 'Avvio di WeChat Pay...',
'startingAlipayPayment': 'Avvio di Alipay...',
'wechatPaymentSuccess': 'Pagamento WeChat Pay riuscito!',
'wechatPaymentFailed': 'Pagamento WeChat Pay non riuscito',
'wechatPaymentLaunchFailed': 'Impossibile avviare WeChat Pay',
'cannotLaunchWechatPayment': 'Impossibile avviare WeChat Pay',
'wechatPaymentException': 'Eccezione WeChat Pay',
'wechatPaymentTestCompleted': 'Test di pagamento WeChat Pay completato',
'alipayPaymentSuccess': 'Pagamento Alipay riuscito!',
'alipayPaymentFailed': 'Pagamento Alipay non riuscito',
'alipayPaymentLaunchFailed': 'Impossibile avviare Alipay',
'cannotLaunchAlipayPayment': 'Impossibile avviare Alipay',
'alipayPaymentException': 'Eccezione Alipay',
'paymentSuccess': 'Pagamento riuscito',
'paymentFailed': 'Pagamento non riuscito',
'gotIt': 'Capito',
'paymentFailedTryAgain': 'Pagamento non riuscito. Riprova.',
'selectPaymentMethod': 'Seleziona il metodo di pagamento',
'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay',
'paypalPay': 'PayPal',
'appleIap': 'Apple IAP',
'googleIap': 'Google IAP',
'wechatOrderCreateFailed': "Impossibile creare l'ordine WeChat",
'alipayOrderCreateFailed': "Impossibile creare l'ordine Alipay",
'appleOrderCreateFailed': "Impossibile creare l'ordine Apple",
'googleOrderCreateFailed': "Impossibile creare l'ordine Google",
'paypalOrderCreateFailed': "Impossibile creare l'ordine PayPal",
'paymentException': 'Eccezione di pagamento',
'paymentLaunchFailed': 'Avvio del pagamento non riuscito',
'paymentExceptionWithError': 'Eccezione di pagamento: @error',
'paymentProcessingCheckLater':
'Il tuo ordine è in fase di elaborazione. Controlla più tardi.',
'paymentResultQueryException':
'Impossibile interrogare il risultato del pagamento: @error',
'orderConfirmedQuotaRefreshed':
'Ordine confermato. La tua quota è stata aggiornata.',
'paymentCompletedConfirming': 'Pagamento completato. Conferma in corso…',
'paymentCancelled': 'Pagamento annullato',
'paypalOpenedCompleteInBrowser':
'PayPal aperto. Completa il pagamento nel tuo browser.',
'paypalOpenFailed': 'Impossibile aprire la pagina di pagamento PayPal',
'paymentTestTitle': 'Test di pagamento',
'paymentTestOrderInfo': 'Informazioni ordine di prova',
'paymentTestProductId': 'ID prodotto',
'paymentTestProductDescription': 'Descrizione del prodotto',
'paymentTestWechatDescription': 'Test di pagamento WeChat Pay',
'paymentTestAlipayDescription': 'Test di pagamento Alipay',
'paymentTestAmount': 'Importo',
'paymentTestSelectAmount': "Seleziona l'importo di prova",
'paying': 'Pagamento in corso...',
'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': 'Stato del pagamento',
'errorInfoWithMessage': 'Errore: @message',
'retest': 'Ripeti il test',
'paymentTestInstructionsTitle': 'Istruzioni',
'paymentTestInstructionsContent':
"1. Seleziona un importo di prova (consigliato: ¥0,01)\n2. Clicca il pulsante di pagamento per iniziare\n3. Completa il pagamento nell'app di pagamento\n4. Torna per verificare il risultato",
'startingWechatPayment': 'Avvio di WeChat Pay...',
'startingAlipayPayment': 'Avvio di Alipay...',
'wechatPaymentSuccess': 'Pagamento WeChat Pay riuscito!',
'wechatPaymentFailed': 'Pagamento WeChat Pay non riuscito',
'wechatPaymentLaunchFailed': 'Impossibile avviare WeChat Pay',
'cannotLaunchWechatPayment': 'Impossibile avviare WeChat Pay',
'wechatPaymentException': 'Eccezione WeChat Pay',
'wechatPaymentTestCompleted': 'Test di pagamento WeChat Pay completato',
'alipayPaymentSuccess': 'Pagamento Alipay riuscito!',
'alipayPaymentFailed': 'Pagamento Alipay non riuscito',
'alipayPaymentLaunchFailed': 'Impossibile avviare Alipay',
'cannotLaunchAlipayPayment': 'Impossibile avviare Alipay',
'alipayPaymentException': 'Eccezione Alipay',
"insufficientIntegral": "Insufficient integral",
"insufficientBalanceDesc":
'Insufficient balance, please go to the corresponding recharge page to recharge.',
@ -502,16 +529,24 @@ const Map<String, String> itIT = {
'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.', // 保存录音失败,请重试
'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.', // 正在后台录音,点击返回应用
'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.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。
'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...',
@ -536,21 +571,22 @@ const Map<String, String> itIT = {
'selectSummaryTemplate': 'Select Summary Template',
'useThisTemplate': 'Use This Template',
'lastUsed': 'Last Used',
'create': 'Crea',
'templateDetails': 'Dettagli del modello',
'tag': 'Etichetta',
'description': 'Descrizione',
'template': 'Modello',
'deleteTemplate': 'Elimina modello',
'deleteTemplateConfirm': 'Sei sicuro di voler eliminare questo modello?',
'editTemplate': 'Modifica modello',
'createTemplate': 'Crea modello',
'name': 'Nome',
'templateContentHint': 'Inserisci il contenuto del modello! Suggerimento: Clicca il pulsante IA qui sopra per generare rapidamente il contenuto del modello in base al nome e alla descrizione inseriti',
'inputNameHint': 'Inserisci un nome',
'inputDescHint': 'Inserisci una descrizione',
'custom': 'Personalizzato',
'pleaseEnter': 'Si prega di inserire',
'create': 'Crea',
'templateDetails': 'Dettagli del modello',
'tag': 'Etichetta',
'description': 'Descrizione',
'template': 'Modello',
'deleteTemplate': 'Elimina modello',
'deleteTemplateConfirm': 'Sei sicuro di voler eliminare questo modello?',
'editTemplate': 'Modifica modello',
'createTemplate': 'Crea modello',
'name': 'Nome',
'templateContentHint':
'Inserisci il contenuto del modello! Suggerimento: Clicca il pulsante IA qui sopra per generare rapidamente il contenuto del modello in base al nome e alla descrizione inseriti',
'inputNameHint': 'Inserisci un nome',
'inputDescHint': 'Inserisci una descrizione',
'custom': 'Personalizzato',
'pleaseEnter': 'Si prega di inserire',
'viewAll': 'View All',
'recordingLanguage': 'Recording Language',
'chineseSimplified': 'Chinese Mandarin (Simplified)',
@ -573,7 +609,7 @@ const Map<String, String> itIT = {
'fileProcessingFailed': 'File processing failed: {filePath}, error: {error}',
// Meeting模块 - 思维导图
'saveMindMap': 'Salva mappa mentale',
'saveMindMap': 'Salva mappa mentale',
'shareMindMap': 'Share Mind Map',
'shareSuccess': 'Share Success',
@ -595,7 +631,7 @@ const Map<String, String> itIT = {
'exportSummary': 'Export Summary',
'exportAs': 'Export As',
'exportingPDF': 'Exporting PDF...',
'export': 'Esporta',
'export': 'Esporta',
// Meeting模块 - 发言者
'applyToAllParagraphs': 'Applica a tutti i paragrafi di questo relatore',
@ -705,18 +741,18 @@ const Map<String, String> itIT = {
// Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Unknown Language',
'analysisFailed': 'Analisi non riuscita, riprova più tardi',
'transcriptionFailed': 'Trascrizione non riuscita, riprova più tardi',
'summaryFailed': 'Riepilogo non riuscito, riprova più tardi',
'summaryFailedShort': 'Riepilogo non riuscito',
'transcriptionFailedShort': 'Trascrizione non riuscita',
'analysisFailed': 'Analisi non riuscita, riprova più tardi',
'transcriptionFailed': 'Trascrizione non riuscita, riprova più tardi',
'summaryFailed': 'Riepilogo non riuscito, riprova più tardi',
'summaryFailedShort': 'Riepilogo non riuscito',
'transcriptionFailedShort': 'Trascrizione non riuscita',
// Meeting模块 - 播放器
'playerNotReady': 'Il lettore audio non è pronto, attendere',
'playFailed': 'Riproduzione non riuscita',
'audioFileNotFound': 'File audio non trovato',
'fetchingAudio': 'Recupero audio dal cloud...',
'playerLoadFailed': 'Caricamento del lettore audio non riuscito',
'playerNotReady': 'Il lettore audio non è pronto, attendere',
'playFailed': 'Riproduzione non riuscita',
'audioFileNotFound': 'File audio non trovato',
'fetchingAudio': 'Recupero audio dal cloud...',
'playerLoadFailed': 'Caricamento del lettore audio non riuscito',
// 设置页
"systemSettings": "Impostazioni di sistema",
@ -827,7 +863,8 @@ const Map<String, String> itIT = {
"swipeUpForMore": "Scorri verso l'alto per vedere di più",
"callingTool": "I'm helping you, please wait!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断
'voice_interrupt_tip': "Quando abilitato: l'IA non verrà interrotta dalla tua voce mentre parla e potrà gestire solo un turno di conversazione alla volta. Per iniziare un nuovo turno, basta pronunciare la parola di attivazione.",
'voice_interrupt_tip':
"Quando abilitato: l'IA non verrà interrotta dalla tua voce mentre parla e potrà gestire solo un turno di conversazione alla volta. Per iniziare un nuovo turno, basta pronunciare la parola di attivazione.",
// Agent模块 - 预设提示词
"presetMusic": "Play some music", // 来点音乐
@ -884,6 +921,14 @@ const Map<String, String> itIT = {
'Vogliamo sapere perché stai segnalando, puoi descrivere il problema che hai riscontrato.',
'generatedByAi': 'Generato da AI',
// Agent模块 - 工具调用
'toolCall': 'Chiamata strumento',
'noResult': 'Nessun risultato',
'noToolCallContentToCopy':
'Nessun contenuto della chiamata strumento da copiare',
'toolCallDetails': 'Dettagli chiamata strumento:',
'toolCallContentCopied': 'Contenuto copiato negli appunti',
// Agent模块 - 音乐卡片
'recommendedMusic': 'Ecco alcuni brani musicali consigliati:',
'playList': 'Playlist',
@ -904,6 +949,29 @@ const Map<String, String> itIT = {
"bicycling": "In bicicletta",
"tsransit": "Trasporto pubblico",
// Agent模块 - 导航选择
'selectNavigationApp': 'Seleziona app di navigazione',
'amapMap': 'Amap',
'useAmapNavigation': 'Naviga con Amap',
'baiduMap': 'Baidu Maps',
'useBaiduNavigation': 'Naviga con Baidu Maps',
'googleMap': 'Google Maps',
'useGoogleNavigation': 'Naviga con Google Maps',
'appleMap': 'Apple Maps',
'useAppleNavigation': 'Naviga con Apple Maps',
'builtInNavigation': 'Navigazione integrata',
'useBuiltInNavigation': 'Naviga con mappa integrata',
'navigationStartFailed': 'Avvio navigazione fallito',
'cannotPlayMusicListRetryLater':
'Impossibile riprodurre la playlist, riprovare piu tardi',
'cannotPlaySong': 'Impossibile riprodurre il brano',
'openMapError': 'Errore durante l apertura della mappa',
'pleaseInstallAmapApp': 'Installare prima l app Amap',
'pleaseInstallBaiduMapApp': 'Installare prima l app Baidu Maps',
'appleMapStartFailed': 'Avvio Apple Maps fallito',
'appleMapUnavailable': 'Apple Maps non disponibile',
'openAppleMapError': 'Errore durante l apertura di Apple Maps',
// Agent模块 - 天气卡片
'weatherQuery': 'Interrogazione delle condizioni meteorologiche:',
'highest': 'Massima',
@ -976,8 +1044,20 @@ const Map<String, String> itIT = {
// 翻译模块 - 文本翻译
"languageDetectionFailed": "Language detection failed",
// 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'Disattiva finestra mobile',
'enableFloatingWindow': 'Attiva finestra mobile',
'permissionTip': 'Suggerimento permessi',
'micPermissionRequiredForRecording':
'Permesso microfono necessario per la registrazione',
'deleteTranslationRecordError':
'Errore durante l eliminazione del record di traduzione: @error',
"translationFailed": "Translation failed",
"translating": "Traduzione in corso",
"translate": "Traduci",
"pleaseInputText": "Please input text",
"inputTextToTranslate": "Inserisci il testo da tradurre",
"textTooLong": "Text too long, max 5000 characters",
// 翻译模块 - 历史记录
@ -1256,17 +1336,20 @@ const Map<String, String> itIT = {
'permissionUtilConfirm': 'OK',
// 原生前台服务通知(Android)
'native.notification.appName': 'VOITRANS',
'native.notification.navigation.title': 'Navigazione in corso',
'native.notification.navigation.keepRunning': "Navigazione in corso, mantieni l'app attiva",
'native.notification.bleAgent.running': "L'agente assistente vocale è in esecuzione",
'native.notification.audioRecording.recording': "Registrazione audio in corso, tocca per tornare all'app",
'native.notification.music.waiting': 'In attesa di riproduzione',
'native.notification.music.previous': 'Indietro',
'native.notification.music.next': 'Avanti',
'native.notification.music.play': 'Riproduci',
'native.notification.music.pause': 'Pausa',
'native.notification.qqMusic.playing': 'Riproduzione musica in corso',
'native.notification.appName': 'VOITRANS',
'native.notification.navigation.title': 'Navigazione in corso',
'native.notification.navigation.keepRunning':
"Navigazione in corso, mantieni l'app attiva",
'native.notification.bleAgent.running':
"L'agente assistente vocale è in esecuzione",
'native.notification.audioRecording.recording':
"Registrazione audio in corso, tocca per tornare all'app",
'native.notification.music.waiting': 'In attesa di riproduzione',
'native.notification.music.previous': 'Indietro',
'native.notification.music.next': 'Avanti',
'native.notification.music.play': 'Riproduci',
'native.notification.music.pause': 'Pausa',
'native.notification.qqMusic.playing': 'Riproduzione musica in corso',
// 版本更新
'newVersionFound': 'Nuova versione trovata', // 版本更新对话框标题
@ -1408,6 +1491,59 @@ const Map<String, String> itIT = {
"removeEarbudsEnsureBattery":
"Rimuovi entrambi gli auricolari e assicurati che la batteria di entrambi sia superiore al 20%",
// OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': 'Nuova versione @version trovata',
'otaConfirmUpdateNow': 'Aggiornare ora?',
'otaUpdate': 'Aggiorna',
'otaUpgradeSuccess': 'Aggiornamento riuscito',
'otaUpgradeCompleteRepair':
'Aggiornamento completato!\n\nIl dispositivo deve essere riassociato. Andare alla pagina di associazione?',
'otaPairLater': 'Associa dopo',
'otaPairNow': 'Associa ora',
'okConfirm': 'OK',
// OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'Errore nella verifica connessione BLE: @error',
'otaBleNotConnected': 'Dispositivo BLE non connesso',
'otaBleNeedConnection':
'Connessione BLE richiesta\nAssicurarsi che il dispositivo sia connesso e riprovare',
'otaDeviceInfoUnavailableTitle': 'Info dispositivo non disponibili',
'otaCannotGetDeviceInfo':
'Cannot get device info\nPlease reconnect device or try again later',
'otaBleCheckFailed': 'Verifica connessione BLE fallita',
'otaCannotGetDeviceInfoCheckConnection':
'Impossibile ottenere info dispositivo, verificare la connessione',
'otaCannotGetProductInfoWithName':
'Impossibile ottenere info prodotto, nome dispositivo: @deviceName',
'otaCannotGetBatteryInfo': 'Impossibile ottenere info batteria valide',
'otaLowBattery': 'Batteria scarica',
'otaSingleBatteryLow':
'Batteria troppo scarica\nRequisito: superiore al 20%\nAttuale: @ear @battery%\nCaricare e riprovare',
'otaDoubleBatteryLow':
'Batteria troppo scarica\nRequisito: entrambi gli auricolari superiori al 20%\nAttuale: Sinistro @left%, Destro @right%\nCaricare e riprovare',
'otaBatteryCheckFailed': 'Verifica batteria fallita',
// OTA升级模块 - 升级状态
'otaDefaultUpdateDesc':
'Questo aggiornamento include ottimizzazioni delle prestazioni e correzioni di bug.',
'otaGetLatestVersionFailed': 'Impossibile ottenere la versione piu recente',
'otaGetVersionInfoFailed': 'Impossibile ottenere le info di versione',
'otaCheckingDeviceStatus': 'Verifica stato dispositivo...',
'otaDownloadFailedCheckNetwork':
'Download fallito, verificare la connessione di rete',
'otaDownloadFailed': 'Download fallito',
'otaPreparingConnection': 'Preparazione connessione...',
'otaConnectingDevice': 'Connessione al dispositivo...',
'otaUpgradeStarted': 'Aggiornamento OTA avviato...',
'otaUpgradeProgressWithPercent': 'Progresso: @percent%',
'otaUpgradeSuccessComplete': 'Aggiornamento completato con successo',
'otaUpgradeFailedWithCode': 'Aggiornamento fallito, codice errore: @code',
'otaUpgradeFailedTitle': 'Aggiornamento fallito',
'otaUpgradeFailedDesc':
'Verificare connessione o pacchetto di aggiornamento, codice: @code',
'otaDeviceDisconnected': 'Dispositivo disconnesso',
'otaDeviceConnected': 'Dispositivo connesso',
// 音乐模块
"noMusic": "Nessuna musica", // 暂无音乐
"noPlayingMusic": "Nessuna musica in riproduzione", // 暂无播放音乐

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

@ -1,5 +1,4 @@
const Map<String, String> jaJP = {
// 通用
'continue': '続ける',
'confirm': '確認',
@ -160,6 +159,27 @@ const Map<String, String> jaJP = {
'right': '右',
'checkConnectionStatusFailed': '接続状態の確認に失敗',
// 蓝牙扫描模块
'bleInitFailedWithError': 'Bluetoothの初期化に失敗しました: @error',
'needBluetoothAndLocationPermission': 'デバイスをスキャンするにはBluetoothと位置情報の権限が必要です',
'permissionRequestFailedWithError': '権限リクエストが失敗しました: @error',
'needPermission': '権限が必要',
'blePermissionDialogContent':
'デバイスをスキャンするにはBluetoothと位置情報の権限が必要です。設定から有効にしてください。',
'needEnableBluetooth': 'Bluetoothを有効にしてください',
'enableBluetoothDialogContent': 'デバイスをスキャン・接続するにはBluetoothを有効にしてください。',
'bleScanFailedWithError': 'スキャン失敗: @error',
'bleConnectionSuccess': '接続成功',
'bleConnectedToDevice': '@device に接続しました',
'bleConnectionFailedWithError': '接続失敗: @error',
'bleDisconnected': '切断されました',
'bleDeviceDisconnected': 'デバイスが切断されました',
'bleDisconnectFailedWithError': '切断失敗: @error',
'signalStrong': '強い',
'signalMedium': '普通',
'signalWeak': '弱い',
'signalVeryWeak': '非常に弱い',
// 发现页
"searchAi": "AI機能を検索...",
"exploreSlogan": "スマートイヤホン、無限の可能性",
@ -234,60 +254,61 @@ const Map<String, String> jaJP = {
'totalQuota': 'Total Quota',
'remaining': 'Remaining',
'featureDescription': 'Feature Description',
'paymentSuccess': '支払い成功',
'paymentFailed': '支払い失敗',
'gotIt': '了解',
'paymentFailedTryAgain': '支払いに失敗しました。もう一度お試しください。',
'selectPaymentMethod': '支払い方法を選択',
'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay',
'paypalPay': 'PayPal',
'appleIap': 'Apple IAP',
'googleIap': 'Google IAP',
'wechatOrderCreateFailed': 'WeChat Pay注文の作成に失敗しました',
'alipayOrderCreateFailed': 'Alipay注文の作成に失敗しました',
'appleOrderCreateFailed': 'Apple注文の作成に失敗しました',
'googleOrderCreateFailed': 'Google注文の作成に失敗しました',
'paypalOrderCreateFailed': 'PayPal注文の作成に失敗しました',
'paymentException': '支払い例外',
'paymentLaunchFailed': '支払いの起動に失敗しました',
'paymentExceptionWithError': '支払い例外:@error',
'paymentProcessingCheckLater': 'ご注文は処理中です。後で確認してください。',
'paymentResultQueryException': '支払い結果の照会に失敗しました:@error',
'orderConfirmedQuotaRefreshed': '注文が確認されました。クォータが更新されました。',
'paymentCompletedConfirming': '支払い完了。確認中…',
'paymentCancelled': '支払いがキャンセルされました',
'paypalOpenedCompleteInBrowser': 'PayPalが開きました。ブラウザで支払いを完了してください。',
'paypalOpenFailed': 'PayPal支払いページを開けません',
'paymentTestTitle': '支払いテスト',
'paymentTestOrderInfo': 'テスト注文情報',
'paymentTestProductId': '商品ID',
'paymentTestProductDescription': '商品説明',
'paymentTestWechatDescription': 'WeChat Pay支払いテスト',
'paymentTestAlipayDescription': 'Alipay支払いテスト',
'paymentTestAmount': '金額',
'paymentTestSelectAmount': 'テスト金額を選択',
'paying': '支払い中...',
'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': '支払い状況',
'errorInfoWithMessage': 'エラー:@message',
'retest': '再テスト',
'paymentTestInstructionsTitle': '手順',
'paymentTestInstructionsContent': '1. テスト金額を選択してください(推奨:¥0.01)\n2. 支払いボタンをクリックして開始\n3. 支払いアプリで支払いを完了\n4. 戻って結果を確認',
'startingWechatPayment': 'WeChat Payを起動中...',
'startingAlipayPayment': 'Alipayを起動中...',
'wechatPaymentSuccess': 'WeChat Pay支払い成功!',
'wechatPaymentFailed': 'WeChat Pay支払い失敗',
'wechatPaymentLaunchFailed': 'WeChat Payの起動に失敗しました',
'cannotLaunchWechatPayment': 'WeChat Payを起動できません',
'wechatPaymentException': 'WeChat Pay例外',
'wechatPaymentTestCompleted': 'WeChat Pay支払いテストが完了しました',
'alipayPaymentSuccess': 'Alipay支払い成功!',
'alipayPaymentFailed': 'Alipay支払い失敗',
'alipayPaymentLaunchFailed': 'Alipayの起動に失敗しました',
'cannotLaunchAlipayPayment': 'Alipayを起動できません',
'alipayPaymentException': 'Alipay例外',
'paymentSuccess': '支払い成功',
'paymentFailed': '支払い失敗',
'gotIt': '了解',
'paymentFailedTryAgain': '支払いに失敗しました。もう一度お試しください。',
'selectPaymentMethod': '支払い方法を選択',
'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay',
'paypalPay': 'PayPal',
'appleIap': 'Apple IAP',
'googleIap': 'Google IAP',
'wechatOrderCreateFailed': 'WeChat Pay注文の作成に失敗しました',
'alipayOrderCreateFailed': 'Alipay注文の作成に失敗しました',
'appleOrderCreateFailed': 'Apple注文の作成に失敗しました',
'googleOrderCreateFailed': 'Google注文の作成に失敗しました',
'paypalOrderCreateFailed': 'PayPal注文の作成に失敗しました',
'paymentException': '支払い例外',
'paymentLaunchFailed': '支払いの起動に失敗しました',
'paymentExceptionWithError': '支払い例外:@error',
'paymentProcessingCheckLater': 'ご注文は処理中です。後で確認してください。',
'paymentResultQueryException': '支払い結果の照会に失敗しました:@error',
'orderConfirmedQuotaRefreshed': '注文が確認されました。クォータが更新されました。',
'paymentCompletedConfirming': '支払い完了。確認中…',
'paymentCancelled': '支払いがキャンセルされました',
'paypalOpenedCompleteInBrowser': 'PayPalが開きました。ブラウザで支払いを完了してください。',
'paypalOpenFailed': 'PayPal支払いページを開けません',
'paymentTestTitle': '支払いテスト',
'paymentTestOrderInfo': 'テスト注文情報',
'paymentTestProductId': '商品ID',
'paymentTestProductDescription': '商品説明',
'paymentTestWechatDescription': 'WeChat Pay支払いテスト',
'paymentTestAlipayDescription': 'Alipay支払いテスト',
'paymentTestAmount': '金額',
'paymentTestSelectAmount': 'テスト金額を選択',
'paying': '支払い中...',
'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': '支払い状況',
'errorInfoWithMessage': 'エラー:@message',
'retest': '再テスト',
'paymentTestInstructionsTitle': '手順',
'paymentTestInstructionsContent':
'1. テスト金額を選択してください(推奨:¥0.01)\n2. 支払いボタンをクリックして開始\n3. 支払いアプリで支払いを完了\n4. 戻って結果を確認',
'startingWechatPayment': 'WeChat Payを起動中...',
'startingAlipayPayment': 'Alipayを起動中...',
'wechatPaymentSuccess': 'WeChat Pay支払い成功!',
'wechatPaymentFailed': 'WeChat Pay支払い失敗',
'wechatPaymentLaunchFailed': 'WeChat Payの起動に失敗しました',
'cannotLaunchWechatPayment': 'WeChat Payを起動できません',
'wechatPaymentException': 'WeChat Pay例外',
'wechatPaymentTestCompleted': 'WeChat Pay支払いテストが完了しました',
'alipayPaymentSuccess': 'Alipay支払い成功!',
'alipayPaymentFailed': 'Alipay支払い失敗',
'alipayPaymentLaunchFailed': 'Alipayの起動に失敗しました',
'cannotLaunchAlipayPayment': 'Alipayを起動できません',
'alipayPaymentException': 'Alipay例外',
"insufficientIntegral": "Insufficient integral",
"insufficientBalanceDesc":
'Insufficient balance, please go to the corresponding recharge page to recharge.',
@ -526,21 +547,22 @@ const Map<String, String> jaJP = {
'selectSummaryTemplate': 'Select Summary Template',
'useThisTemplate': 'Use This Template',
'lastUsed': 'Last Used',
'create': '作成',
'templateDetails': 'テンプレートの詳細',
'tag': 'タグ',
'description': '説明',
'template': 'テンプレート',
'deleteTemplate': 'テンプレートを削除',
'deleteTemplateConfirm': 'このテンプレートを削除してもよろしいですか?',
'editTemplate': 'テンプレートを編集',
'createTemplate': 'テンプレートを作成',
'name': '名前',
'templateContentHint': 'テンプレートの内容を入力してください!ヒント:上のAIボタンをクリックすると、入力した名前と説明に基づいてテンプレートの内容をすばやく生成できます',
'inputNameHint': '名前を入力してください',
'inputDescHint': '説明を入力してください',
'custom': 'カスタム',
'pleaseEnter': '入力してください',
'create': '作成',
'templateDetails': 'テンプレートの詳細',
'tag': 'タグ',
'description': '説明',
'template': 'テンプレート',
'deleteTemplate': 'テンプレートを削除',
'deleteTemplateConfirm': 'このテンプレートを削除してもよろしいですか?',
'editTemplate': 'テンプレートを編集',
'createTemplate': 'テンプレートを作成',
'name': '名前',
'templateContentHint':
'テンプレートの内容を入力してください!ヒント:上のAIボタンをクリックすると、入力した名前と説明に基づいてテンプレートの内容をすばやく生成できます',
'inputNameHint': '名前を入力してください',
'inputDescHint': '説明を入力してください',
'custom': 'カスタム',
'pleaseEnter': '入力してください',
'viewAll': 'View All',
'recordingLanguage': 'Recording Language',
'chineseSimplified': 'Chinese Mandarin (Simplified)',
@ -563,7 +585,7 @@ const Map<String, String> jaJP = {
'fileProcessingFailed': 'File processing failed: {filePath}, error: {error}',
// Meeting模块 - 思维导图
'saveMindMap': 'マインドマップを保存',
'saveMindMap': 'マインドマップを保存',
'shareMindMap': 'Share Mind Map',
'shareSuccess': 'Share Success',
@ -585,7 +607,7 @@ const Map<String, String> jaJP = {
'exportSummary': 'Export Summary',
'exportAs': 'Export As',
'exportingPDF': 'Exporting PDF...',
'export': 'エクスポート',
'export': 'エクスポート',
// Meeting模块 - 发言者
'applyToAllParagraphs': 'この話者のすべての段落に適用',
@ -694,18 +716,18 @@ const Map<String, String> jaJP = {
// Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Unknown Language',
'analysisFailed': '分析に失敗しました。後でもう一度お試しください',
'transcriptionFailed': '文字起こしに失敗しました。後でもう一度お試しください',
'summaryFailed': '要約に失敗しました。後でもう一度お試しください',
'summaryFailedShort': '要約失敗',
'transcriptionFailedShort': '文字起こし失敗',
'analysisFailed': '分析に失敗しました。後でもう一度お試しください',
'transcriptionFailed': '文字起こしに失敗しました。後でもう一度お試しください',
'summaryFailed': '要約に失敗しました。後でもう一度お試しください',
'summaryFailedShort': '要約失敗',
'transcriptionFailedShort': '文字起こし失敗',
// Meeting模块 - 播放器
'playerNotReady': 'オーディオプレーヤーの準備ができていません。お待ちください',
'playFailed': '再生に失敗しました',
'audioFileNotFound': '音声ファイルが見つかりません',
'fetchingAudio': 'クラウドから音声を取得中...',
'playerLoadFailed': 'オーディオプレーヤーの読み込みに失敗しました',
'playerNotReady': 'オーディオプレーヤーの準備ができていません。お待ちください',
'playFailed': '再生に失敗しました',
'audioFileNotFound': '音声ファイルが見つかりません',
'fetchingAudio': 'クラウドから音声を取得中...',
'playerLoadFailed': 'オーディオプレーヤーの読み込みに失敗しました',
// 设置页
"systemSettings": "システム設定",
@ -808,7 +830,8 @@ const Map<String, String> jaJP = {
"swipeUpForMore": "上にスワイプしてさらに表示",
"callingTool": "I'm helping you, please wait!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断
'voice_interrupt_tip': '有効にすると:AIが話している間はあなたの声で中断されず、一度に1つの会話ラウンドのみ処理できます。新しいラウンドを開始するには、ウェイクアップワードを言ってください。',
'voice_interrupt_tip':
'有効にすると:AIが話している間はあなたの声で中断されず、一度に1つの会話ラウンドのみ処理できます。新しいラウンドを開始するには、ウェイクアップワードを言ってください。',
// Agent模块 - 预设提示词
"presetMusic": "Play some music", // 来点音乐
@ -859,6 +882,13 @@ const Map<String, String> jaJP = {
'reportDescriptionHint': '報告の理由を知りたいと思います。遭遇した問題を説明してください。',
'generatedByAi': 'AIによって生成',
// Agent模块 - 工具调用
'toolCall': 'ツール呼び出し',
'noResult': '結果なし',
'noToolCallContentToCopy': 'コピーするツール呼び出し内容がありません',
'toolCallDetails': 'ツール呼び出し詳細:',
'toolCallContentCopied': 'ツール呼び出し内容をクリップボードにコピーしました',
// Agent模块 - 音乐卡片
'recommendedMusic': 'おすすめの音楽をご紹介します:',
'playList': 'プレイリスト',
@ -879,6 +909,28 @@ const Map<String, String> jaJP = {
"bicycling": "自転車",
"tsransit": "Transit",
// Agent模块 - 导航选择
'selectNavigationApp': 'ナビアプリを選択',
'amapMap': 'Amap',
'useAmapNavigation': 'Amapでナビゲート',
'baiduMap': 'Baidu Maps',
'useBaiduNavigation': 'Baidu Mapsでナビゲート',
'googleMap': 'Google マップ',
'useGoogleNavigation': 'Google マップでナビゲート',
'appleMap': 'Apple マップ',
'useAppleNavigation': 'Apple マップでナビゲート',
'builtInNavigation': '内蔵ナビ',
'useBuiltInNavigation': '内蔵地図でナビゲート',
'navigationStartFailed': 'ナビの開始に失敗しました',
'cannotPlayMusicListRetryLater': '音楽リストを再生できません。後でもう一度お試しください',
'cannotPlaySong': '曲を再生できません',
'openMapError': '地図を開く際にエラーが発生しました',
'pleaseInstallAmapApp': 'Amapアプリをインストールしてください',
'pleaseInstallBaiduMapApp': 'Baidu Mapsアプリをインストールしてください',
'appleMapStartFailed': 'Apple マップの起動に失敗しました',
'appleMapUnavailable': 'Apple マップが利用できません',
'openAppleMapError': 'Apple マップを開く際にエラーが発生しました',
// Agent模块 - 天气卡片
'weatherQuery': '天気照会:',
'highest': '最高',
@ -940,10 +992,20 @@ const Map<String, String> jaJP = {
"Please make sure the Bluetooth headset is connected to the phone and in a call state",
"autoDetect": "Auto Detect", // 自动检测
// 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'フローティングウィンドウを無効化',
'enableFloatingWindow': 'フローティングウィンドウを有効化',
'permissionTip': '権限のヒント',
'micPermissionRequiredForRecording': '録音にはマイク権限が必要です',
'deleteTranslationRecordError': '翻訳記録の削除中にエラーが発生しました: @error',
// 翻译模块 - 文本翻译
"languageDetectionFailed": "Language detection failed",
"translationFailed": "Translation failed",
"translating": "翻訳中",
"translate": "翻訳",
"pleaseInputText": "Please input text",
"inputTextToTranslate": "翻訳するテキストを入力してください",
"textTooLong": "Text too long, max 5000 characters",
// 翻译模块 - 历史记录
@ -1328,6 +1390,51 @@ const Map<String, String> jaJP = {
"updateContent": "更新内容",
"removeEarbudsEnsureBattery": "両方のイヤホンを取り出し、バッテリーレベルが20%以上であることを確認してください",
// OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': '新バージョン @version が見つかりました',
'otaConfirmUpdateNow': '今すぐアップデートしますか?',
'otaUpdate': 'アップデート',
'otaUpgradeSuccess': 'アップグレード成功',
'otaUpgradeCompleteRepair':
'ファームウェアのアップグレードが完了しました!\n\nデバイスを再ペアリングする必要があります。ペアリングページに移動しますか?',
'otaPairLater': '後でペアリング',
'otaPairNow': '今すぐペアリング',
'okConfirm': 'OK',
// OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'BLE接続状態の確認中にエラーが発生しました:@error',
'otaBleNotConnected': 'BLEデバイス未接続',
'otaBleNeedConnection':
'ファームウェアのアップグレードにはBLEデバイスの接続が必要です\nデバイスが正しく接続されていることを確認してください',
'otaDeviceInfoUnavailableTitle': 'デバイス情報取得不可',
'otaCannotGetDeviceInfo': 'デバイス情報を取得できません\nデバイスを再接続するか、後でもう一度お試しください',
'otaBleCheckFailed': 'BLE接続確認失敗',
'otaCannotGetDeviceInfoCheckConnection': 'デバイス情報を取得できません。接続を確認してください',
'otaCannotGetProductInfoWithName': '製品情報を取得できません。デバイス名: @deviceName',
'otaCannotGetBatteryInfo': '有効なバッテリー情報を取得できません',
'otaLowBattery': 'バッテリー不足',
'otaSingleBatteryLow':
'バッテリー残量が不足しています\n要件:バッテリー残量が20%以上必要です\n現在:@ear @battery%\n充電してから再試行してください',
'otaDoubleBatteryLow':
'バッテリー残量が不足しています\n要件:左右とも20%以上必要です\n現在:左 @left%、右 @right%\n充電してから再試行してください',
'otaBatteryCheckFailed': 'バッテリー確認失敗',
// OTA升级模块 - 升级状态
'otaDefaultUpdateDesc': '本アップデートにはパフォーマンスの最適化とバグ修正が含まれています。',
'otaGetLatestVersionFailed': '最新バージョン情報の取得に失敗しました',
'otaGetVersionInfoFailed': 'バージョン情報の取得に失敗しました',
'otaCheckingDeviceStatus': 'デバイスの状態を確認中...',
'otaDownloadFailedCheckNetwork': 'ダウンロード失敗。ネットワーク接続を確認してください',
'otaDownloadFailed': 'ダウンロード失敗',
'otaPreparingConnection': 'デバイス接続を準備中...',
'otaConnectingDevice': 'デバイスに接続中...',
'otaUpgradeStarted': 'OTAアップグレード開始...',
'otaUpgradeProgressWithPercent': 'アップグレード進捗: @percent%',
'otaUpgradeSuccessComplete': 'アップグレードが完了しました',
'otaUpgradeFailedWithCode': 'アップグレード失敗、エラーコード: @code',
'otaUpgradeFailedTitle': 'アップグレード失敗',
'otaUpgradeFailedDesc': 'デバイス接続またはアップデートパッケージを確認してください。エラーコード: @code',
'otaDeviceDisconnected': 'デバイスが切断されました',
'otaDeviceConnected': 'デバイスが接続されました',
// 音乐模块
"noMusic": "音楽がありません", // 暂无音乐
"noPlayingMusic": "再生中の音楽がありません", // 暂无播放音乐

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

File diff suppressed because it is too large

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

@ -1,5 +1,4 @@
const Map<String, String> ltLT = {
// 通用
'continue': 'Tęsti',
'confirm': 'Patvirtinti',
@ -169,6 +168,29 @@ const Map<String, String> ltLT = {
'right': 'Dešinė',
'checkConnectionStatusFailed': 'Nepavyko patikrinti ryšio būsenos',
// 蓝牙扫描模块
'bleInitFailedWithError': 'Bluetooth initialization failed: @error',
'needBluetoothAndLocationPermission':
'Bluetooth and location permissions are required to scan devices',
'permissionRequestFailedWithError': 'Permission request failed: @error',
'needPermission': 'Permission Required',
'blePermissionDialogContent':
'This app requires Bluetooth and location permissions to scan devices. Please enable them in Settings.',
'needEnableBluetooth': 'Enable Bluetooth',
'enableBluetoothDialogContent':
'Please enable Bluetooth to scan and connect devices.',
'bleScanFailedWithError': 'Scan failed: @error',
'bleConnectionSuccess': 'Connection Successful',
'bleConnectedToDevice': 'Connected to @device',
'bleConnectionFailedWithError': 'Connection failed: @error',
'bleDisconnected': 'Disconnected',
'bleDeviceDisconnected': 'Device disconnected',
'bleDisconnectFailedWithError': 'Disconnect failed: @error',
'signalStrong': 'Strong',
'signalMedium': 'Medium',
'signalWeak': 'Weak',
'signalVeryWeak': 'Very Weak',
// 发现页
"searchAi": "Ieškoti AI funkcijų...",
"exploreSlogan": "Išmaniosios ausinės, beribės galimybės",
@ -245,60 +267,65 @@ const Map<String, String> ltLT = {
'totalQuota': 'Total Quota',
'remaining': 'Remaining',
'featureDescription': 'Feature Description',
'paymentSuccess': 'Mokėjimas sėkmingas',
'paymentFailed': 'Mokėjimas nepavyko',
'gotIt': 'Supratau',
'paymentFailedTryAgain': 'Mokėjimas nepavyko. Bandykite dar kartą.',
'selectPaymentMethod': 'Pasirinkite mokėjimo būdą',
'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay',
'paypalPay': 'PayPal',
'appleIap': 'Apple IAP',
'googleIap': 'Google IAP',
'wechatOrderCreateFailed': 'Nepavyko sukurti WeChat Pay užsakymo',
'alipayOrderCreateFailed': 'Nepavyko sukurti Alipay užsakymo',
'appleOrderCreateFailed': 'Nepavyko sukurti Apple užsakymo',
'googleOrderCreateFailed': 'Nepavyko sukurti Google užsakymo',
'paypalOrderCreateFailed': 'Nepavyko sukurti PayPal užsakymo',
'paymentException': 'Mokėjimo išimtis',
'paymentLaunchFailed': 'Mokėjimo paleidimas nepavyko',
'paymentExceptionWithError': 'Mokėjimo išimtis: @error',
'paymentProcessingCheckLater': 'Jūsų užsakymas apdorojamas. Patikrinkite vėliau.',
'paymentResultQueryException': 'Nepavyko užklausti mokėjimo rezultato: @error',
'orderConfirmedQuotaRefreshed': 'Užsakymas patvirtintas. Jūsų kvota buvo atnaujinta.',
'paymentCompletedConfirming': 'Mokėjimas baigtas. Patvirtinama…',
'paymentCancelled': 'Mokėjimas atšauktas',
'paypalOpenedCompleteInBrowser': 'PayPal atidarytas. Užbaikite mokėjimą naršyklėje.',
'paypalOpenFailed': 'Nepavyko atidaryti PayPal mokėjimo puslapio',
'paymentTestTitle': 'Mokėjimo testas',
'paymentTestOrderInfo': 'Testinio užsakymo informacija',
'paymentTestProductId': 'Produkto ID',
'paymentTestProductDescription': 'Produkto aprašymas',
'paymentTestWechatDescription': 'WeChat Pay mokėjimo testas',
'paymentTestAlipayDescription': 'Alipay mokėjimo testas',
'paymentTestAmount': 'Suma',
'paymentTestSelectAmount': 'Pasirinkite testo sumą',
'paying': 'Mokama...',
'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': 'Mokėjimo būsena',
'errorInfoWithMessage': 'Klaida: @message',
'retest': 'Pakartotinis testas',
'paymentTestInstructionsTitle': 'Instrukcijos',
'paymentTestInstructionsContent': '1. Pasirinkite testo sumą (rekomenduojama: ¥0,01)\n2. Spustelėkite mokėjimo mygtuką, kad pradėtumėte\n3. Užbaikite mokėjimą mokėjimo programoje\n4. Grįžkite patikrinti rezultatą',
'startingWechatPayment': 'Paleidžiamas WeChat Pay...',
'startingAlipayPayment': 'Paleidžiamas Alipay...',
'wechatPaymentSuccess': 'WeChat Pay sėkmingas!',
'wechatPaymentFailed': 'WeChat Pay nepavyko',
'wechatPaymentLaunchFailed': 'Nepavyko paleisti WeChat Pay',
'cannotLaunchWechatPayment': 'Nepavyko paleisti WeChat Pay',
'wechatPaymentException': 'WeChat Pay išimtis',
'wechatPaymentTestCompleted': 'WeChat Pay testas baigtas',
'alipayPaymentSuccess': 'Alipay sėkmingas!',
'alipayPaymentFailed': 'Alipay nepavyko',
'alipayPaymentLaunchFailed': 'Nepavyko paleisti Alipay',
'cannotLaunchAlipayPayment': 'Nepavyko paleisti Alipay',
'alipayPaymentException': 'Alipay išimtis',
'paymentSuccess': 'Mokėjimas sėkmingas',
'paymentFailed': 'Mokėjimas nepavyko',
'gotIt': 'Supratau',
'paymentFailedTryAgain': 'Mokėjimas nepavyko. Bandykite dar kartą.',
'selectPaymentMethod': 'Pasirinkite mokėjimo būdą',
'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay',
'paypalPay': 'PayPal',
'appleIap': 'Apple IAP',
'googleIap': 'Google IAP',
'wechatOrderCreateFailed': 'Nepavyko sukurti WeChat Pay užsakymo',
'alipayOrderCreateFailed': 'Nepavyko sukurti Alipay užsakymo',
'appleOrderCreateFailed': 'Nepavyko sukurti Apple užsakymo',
'googleOrderCreateFailed': 'Nepavyko sukurti Google užsakymo',
'paypalOrderCreateFailed': 'Nepavyko sukurti PayPal užsakymo',
'paymentException': 'Mokėjimo išimtis',
'paymentLaunchFailed': 'Mokėjimo paleidimas nepavyko',
'paymentExceptionWithError': 'Mokėjimo išimtis: @error',
'paymentProcessingCheckLater':
'Jūsų užsakymas apdorojamas. Patikrinkite vėliau.',
'paymentResultQueryException':
'Nepavyko užklausti mokėjimo rezultato: @error',
'orderConfirmedQuotaRefreshed':
'Užsakymas patvirtintas. Jūsų kvota buvo atnaujinta.',
'paymentCompletedConfirming': 'Mokėjimas baigtas. Patvirtinama…',
'paymentCancelled': 'Mokėjimas atšauktas',
'paypalOpenedCompleteInBrowser':
'PayPal atidarytas. Užbaikite mokėjimą naršyklėje.',
'paypalOpenFailed': 'Nepavyko atidaryti PayPal mokėjimo puslapio',
'paymentTestTitle': 'Mokėjimo testas',
'paymentTestOrderInfo': 'Testinio užsakymo informacija',
'paymentTestProductId': 'Produkto ID',
'paymentTestProductDescription': 'Produkto aprašymas',
'paymentTestWechatDescription': 'WeChat Pay mokėjimo testas',
'paymentTestAlipayDescription': 'Alipay mokėjimo testas',
'paymentTestAmount': 'Suma',
'paymentTestSelectAmount': 'Pasirinkite testo sumą',
'paying': 'Mokama...',
'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': 'Mokėjimo būsena',
'errorInfoWithMessage': 'Klaida: @message',
'retest': 'Pakartotinis testas',
'paymentTestInstructionsTitle': 'Instrukcijos',
'paymentTestInstructionsContent':
'1. Pasirinkite testo sumą (rekomenduojama: ¥0,01)\n2. Spustelėkite mokėjimo mygtuką, kad pradėtumėte\n3. Užbaikite mokėjimą mokėjimo programoje\n4. Grįžkite patikrinti rezultatą',
'startingWechatPayment': 'Paleidžiamas WeChat Pay...',
'startingAlipayPayment': 'Paleidžiamas Alipay...',
'wechatPaymentSuccess': 'WeChat Pay sėkmingas!',
'wechatPaymentFailed': 'WeChat Pay nepavyko',
'wechatPaymentLaunchFailed': 'Nepavyko paleisti WeChat Pay',
'cannotLaunchWechatPayment': 'Nepavyko paleisti WeChat Pay',
'wechatPaymentException': 'WeChat Pay išimtis',
'wechatPaymentTestCompleted': 'WeChat Pay testas baigtas',
'alipayPaymentSuccess': 'Alipay sėkmingas!',
'alipayPaymentFailed': 'Alipay nepavyko',
'alipayPaymentLaunchFailed': 'Nepavyko paleisti Alipay',
'cannotLaunchAlipayPayment': 'Nepavyko paleisti Alipay',
'alipayPaymentException': 'Alipay išimtis',
"insufficientIntegral": "Insufficient integral",
"insufficientBalanceDesc":
'Insufficient balance, please go to the corresponding recharge page to recharge.',
@ -496,19 +523,27 @@ const Map<String, String> ltLT = {
'callRecording': 'Call Recording',
'importAudio': 'Import Audio',
'meetingRecordExitTitle': 'Išeiti iš įrašymo', // 退出录音
'meetingRecordExitMessage': 'Pasirinkite, ką daryti prieš išeinant', // 请选择离开后的操作
'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ą.', // 保存录音失败,请重试
'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ą.', // 正在后台录音,点击返回应用
'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ų.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。
'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...',
@ -533,21 +568,22 @@ const Map<String, String> ltLT = {
'selectSummaryTemplate': 'Select Summary Template',
'useThisTemplate': 'Use This Template',
'lastUsed': 'Last Used',
'create': 'Sukurti',
'templateDetails': 'Šablono informacija',
'tag': 'Žyma',
'description': 'Aprašymas',
'template': 'Šablonas',
'deleteTemplate': 'Ištrinti šabloną',
'deleteTemplateConfirm': 'Ar tikrai norite ištrinti šį šabloną?',
'editTemplate': 'Redaguoti šabloną',
'createTemplate': 'Sukurti šabloną',
'name': 'Pavadinimas',
'templateContentHint': 'Prašome įvesti šablono turinį! Patarimas: Spustelėkite AI mygtuką viršuje, kad greitai sugeneruotumėte šablono turinį pagal įvestą pavadinimą ir aprašymą',
'inputNameHint': 'Prašome įvesti pavadinimą',
'inputDescHint': 'Prašome įvesti aprašymą',
'custom': 'Pasirinktinis',
'pleaseEnter': 'Prašome įvesti',
'create': 'Sukurti',
'templateDetails': 'Šablono informacija',
'tag': 'Žyma',
'description': 'Aprašymas',
'template': 'Šablonas',
'deleteTemplate': 'Ištrinti šabloną',
'deleteTemplateConfirm': 'Ar tikrai norite ištrinti šį šabloną?',
'editTemplate': 'Redaguoti šabloną',
'createTemplate': 'Sukurti šabloną',
'name': 'Pavadinimas',
'templateContentHint':
'Prašome įvesti šablono turinį! Patarimas: Spustelėkite AI mygtuką viršuje, kad greitai sugeneruotumėte šablono turinį pagal įvestą pavadinimą ir aprašymą',
'inputNameHint': 'Prašome įvesti pavadinimą',
'inputDescHint': 'Prašome įvesti aprašymą',
'custom': 'Pasirinktinis',
'pleaseEnter': 'Prašome įvesti',
'viewAll': 'View All',
'recordingLanguage': 'Recording Language',
'chineseSimplified': 'Chinese Mandarin (Simplified)',
@ -570,7 +606,7 @@ const Map<String, String> ltLT = {
'fileProcessingFailed': 'File processing failed: {filePath}, error: {error}',
// Meeting模块 - 思维导图
'saveMindMap': 'Išsaugoti minčių žemėlapį',
'saveMindMap': 'Išsaugoti minčių žemėlapį',
'shareMindMap': 'Share Mind Map',
'shareSuccess': 'Share Success',
@ -592,7 +628,7 @@ const Map<String, String> ltLT = {
'exportSummary': 'Export Summary',
'exportAs': 'Export As',
'exportingPDF': 'Exporting PDF...',
'export': 'Eksportuoti',
'export': 'Eksportuoti',
// Meeting模块 - 发言者
'applyToAllParagraphs': 'Taikyti visoms šio kalbėtojo pastraipoms',
@ -702,18 +738,18 @@ const Map<String, String> ltLT = {
// Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Unknown Language',
'analysisFailed': 'Analizė nepavyko, bandykite dar kartą vėliau',
'transcriptionFailed': 'Transkripcija nepavyko, bandykite dar kartą vėliau',
'summaryFailed': 'Santrauka nepavyko, bandykite dar kartą vėliau',
'summaryFailedShort': 'Santrauka nepavyko',
'transcriptionFailedShort': 'Transkripcija nepavyko',
'analysisFailed': 'Analizė nepavyko, bandykite dar kartą vėliau',
'transcriptionFailed': 'Transkripcija nepavyko, bandykite dar kartą vėliau',
'summaryFailed': 'Santrauka nepavyko, bandykite dar kartą vėliau',
'summaryFailedShort': 'Santrauka nepavyko',
'transcriptionFailedShort': 'Transkripcija nepavyko',
// Meeting模块 - 播放器
'playerNotReady': 'Garso grotuvas neparuoštas, palaukite',
'playFailed': 'Atkūrimas nepavyko',
'audioFileNotFound': 'Garso failas nerastas',
'fetchingAudio': 'Gaunamas garso įrašas iš debesies...',
'playerLoadFailed': 'Garso grotuvo įkėlimas nepavyko',
'playerNotReady': 'Garso grotuvas neparuoštas, palaukite',
'playFailed': 'Atkūrimas nepavyko',
'audioFileNotFound': 'Garso failas nerastas',
'fetchingAudio': 'Gaunamas garso įrašas iš debesies...',
'playerLoadFailed': 'Garso grotuvo įkėlimas nepavyko',
// 设置页
"systemSettings": "Sistemos nustatymai",
@ -822,7 +858,8 @@ const Map<String, String> ltLT = {
"swipeUpForMore": "Braukite aukštyn, kad pamatytumėte daugiau",
"callingTool": "I'm helping you, please wait!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断
'voice_interrupt_tip': 'Kai įjungta: AI nebus pertraukiamas jūsų balsu kalbėdamas ir gali apdoroti tik vieną pokalbio raundą vienu metu. Norėdami pradėti naują raundą, tiesiog pasakykite pažadinimo žodį.',
'voice_interrupt_tip':
'Kai įjungta: AI nebus pertraukiamas jūsų balsu kalbėdamas ir gali apdoroti tik vieną pokalbio raundą vienu metu. Norėdami pradėti naują raundą, tiesiog pasakykite pažadinimo žodį.',
// Agent模块 - 预设提示词
"presetMusic": "Play some music", // 来点音乐
@ -878,6 +915,13 @@ const Map<String, String> ltLT = {
'Norėtume sužinoti, kodėl pranešate, galite aprašyti problemą, su kuria susidūrėte.',
'generatedByAi': 'Sugeneruota AI',
// Agent模块 - 工具调用
'toolCall': 'Tool Call',
'noResult': 'No Result',
'noToolCallContentToCopy': 'No tool call content to copy',
'toolCallDetails': 'Tool Call Details:',
'toolCallContentCopied': 'Tool call content copied to clipboard',
// Agent模块 - 音乐卡片
'recommendedMusic': 'Štai keletas rekomenduojamų dainų:',
'playList': 'Grojaraštis',
@ -898,6 +942,29 @@ const Map<String, String> ltLT = {
"bicycling": "Važiavimas dviračiu",
"tsransit": "Viešasis transportas",
// Agent模块 - 导航选择
'selectNavigationApp': 'Select Navigation App',
'amapMap': 'Amap',
'useAmapNavigation': 'Navigate with Amap',
'baiduMap': 'Baidu Maps',
'useBaiduNavigation': 'Navigate with Baidu Maps',
'googleMap': 'Google Maps',
'useGoogleNavigation': 'Navigate with Google Maps',
'appleMap': 'Apple Maps',
'useAppleNavigation': 'Navigate with Apple Maps',
'builtInNavigation': 'Built-in Navigation',
'useBuiltInNavigation': 'Navigate with built-in map',
'navigationStartFailed': 'Failed to start navigation',
'cannotPlayMusicListRetryLater':
'Cannot play music list, please try again later',
'cannotPlaySong': 'Cannot play song',
'openMapError': 'Error opening map',
'pleaseInstallAmapApp': 'Please install the Amap app first',
'pleaseInstallBaiduMapApp': 'Please install the Baidu Maps app first',
'appleMapStartFailed': 'Apple Maps failed to start',
'appleMapUnavailable': 'Apple Maps unavailable',
'openAppleMapError': 'Error opening Apple Maps',
// Agent模块 - 天气卡片
'weatherQuery': 'Užklausa apie oro sąlygas:',
'highest': 'Aukščiausia',
@ -970,8 +1037,19 @@ const Map<String, String> ltLT = {
// 翻译模块 - 文本翻译
"languageDetectionFailed": "Language detection failed",
// 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'Disable Floating Window',
'enableFloatingWindow': 'Enable Floating Window',
'permissionTip': 'Permission Tip',
'micPermissionRequiredForRecording':
'Microphone permission is required for recording',
'deleteTranslationRecordError': 'Error deleting translation record: @error',
"translationFailed": "Translation failed",
"translating": "Translating",
"translate": "Translate",
"pleaseInputText": "Please input text",
"inputTextToTranslate": "Įveskite tekstą, kurį norite išversti",
"textTooLong": "Text too long, max 5000 characters",
// 翻译模块 - 历史记录
@ -1245,17 +1323,19 @@ const Map<String, String> ltLT = {
'permissionUtilConfirm': 'OK',
// 原生前台服务通知(Android)
'native.notification.appName': 'VOITRANS',
'native.notification.navigation.title': 'Navigacija vyksta',
'native.notification.navigation.keepRunning': 'Navigacija, laikykite programą atidarytą',
'native.notification.bleAgent.running': 'Balso asistento agentas veikia',
'native.notification.audioRecording.recording': 'Garso įrašas, bakstelėkite, kad grįžtumėte į programą',
'native.notification.music.waiting': 'Laukiama grojimo',
'native.notification.music.previous': 'Ankstesnis',
'native.notification.music.next': 'Kitas',
'native.notification.music.play': 'Groti',
'native.notification.music.pause': 'Pauzė',
'native.notification.qqMusic.playing': 'Grojama muzika',
'native.notification.appName': 'VOITRANS',
'native.notification.navigation.title': 'Navigacija vyksta',
'native.notification.navigation.keepRunning':
'Navigacija, laikykite programą atidarytą',
'native.notification.bleAgent.running': 'Balso asistento agentas veikia',
'native.notification.audioRecording.recording':
'Garso įrašas, bakstelėkite, kad grįžtumėte į programą',
'native.notification.music.waiting': 'Laukiama grojimo',
'native.notification.music.previous': 'Ankstesnis',
'native.notification.music.next': 'Kitas',
'native.notification.music.play': 'Groti',
'native.notification.music.pause': 'Pauzė',
'native.notification.qqMusic.playing': 'Grojama muzika',
// 版本更新
'newVersionFound': 'Rasta nauja versija', // 版本更新对话框标题
@ -1397,6 +1477,59 @@ const Map<String, String> ltLT = {
"removeEarbudsEnsureBattery":
"Išimkite abi ausines ir įsitikinkite, kad abiejų baterijos lygis yra didesnis nei 20%",
// OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': 'New version @version found',
'otaConfirmUpdateNow': 'Update now?',
'otaUpdate': 'Update',
'otaUpgradeSuccess': 'Upgrade Successful',
'otaUpgradeCompleteRepair':
'Firmware upgrade complete!\n\nDevice needs to be re-paired to work properly. Go to pairing page now?',
'otaPairLater': 'Pair Later',
'otaPairNow': 'Pair Now',
'okConfirm': 'OK',
// OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'Error checking BLE connection: @error',
'otaBleNotConnected': 'BLE Device Not Connected',
'otaBleNeedConnection':
'Firmware upgrade requires BLE device connection\nPlease ensure device is properly connected and try again',
'otaDeviceInfoUnavailableTitle': 'Device Info Unavailable',
'otaCannotGetDeviceInfo':
'Cannot get device info\nPlease reconnect device or try again later',
'otaBleCheckFailed': 'BLE Connection Check Failed',
'otaCannotGetDeviceInfoCheckConnection':
'Cannot get device info, please check device connection',
'otaCannotGetProductInfoWithName':
'Cannot get product info, device name: @deviceName',
'otaCannotGetBatteryInfo': 'Cannot get valid battery info',
'otaLowBattery': 'Low Battery',
'otaSingleBatteryLow':
'Device battery too low for firmware upgrade\nRequirement: battery must be above 20%\nCurrent: @ear @battery%\nPlease charge and try again',
'otaDoubleBatteryLow':
'Device battery too low for firmware upgrade\nRequirement: both earbuds must be above 20%\nCurrent: Left @left%, Right @right%\nPlease charge and try again',
'otaBatteryCheckFailed': 'Battery Check Failed',
// OTA升级模块 - 升级状态
'otaDefaultUpdateDesc':
'This update includes performance optimizations and bug fixes.',
'otaGetLatestVersionFailed': 'Failed to get latest version info',
'otaGetVersionInfoFailed': 'Failed to get version info',
'otaCheckingDeviceStatus': 'Checking device status...',
'otaDownloadFailedCheckNetwork':
'Download failed, please check network connection',
'otaDownloadFailed': 'Download Failed',
'otaPreparingConnection': 'Preparing device connection...',
'otaConnectingDevice': 'Connecting to device...',
'otaUpgradeStarted': 'OTA upgrade started...',
'otaUpgradeProgressWithPercent': 'Upgrade progress: @percent%',
'otaUpgradeSuccessComplete': 'Upgrade completed successfully',
'otaUpgradeFailedWithCode': 'Upgrade failed, error code: @code',
'otaUpgradeFailedTitle': 'Upgrade Failed',
'otaUpgradeFailedDesc':
'Please check device connection or update package, error code: @code',
'otaDeviceDisconnected': 'Device disconnected',
'otaDeviceConnected': 'Device connected',
// 音乐模块
"noMusic": "Nėra muzikos", // 暂无音乐
"noPlayingMusic": "Negrojama jokia muzika", // 暂无播放音乐

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

File diff suppressed because it is too large

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

File diff suppressed because it is too large

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

@ -169,6 +169,26 @@ const Map<String, String> nbNO = {
'right': 'Høyre',
'checkConnectionStatusFailed': 'Kontroll av tilkoblingsstatus mislyktes',
// 蓝牙扫描模块
'bleInitFailedWithError': 'Bluetooth-initialisering mislyktes: @error',
'needBluetoothAndLocationPermission': 'Bluetooth- og plasseringstillatelser kreves for å skanne enheter',
'permissionRequestFailedWithError': 'Tillatelsesforespørsel mislyktes: @error',
'needPermission': 'Tillatelse kreves',
'blePermissionDialogContent': 'Appen trenger Bluetooth- og plasseringstillatelser for å skanne enheter. Aktiver dem i Innstillinger.',
'needEnableBluetooth': 'Aktiver Bluetooth',
'enableBluetoothDialogContent': 'Aktiver Bluetooth for å skanne og koble til enheter.',
'bleScanFailedWithError': 'Skanning mislyktes: @error',
'bleConnectionSuccess': 'Tilkobling vellykket',
'bleConnectedToDevice': 'Koblet til @device',
'bleConnectionFailedWithError': 'Tilkobling mislyktes: @error',
'bleDisconnected': 'Frakoblet',
'bleDeviceDisconnected': 'Enhet frakoblet',
'bleDisconnectFailedWithError': 'Frakobling mislyktes: @error',
'signalStrong': 'Sterkt signal',
'signalMedium': 'Middels signal',
'signalWeak': 'Svakt signal',
'signalVeryWeak': 'Veldig svakt signal',
// 发现页
"searchAi": "Søk etter AI-funksjoner...",
"exploreSlogan": "Smarte ørepropper, uendelige muligheter",
@ -877,6 +897,13 @@ const Map<String, String> nbNO = {
'Vi vil gjerne vite hvorfor du rapporterer, du kan beskrive problemet du opplevde.',
'generatedByAi': 'Generert av AI',
// Agent模块 - 工具调用
'toolCall': 'Verktøykall',
'noResult': 'Ingen resultat',
'noToolCallContentToCopy': 'Ingen verktøykall å kopiere',
'toolCallDetails': 'Verktøykalldetaljer:',
'toolCallContentCopied': 'Verktøykall kopiert til utklippstavlen',
// Agent模块 - 音乐卡片
'recommendedMusic': 'Her er noen anbefalte sanger:',
'playList': 'Spilleliste',
@ -897,6 +924,28 @@ const Map<String, String> nbNO = {
"bicycling": 'Sykling',
"tsransit": 'Kollektivtransport',
// Agent模块 - 导航选择
'selectNavigationApp': 'Velg navigasjonsapp',
'amapMap': 'Amap',
'useAmapNavigation': 'Naviger med Amap',
'baiduMap': 'Baidu Maps',
'useBaiduNavigation': 'Naviger med Baidu Maps',
'googleMap': 'Google Maps',
'useGoogleNavigation': 'Naviger med Google Maps',
'appleMap': 'Apple Maps',
'useAppleNavigation': 'Naviger med Apple Maps',
'builtInNavigation': 'Innebygd navigasjon',
'useBuiltInNavigation': 'Naviger med innebygd kart',
'navigationStartFailed': 'Kunne ikke starte navigasjon',
'cannotPlayMusicListRetryLater': 'Kan ikke spille musiklisten, prøv igjen senere',
'cannotPlaySong': 'Kan ikke spille sangen',
'openMapError': 'Feil ved åpning av kart',
'pleaseInstallAmapApp': 'Installer Amap-appen først',
'pleaseInstallBaiduMapApp': 'Installer Baidu Maps-appen først',
'appleMapStartFailed': 'Apple Maps kunne ikke starte',
'appleMapUnavailable': 'Apple Maps er ikke tilgjengelig',
'openAppleMapError': 'Feil ved åpning av Apple Maps',
// Agent模块 - 天气卡片
'weatherQuery': 'Spør om værforhold:',
'highest': 'Høyeste',
@ -969,8 +1018,18 @@ const Map<String, String> nbNO = {
// 翻译模块 - 文本翻译
"languageDetectionFailed": "Language detection failed",
// 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'Deaktiver flytende vindu',
'enableFloatingWindow': 'Aktiver flytende vindu',
'permissionTip': 'Tillatelsestips',
'micPermissionRequiredForRecording': 'Mikrofontillatelse kreves for opptak',
'deleteTranslationRecordError': 'Feil ved sletting av oversettelsespost: @error',
"translationFailed": "Translation failed",
"translating": "Oversetter",
"translate": "Oversett",
"pleaseInputText": "Please input text",
"inputTextToTranslate": "Skriv inn teksten som skal oversettes",
"textTooLong": "Text too long, max 5000 characters",
// 翻译模块 - 历史记录
@ -1385,6 +1444,49 @@ const Map<String, String> nbNO = {
"removeEarbudsEnsureBattery":
"Ta ut begge øreproppene og sørg for at batterinivået på begge er over 20 %",
// OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': 'Ny versjon @version funnet',
'otaConfirmUpdateNow': 'Oppdater nå?',
'otaUpdate': 'Oppdater',
'otaUpgradeSuccess': 'Oppgradering vellykket',
'otaUpgradeCompleteRepair': 'Firmware-oppgradering fullført!\n\nEnheten må pares på nytt. Gå til paringssiden?',
'otaPairLater': 'Par senere',
'otaPairNow': 'Par nå',
'okConfirm': 'OK',
// OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'Feil ved BLE-kontroll: @error',
'otaBleNotConnected': 'BLE-enhet ikke tilkoblet',
'otaBleNeedConnection': 'Firmware-oppgradering krever BLE-tilkobling\nSørg for at enheten er tilkoblet og prøv igjen',
'otaDeviceInfoUnavailableTitle': 'Enhetsinfo utilgjengelig',
'otaCannotGetDeviceInfo': 'Kan ikke hente enhetsinfo\nKoble til enheten igjen eller prøv senere',
'otaBleCheckFailed': 'BLE-kontroll mislyktes',
'otaCannotGetDeviceInfoCheckConnection': 'Kan ikke hente enhetsinfo, sjekk tilkoblingen',
'otaCannotGetProductInfoWithName': 'Kan ikke hente produktinfo, enhetsnavn: @deviceName',
'otaCannotGetBatteryInfo': 'Kan ikke hente batteriinfo',
'otaLowBattery': 'Lavt batteri',
'otaSingleBatteryLow': 'Batterinivå for lavt for oppgradering\nKrav: batteri over 20%\nNåværende: @ear @battery%\nLad og prøv igjen',
'otaDoubleBatteryLow': 'Batterinivå for lavt for oppgradering\nKrav: begge øreproppene over 20%\nNåværende: Venstre @left%, Høyre @right%\nLad og prøv igjen',
'otaBatteryCheckFailed': 'Batterikontroll mislyktes',
// OTA升级模块 - 升级状态
'otaDefaultUpdateDesc': 'Oppdateringen inneholder ytelsesforbedringer og feilrettinger.',
'otaGetLatestVersionFailed': 'Kunne ikke hente siste versjon',
'otaGetVersionInfoFailed': 'Kunne ikke hente versjonsinfo',
'otaCheckingDeviceStatus': 'Sjekker enhetsstatus...',
'otaDownloadFailedCheckNetwork': 'Nedlasting mislyktes, sjekk nettverkstilkoblingen',
'otaDownloadFailed': 'Nedlasting mislyktes',
'otaPreparingConnection': 'Forbereder enhetstilkobling...',
'otaConnectingDevice': 'Kobler til enhet...',
'otaUpgradeStarted': 'OTA-oppgradering startet...',
'otaUpgradeProgressWithPercent': 'Oppgraderingsforløp: @percent%',
'otaUpgradeSuccessComplete': 'Oppgradering fullført',
'otaUpgradeFailedWithCode': 'Oppgradering mislyktes, feilkode: @code',
'otaUpgradeFailedTitle': 'Oppgradering mislyktes',
'otaUpgradeFailedDesc': 'Sjekk tilkobling eller oppdateringspakke, feilkode: @code',
'otaDeviceDisconnected': 'Enhet frakoblet',
'otaDeviceConnected': 'Enhet tilkoblet',
// 音乐模块
"noMusic": "Ingen musikk", // 暂无音乐
"noPlayingMusic": "Ingen musikk spilles av", // 暂无播放音乐

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

@ -1,5 +1,4 @@
const Map<String, String> nlNL = {
// 通用
'continue': 'Doorgaan',
'confirm': 'Bevestigen',
@ -169,6 +168,29 @@ const Map<String, String> nlNL = {
'right': 'Rechts',
'checkConnectionStatusFailed': 'Controle van verbindingsstatus mislukt',
// 蓝牙扫描模块
'bleInitFailedWithError': 'Bluetooth-initialisatie mislukt: @error',
'needBluetoothAndLocationPermission':
'Bluetooth- en locatiemachtigingen zijn vereist om apparaten te scannen',
'permissionRequestFailedWithError': 'Machtigingsverzoek mislukt: @error',
'needPermission': 'Machtiging vereist',
'blePermissionDialogContent':
'Deze app heeft Bluetooth- en locatiemachtigingen nodig om apparaten te scannen. Schakel ze in via Instellingen.',
'needEnableBluetooth': 'Bluetooth inschakelen',
'enableBluetoothDialogContent':
'Schakel Bluetooth in om apparaten te scannen en te verbinden.',
'bleScanFailedWithError': 'Scan mislukt: @error',
'bleConnectionSuccess': 'Verbinding geslaagd',
'bleConnectedToDevice': 'Verbonden met @device',
'bleConnectionFailedWithError': 'Verbinding mislukt: @error',
'bleDisconnected': 'Verbinding verbroken',
'bleDeviceDisconnected': 'Apparaat losgekoppeld',
'bleDisconnectFailedWithError': 'Loskoppelen mislukt: @error',
'signalStrong': 'Sterk',
'signalMedium': 'Gemiddeld',
'signalWeak': 'Zwak',
'signalVeryWeak': 'Zeer zwak',
// 发现页
"searchAi": "Zoek AI-functies...",
"exploreSlogan": "Slimme oortjes, eindeloze mogelijkheden",
@ -245,60 +267,64 @@ const Map<String, String> nlNL = {
'totalQuota': 'Total Quota',
'remaining': 'Remaining',
'featureDescription': 'Feature Description',
'paymentSuccess': 'Betaling geslaagd',
'paymentFailed': 'Betaling mislukt',
'gotIt': 'Begrepen',
'paymentFailedTryAgain': 'Betaling mislukt. Probeer het opnieuw.',
'selectPaymentMethod': 'Selecteer betaalmethode',
'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay',
'paypalPay': 'PayPal',
'appleIap': 'Apple IAP',
'googleIap': 'Google IAP',
'wechatOrderCreateFailed': 'Kan WeChat-bestelling niet aanmaken',
'alipayOrderCreateFailed': 'Kan Alipay-bestelling niet aanmaken',
'appleOrderCreateFailed': 'Kan Apple-bestelling niet aanmaken',
'googleOrderCreateFailed': 'Kan Google-bestelling niet aanmaken',
'paypalOrderCreateFailed': 'Kan PayPal-bestelling niet aanmaken',
'paymentException': 'Betalingsuitzondering',
'paymentLaunchFailed': 'Kan betaling niet starten',
'paymentExceptionWithError': 'Betalingsuitzondering: @error',
'paymentProcessingCheckLater': 'Uw bestelling wordt verwerkt. Controleer het later.',
'paymentResultQueryException': 'Kan betalingsresultaat niet opvragen: @error',
'orderConfirmedQuotaRefreshed': 'Bestelling bevestigd. Uw tegoed is bijgewerkt.',
'paymentCompletedConfirming': 'Betaling voltooid. Bevestigen…',
'paymentCancelled': 'Betaling geannuleerd',
'paypalOpenedCompleteInBrowser': 'PayPal geopend. Voltooi de betaling in uw browser.',
'paypalOpenFailed': 'Kan PayPal-betaalpagina niet openen',
'paymentTestTitle': 'Betalingstest',
'paymentTestOrderInfo': 'Testbestelgegevens',
'paymentTestProductId': 'Product-ID',
'paymentTestProductDescription': 'Productbeschrijving',
'paymentTestWechatDescription': 'WeChat-betalingstest',
'paymentTestAlipayDescription': 'Alipay-betalingstest',
'paymentTestAmount': 'Bedrag',
'paymentTestSelectAmount': 'Selecteer testbedrag',
'paying': 'Betalen...',
'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': 'Betalingsstatus',
'errorInfoWithMessage': 'Fout: @message',
'retest': 'Opnieuw testen',
'paymentTestInstructionsTitle': 'Instructies',
'paymentTestInstructionsContent': '1. Selecteer een testbedrag (aanbevolen: ¥0.01)\n2. Klik op de betaalknop om te starten\n3. Voltooi de betaling in de betaal-app\n4. Keer terug om het resultaat te controleren',
'startingWechatPayment': 'WeChat Pay starten...',
'startingAlipayPayment': 'Alipay starten...',
'wechatPaymentSuccess': 'WeChat Pay-betaling geslaagd!',
'wechatPaymentFailed': 'WeChat Pay mislukt',
'wechatPaymentLaunchFailed': 'Kan WeChat Pay niet starten',
'cannotLaunchWechatPayment': 'Kan WeChat Pay niet starten',
'wechatPaymentException': 'WeChat Pay-uitzondering',
'wechatPaymentTestCompleted': 'WeChat Pay-test voltooid',
'alipayPaymentSuccess': 'Alipay-betaling geslaagd!',
'alipayPaymentFailed': 'Alipay mislukt',
'alipayPaymentLaunchFailed': 'Kan Alipay niet starten',
'cannotLaunchAlipayPayment': 'Kan Alipay niet starten',
'alipayPaymentException': 'Alipay-uitzondering',
'paymentSuccess': 'Betaling geslaagd',
'paymentFailed': 'Betaling mislukt',
'gotIt': 'Begrepen',
'paymentFailedTryAgain': 'Betaling mislukt. Probeer het opnieuw.',
'selectPaymentMethod': 'Selecteer betaalmethode',
'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay',
'paypalPay': 'PayPal',
'appleIap': 'Apple IAP',
'googleIap': 'Google IAP',
'wechatOrderCreateFailed': 'Kan WeChat-bestelling niet aanmaken',
'alipayOrderCreateFailed': 'Kan Alipay-bestelling niet aanmaken',
'appleOrderCreateFailed': 'Kan Apple-bestelling niet aanmaken',
'googleOrderCreateFailed': 'Kan Google-bestelling niet aanmaken',
'paypalOrderCreateFailed': 'Kan PayPal-bestelling niet aanmaken',
'paymentException': 'Betalingsuitzondering',
'paymentLaunchFailed': 'Kan betaling niet starten',
'paymentExceptionWithError': 'Betalingsuitzondering: @error',
'paymentProcessingCheckLater':
'Uw bestelling wordt verwerkt. Controleer het later.',
'paymentResultQueryException': 'Kan betalingsresultaat niet opvragen: @error',
'orderConfirmedQuotaRefreshed':
'Bestelling bevestigd. Uw tegoed is bijgewerkt.',
'paymentCompletedConfirming': 'Betaling voltooid. Bevestigen…',
'paymentCancelled': 'Betaling geannuleerd',
'paypalOpenedCompleteInBrowser':
'PayPal geopend. Voltooi de betaling in uw browser.',
'paypalOpenFailed': 'Kan PayPal-betaalpagina niet openen',
'paymentTestTitle': 'Betalingstest',
'paymentTestOrderInfo': 'Testbestelgegevens',
'paymentTestProductId': 'Product-ID',
'paymentTestProductDescription': 'Productbeschrijving',
'paymentTestWechatDescription': 'WeChat-betalingstest',
'paymentTestAlipayDescription': 'Alipay-betalingstest',
'paymentTestAmount': 'Bedrag',
'paymentTestSelectAmount': 'Selecteer testbedrag',
'paying': 'Betalen...',
'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': 'Betalingsstatus',
'errorInfoWithMessage': 'Fout: @message',
'retest': 'Opnieuw testen',
'paymentTestInstructionsTitle': 'Instructies',
'paymentTestInstructionsContent':
'1. Selecteer een testbedrag (aanbevolen: ¥0.01)\n2. Klik op de betaalknop om te starten\n3. Voltooi de betaling in de betaal-app\n4. Keer terug om het resultaat te controleren',
'startingWechatPayment': 'WeChat Pay starten...',
'startingAlipayPayment': 'Alipay starten...',
'wechatPaymentSuccess': 'WeChat Pay-betaling geslaagd!',
'wechatPaymentFailed': 'WeChat Pay mislukt',
'wechatPaymentLaunchFailed': 'Kan WeChat Pay niet starten',
'cannotLaunchWechatPayment': 'Kan WeChat Pay niet starten',
'wechatPaymentException': 'WeChat Pay-uitzondering',
'wechatPaymentTestCompleted': 'WeChat Pay-test voltooid',
'alipayPaymentSuccess': 'Alipay-betaling geslaagd!',
'alipayPaymentFailed': 'Alipay mislukt',
'alipayPaymentLaunchFailed': 'Kan Alipay niet starten',
'cannotLaunchAlipayPayment': 'Kan Alipay niet starten',
'alipayPaymentException': 'Alipay-uitzondering',
"insufficientIntegral": "Insufficient integral",
"insufficientBalanceDesc":
'Insufficient balance, please go to the corresponding recharge page to recharge.',
@ -496,19 +522,28 @@ const Map<String, String> nlNL = {
'callRecording': 'Call Recording',
'importAudio': 'Import Audio',
'meetingRecordExitTitle': 'Opname verlaten', // 退出录音
'meetingRecordExitMessage': 'Kies wat je wilt doen voordat je vertrekt', // 请选择离开后的操作
'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.', // 保存录音失败,请重试
'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.', // 正在后台录音,点击返回应用
'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.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。
'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...',
@ -533,21 +568,22 @@ const Map<String, String> nlNL = {
'selectSummaryTemplate': 'Select Summary Template',
'useThisTemplate': 'Use This Template',
'lastUsed': 'Last Used',
'create': 'Aanmaken',
'templateDetails': 'Sjabloondetails',
'tag': 'Label',
'description': 'Beschrijving',
'template': 'Sjabloon',
'deleteTemplate': 'Sjabloon verwijderen',
'deleteTemplateConfirm': 'Weet u zeker dat u dit sjabloon wilt verwijderen?',
'editTemplate': 'Sjabloon bewerken',
'createTemplate': 'Sjabloon aanmaken',
'name': 'Naam',
'templateContentHint': 'Voer de inhoud van het sjabloon in! Tip: Klik op de AI-knop hierboven om snel sjablooninhoud te genereren op basis van de naam en beschrijving die u hebt ingevoerd',
'inputNameHint': 'Voer een naam in',
'inputDescHint': 'Voer een beschrijving in',
'custom': 'Aangepast',
'pleaseEnter': 'Voer alstublieft in',
'create': 'Aanmaken',
'templateDetails': 'Sjabloondetails',
'tag': 'Label',
'description': 'Beschrijving',
'template': 'Sjabloon',
'deleteTemplate': 'Sjabloon verwijderen',
'deleteTemplateConfirm': 'Weet u zeker dat u dit sjabloon wilt verwijderen?',
'editTemplate': 'Sjabloon bewerken',
'createTemplate': 'Sjabloon aanmaken',
'name': 'Naam',
'templateContentHint':
'Voer de inhoud van het sjabloon in! Tip: Klik op de AI-knop hierboven om snel sjablooninhoud te genereren op basis van de naam en beschrijving die u hebt ingevoerd',
'inputNameHint': 'Voer een naam in',
'inputDescHint': 'Voer een beschrijving in',
'custom': 'Aangepast',
'pleaseEnter': 'Voer alstublieft in',
'viewAll': 'View All',
'recordingLanguage': 'Recording Language',
'chineseSimplified': 'Chinese Mandarin (Simplified)',
@ -570,7 +606,7 @@ const Map<String, String> nlNL = {
'fileProcessingFailed': 'File processing failed: {filePath}, error: {error}',
// Meeting模块 - 思维导图
'saveMindMap': 'Mindmap opslaan',
'saveMindMap': 'Mindmap opslaan',
'shareMindMap': 'Share Mind Map',
'shareSuccess': 'Share Success',
@ -592,7 +628,7 @@ const Map<String, String> nlNL = {
'exportSummary': 'Export Summary',
'exportAs': 'Export As',
'exportingPDF': 'Exporting PDF...',
'export': 'Exporteren',
'export': 'Exporteren',
// Meeting模块 - 发言者
'applyToAllParagraphs': "Toepassen op alle alinea's van deze spreker",
@ -702,18 +738,18 @@ const Map<String, String> nlNL = {
// Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Unknown Language',
'analysisFailed': 'Analyse mislukt, probeer het later opnieuw',
'transcriptionFailed': 'Transcriptie mislukt, probeer het later opnieuw',
'summaryFailed': 'Samenvatting mislukt, probeer het later opnieuw',
'summaryFailedShort': 'Samenvatting mislukt',
'transcriptionFailedShort': 'Transcriptie mislukt',
'analysisFailed': 'Analyse mislukt, probeer het later opnieuw',
'transcriptionFailed': 'Transcriptie mislukt, probeer het later opnieuw',
'summaryFailed': 'Samenvatting mislukt, probeer het later opnieuw',
'summaryFailedShort': 'Samenvatting mislukt',
'transcriptionFailedShort': 'Transcriptie mislukt',
// Meeting模块 - 播放器
'playerNotReady': 'Audiospeler is niet gereed, even geduld',
'playFailed': 'Afspelen mislukt',
'audioFileNotFound': 'Audiobestand niet gevonden',
'fetchingAudio': 'Audio ophalen uit de cloud...',
'playerLoadFailed': 'Audiospeler kan niet laden',
'playerNotReady': 'Audiospeler is niet gereed, even geduld',
'playFailed': 'Afspelen mislukt',
'audioFileNotFound': 'Audiobestand niet gevonden',
'fetchingAudio': 'Audio ophalen uit de cloud...',
'playerLoadFailed': 'Audiospeler kan niet laden',
// 设置页
"systemSettings": "Systeeminstellingen",
@ -820,7 +856,8 @@ const Map<String, String> nlNL = {
"swipeUpForMore": "Veeg omhoog voor meer",
"callingTool": "I'm helping you, please wait!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断
'voice_interrupt_tip': 'Wanneer ingeschakeld: De AI wordt niet onderbroken door uw stem terwijl deze spreekt en kan slechts één gespreksronde tegelijk verwerken. Om een nieuwe ronde te starten, zeg gewoon het activeringswoord.',
'voice_interrupt_tip':
'Wanneer ingeschakeld: De AI wordt niet onderbroken door uw stem terwijl deze spreekt en kan slechts één gespreksronde tegelijk verwerken. Om een nieuwe ronde te starten, zeg gewoon het activeringswoord.',
// Agent模块 - 预设提示词
"presetMusic": "Play some music", // 来点音乐
@ -877,6 +914,14 @@ const Map<String, String> nlNL = {
'We willen weten waarom u rapporteert, u kunt het probleem dat u tegenkwam beschrijven.',
'generatedByAi': 'Gegenereerd door AI',
// Agent模块 - 工具调用
'toolCall': 'Gereedschapsoproep',
'noResult': 'Geen resultaat',
'noToolCallContentToCopy':
'Geen inhoud van gereedschapsoproep om te kopieren',
'toolCallDetails': 'Details gereedschapsoproep:',
'toolCallContentCopied': 'Inhoud gekopieerd naar klembord',
// Agent模块 - 音乐卡片
'recommendedMusic': 'Hier zijn enkele aanbevolen muziekstukken:',
'playList': 'Afspeellijst',
@ -897,6 +942,29 @@ const Map<String, String> nlNL = {
"bicycling": 'Fietsen',
"tsransit": 'Openbaar vervoer',
// Agent模块 - 导航选择
'selectNavigationApp': 'Navigatie-app selecteren',
'amapMap': 'Amap',
'useAmapNavigation': 'Navigeren met Amap',
'baiduMap': 'Baidu Maps',
'useBaiduNavigation': 'Navigeren met Baidu Maps',
'googleMap': 'Google Maps',
'useGoogleNavigation': 'Navigeren met Google Maps',
'appleMap': 'Apple Maps',
'useAppleNavigation': 'Navigeren met Apple Maps',
'builtInNavigation': 'Ingebouwde navigatie',
'useBuiltInNavigation': 'Navigeren met ingebouwde kaart',
'navigationStartFailed': 'Navigatie starten mislukt',
'cannotPlayMusicListRetryLater':
'Kan muzieklijst niet afspelen, probeer het later opnieuw',
'cannotPlaySong': 'Kan nummer niet afspelen',
'openMapError': 'Fout bij openen van kaart',
'pleaseInstallAmapApp': 'Installeer eerst de Amap-app',
'pleaseInstallBaiduMapApp': 'Installeer eerst de Baidu Maps-app',
'appleMapStartFailed': 'Apple Maps starten mislukt',
'appleMapUnavailable': 'Apple Maps niet beschikbaar',
'openAppleMapError': 'Fout bij openen van Apple Maps',
// Agent模块 - 天气卡片
'weatherQuery': 'Weersomstandigheden opvragen:',
'highest': 'Hoogste',
@ -968,8 +1036,19 @@ const Map<String, String> nlNL = {
// 翻译模块 - 文本翻译
"languageDetectionFailed": "Language detection failed",
// 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'Zwevend venster uitschakelen',
'enableFloatingWindow': 'Zwevend venster inschakelen',
'permissionTip': 'Machtigingstip',
'micPermissionRequiredForRecording':
'Microfoonmachtiging vereist voor opname',
'deleteTranslationRecordError': 'Fout bij verwijderen vertaalrecord: @error',
"translationFailed": "Translation failed",
"translating": "Vertalen",
"translate": "Vertaal",
"pleaseInputText": "Please input text",
"inputTextToTranslate": "Voer de tekst in om te vertalen",
"textTooLong": "Text too long, max 5000 characters",
// 翻译模块 - 历史记录
@ -1247,17 +1326,18 @@ const Map<String, String> nlNL = {
'permissionUtilConfirm': 'OK',
// 原生前台服务通知(Android)
'native.notification.appName': 'VOITRANS',
'native.notification.navigation.title': 'Navigatie actief',
'native.notification.navigation.keepRunning': 'Navigeren, houd de app actief',
'native.notification.bleAgent.running': 'Spraakassistent is actief',
'native.notification.audioRecording.recording': 'Audio opnemen, tik om terug te keren naar de app',
'native.notification.music.waiting': 'Wachten op afspelen',
'native.notification.music.previous': 'Vorige',
'native.notification.music.next': 'Volgende',
'native.notification.music.play': 'Afspelen',
'native.notification.music.pause': 'Pauzeren',
'native.notification.qqMusic.playing': 'Muziek afspelen',
'native.notification.appName': 'VOITRANS',
'native.notification.navigation.title': 'Navigatie actief',
'native.notification.navigation.keepRunning': 'Navigeren, houd de app actief',
'native.notification.bleAgent.running': 'Spraakassistent is actief',
'native.notification.audioRecording.recording':
'Audio opnemen, tik om terug te keren naar de app',
'native.notification.music.waiting': 'Wachten op afspelen',
'native.notification.music.previous': 'Vorige',
'native.notification.music.next': 'Volgende',
'native.notification.music.play': 'Afspelen',
'native.notification.music.pause': 'Pauzeren',
'native.notification.qqMusic.playing': 'Muziek afspelen',
// 版本更新
'newVersionFound': 'Nieuwe versie gevonden', // 版本更新对话框标题
@ -1397,6 +1477,59 @@ const Map<String, String> nlNL = {
"removeEarbudsEnsureBattery":
"Haal beide oortjes eruit en zorg ervoor dat de batterij van beide meer dan 20% is",
// OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': 'Nieuwe versie @version gevonden',
'otaConfirmUpdateNow': 'Nu bijwerken?',
'otaUpdate': 'Bijwerken',
'otaUpgradeSuccess': 'Upgrade geslaagd',
'otaUpgradeCompleteRepair':
'Firmware-update voltooid!\n\nHet apparaat moet opnieuw worden gekoppeld. Naar koppelingspagina?',
'otaPairLater': 'Later koppelen',
'otaPairNow': 'Nu koppelen',
'okConfirm': 'OK',
// OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'Fout bij controle BLE-verbinding: @error',
'otaBleNotConnected': 'BLE-apparaat niet verbonden',
'otaBleNeedConnection':
'BLE-verbinding vereist\nZorg dat het apparaat verbonden is en probeer opnieuw',
'otaDeviceInfoUnavailableTitle': 'Apparaatinfo niet beschikbaar',
'otaCannotGetDeviceInfo':
'Cannot get device info\nPlease reconnect device or try again later',
'otaBleCheckFailed': 'BLE-verbindingscontrole mislukt',
'otaCannotGetDeviceInfoCheckConnection':
'Kan apparaatinfo niet ophalen, controleer de verbinding',
'otaCannotGetProductInfoWithName':
'Kan productinfo niet ophalen, apparaatnaam: @deviceName',
'otaCannotGetBatteryInfo': 'Kan geen geldige batterij-info ophalen',
'otaLowBattery': 'Batterij bijna leeg',
'otaSingleBatteryLow':
'Batterij te laag\nVereiste: boven 20%\nHuidig: @ear @battery%\nLaad op en probeer opnieuw',
'otaDoubleBatteryLow':
'Batterij te laag\nVereiste: beide oordopjes boven 20%\nHuidig: Links @left%, Rechts @right%\nLaad op en probeer opnieuw',
'otaBatteryCheckFailed': 'Batterijcontrole mislukt',
// OTA升级模块 - 升级状态
'otaDefaultUpdateDesc':
'Deze update bevat prestatieverbeteringen en bugfixes.',
'otaGetLatestVersionFailed': 'Kan nieuwste versie niet ophalen',
'otaGetVersionInfoFailed': 'Kan versie-info niet ophalen',
'otaCheckingDeviceStatus': 'Apparaatstatus controleren...',
'otaDownloadFailedCheckNetwork':
'Download mislukt, controleer de netwerkverbinding',
'otaDownloadFailed': 'Download mislukt',
'otaPreparingConnection': 'Verbinding voorbereiden...',
'otaConnectingDevice': 'Verbinden met apparaat...',
'otaUpgradeStarted': 'OTA-upgrade gestart...',
'otaUpgradeProgressWithPercent': 'Voortgang: @percent%',
'otaUpgradeSuccessComplete': 'Upgrade succesvol voltooid',
'otaUpgradeFailedWithCode': 'Upgrade mislukt, foutcode: @code',
'otaUpgradeFailedTitle': 'Upgrade mislukt',
'otaUpgradeFailedDesc':
'Controleer de verbinding of het updatepakket, foutcode: @code',
'otaDeviceDisconnected': 'Apparaat losgekoppeld',
'otaDeviceConnected': 'Apparaat verbonden',
// 音乐模块
"noMusic": "Geen muziek", // 暂无音乐
"noPlayingMusic": "Geen muziek aan het afspelen", // 暂无播放音乐

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

@ -19,11 +19,11 @@ const Map<String, String> plPL = {
"unknownError": "Nieznany błąd",
"asrConnectionFailed":
"Nie udało się połączyć z usługą rozpoznawania mowy. Sprawdź sieć lub spróbuj ponownie później.",
"justNow": "Just now",
"minutesAgo": "@minutes minutes ago",
"yesterday": "Yesterday",
"daysAgo": "@days days ago",
"hoursAgo": "@hours hours ago",
"justNow": "Przed chwilą",
"minutesAgo": "@minutes min temu",
"yesterday": "Wczoraj",
"daysAgo": "@days dni temu",
"hoursAgo": "@hours godz. temu",
// 启动页
"slogan": "Łącząc świat, poza dźwiękiem",
@ -170,6 +170,26 @@ const Map<String, String> plPL = {
'checkConnectionStatusFailed':
'Sprawdzenie stanu połączenia nie powiodło się',
// 蓝牙扫描模块
'bleInitFailedWithError': 'Inicjalizacja Bluetooth nie powiodła się: @error',
'needBluetoothAndLocationPermission': 'Uprawnienia Bluetooth i lokalizacji są wymagane do skanowania urządzeń',
'permissionRequestFailedWithError': 'Żądanie uprawnień nie powiodło się: @error',
'needPermission': 'Wymagane uprawnienia',
'blePermissionDialogContent': 'Ta aplikacja wymaga uprawnień Bluetooth i lokalizacji do skanowania urządzeń. Włącz je w Ustawieniach.',
'needEnableBluetooth': 'Włącz Bluetooth',
'enableBluetoothDialogContent': 'Włącz Bluetooth, aby skanować i łączyć urządzenia.',
'bleScanFailedWithError': 'Skanowanie nie powiodło się: @error',
'bleConnectionSuccess': 'Połączenie udane',
'bleConnectedToDevice': 'Połączono z @device',
'bleConnectionFailedWithError': 'Połączenie nie powiodło się: @error',
'bleDisconnected': 'Rozłączono',
'bleDeviceDisconnected': 'Urządzenie rozłączone',
'bleDisconnectFailedWithError': 'Rozłączenie nie powiodło się: @error',
'signalStrong': 'Silny',
'signalMedium': 'Średni',
'signalWeak': 'Słaby',
'signalVeryWeak': 'Bardzo słaby',
// 发现页
"searchAi": "Szukaj funkcji AI...",
"exploreSlogan": "Inteligentne słuchawki, nieskończone możliwości",
@ -197,48 +217,48 @@ const Map<String, String> plPL = {
"scene": "Scenariusz",
// 用量统计模块
"aiChat": "AI Chat",
"translationStats": "Translation Statistics",
"meetingStats": "Meeting Statistics",
"today": "Today",
"thisWeek": "This Week",
"thisMonth": "This Month",
"history": "History",
"currentSessionStats": "Current Session Stats",
"translationCount": "Translation Count",
"sessionDuration": "Session Duration",
"characters": "Characters",
"recordingDuration": "Recording Duration",
"totalApiCalls": "Total API Calls",
"sessionCount": "Session Count",
"totalCharacters": "Total Characters",
"apiCallStats": "API Call Stats",
"translationApi": "Translation API",
"aiChat": "Czat AI",
"translationStats": "Statystyki tłumaczeń",
"meetingStats": "Statystyki spotkań",
"today": "Dzisiaj",
"thisWeek": "Ten tydzień",
"thisMonth": "Ten miesiąc",
"history": "Historia",
"currentSessionStats": "Statystyki bieżącej sesji",
"translationCount": "Liczba tłumaczeń",
"sessionDuration": "Czas trwania sesji",
"characters": "Znaki",
"recordingDuration": "Czas nagrywania",
"totalApiCalls": "Łączna liczba wywołań API",
"sessionCount": "Liczba sesji",
"totalCharacters": "Łączna liczba znaków",
"apiCallStats": "Statystyki wywołań API",
"translationApi": "API tłumaczeń",
"asr": "ASR",
"tts": "TTS",
"dataVolumeStats": "Data Volume Stats",
"sourceTextCharacters": "Source Text Characters",
"ttsTextCharacters": "TTS Text Characters",
"effectiveAudioDuration": "Effective Audio Duration",
"totalSessionDuration": "Total Session Duration",
"costStats": "Cost Stats",
"estimatedCost": "Estimated Cost",
"dailyCostThreshold": "Daily Cost Threshold",
"monthlyCostThreshold": "Monthly Cost Threshold",
"usageBehaviorStats": "Usage Behavior Stats",
"mostUsedLanguagePair": "Most-used language pair",
"mostUsedMode": "Most-used mode",
"asrApiCalls": "ASR Calls",
"totalAudioDuration": "Total Audio Duration",
"audioFileSize": "Audio File Size",
"transcriptBytes": "Transcript Bytes",
"loadFailed": "Load Failed",
"dataVolumeStats": "Statystyki wolumenu danych",
"sourceTextCharacters": "Znaki tekstu źródłowego",
"ttsTextCharacters": "Znaki tekstu TTS",
"effectiveAudioDuration": "Efektywny czas trwania audio",
"totalSessionDuration": "Łączny czas trwania sesji",
"costStats": "Statystyki kosztów",
"estimatedCost": "Szacowany koszt",
"dailyCostThreshold": "Dzienny limit kosztów",
"monthlyCostThreshold": "Miesięczny limit kosztów",
"usageBehaviorStats": "Statystyki zachowań użytkownika",
"mostUsedLanguagePair": "Najczęściej używana para językowa",
"mostUsedMode": "Najczęściej używany tryb",
"asrApiCalls": "Wywołania ASR",
"totalAudioDuration": "Łączny czas trwania audio",
"audioFileSize": "Rozmiar pliku audio",
"transcriptBytes": "Rozmiar transkrypcji",
"loadFailed": "Ładowanie nie powiodło się",
"statsLoadFailedTryLater":
"Statistics failed to load. Please try again later.",
"cleanupComplete": "Cleanup Complete",
"cleanedOldData": "Cleaned data older than 90 days",
"exportFeature": "Export Feature",
"exportInDevelopment": "Data export is under development",
"Ładowanie statystyk nie powiodło się. Spróbuj ponownie później.",
"cleanupComplete": "Czyszczenie zakończone",
"cleanedOldData": "Wyczyszczono dane starsze niż 90 dni",
"exportFeature": "Funkcja eksportu",
"exportInDevelopment": "Eksport danych jest w trakcie rozwoju",
// 商品模块 - 通用
'availablePackages': 'Available Packages',
@ -882,6 +902,13 @@ const Map<String, String> plPL = {
'Chcielibyśmy wiedzieć, dlaczego zgłaszasz, możesz opisać problem, z którym się spotkałeś.',
'generatedByAi': 'Wygenerowano przez AI',
// Agent模块 - 工具调用
'toolCall': 'Wywołanie narzędzia',
'noResult': 'Brak wyniku',
'noToolCallContentToCopy': 'Brak treści wywołania narzędzia do skopiowania',
'toolCallDetails': 'Szczegóły wywołania narzędzia:',
'toolCallContentCopied': 'Treść wywołania narzędzia skopiowana do schowka',
// Agent模块 - 音乐卡片
'recommendedMusic': 'Oto kilka polecanych utworów:',
'playList': 'Lista odtwarzania',
@ -902,6 +929,28 @@ const Map<String, String> plPL = {
"bicycling": 'Rowerem',
"tsransit": 'Transport publiczny',
// Agent模块 - 导航选择
'selectNavigationApp': 'Wybierz aplikację nawigacyjną',
'amapMap': 'Amap',
'useAmapNavigation': 'Nawiguj z Amap',
'baiduMap': 'Baidu Maps',
'useBaiduNavigation': 'Nawiguj z Baidu Maps',
'googleMap': 'Google Maps',
'useGoogleNavigation': 'Nawiguj z Google Maps',
'appleMap': 'Apple Maps',
'useAppleNavigation': 'Nawiguj z Apple Maps',
'builtInNavigation': 'Wbudowana nawigacja',
'useBuiltInNavigation': 'Nawiguj z wbudowaną mapą',
'navigationStartFailed': 'Nie udało się uruchomić nawigacji',
'cannotPlayMusicListRetryLater': 'Nie można odtworzyć listy muzyki, spróbuj ponownie później',
'cannotPlaySong': 'Nie można odtworzyć utworu',
'openMapError': 'Błąd otwierania mapy',
'pleaseInstallAmapApp': 'Najpierw zainstaluj aplikację Amap',
'pleaseInstallBaiduMapApp': 'Najpierw zainstaluj aplikację Baidu Maps',
'appleMapStartFailed': 'Nie udało się uruchomić Apple Maps',
'appleMapUnavailable': 'Apple Maps niedostępne',
'openAppleMapError': 'Błąd otwierania Apple Maps',
// Agent模块 - 天气卡片
'weatherQuery': 'Zapytanie o warunki pogodowe:',
'highest': 'Najwyższa',
@ -974,8 +1023,18 @@ const Map<String, String> plPL = {
// 翻译模块 - 文本翻译
"languageDetectionFailed": "Language detection failed",
// 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'Wyłącz pływające okno',
'enableFloatingWindow': 'Włącz pływające okno',
'permissionTip': 'Wskazówka dotycząca uprawnień',
'micPermissionRequiredForRecording': 'Uprawnienie do mikrofonu jest wymagane do nagrywania',
'deleteTranslationRecordError': 'Błąd usuwania rekordu tłumaczenia: @error',
"translationFailed": "Translation failed",
"translating": "Tłumaczenie",
"translate": "Tłumacz",
"pleaseInputText": "Please input text",
"inputTextToTranslate": "Wprowadź tekst do przetłumaczenia",
"textTooLong": "Text too long, max 5000 characters",
// 翻译模块 - 历史记录
@ -1405,6 +1464,49 @@ const Map<String, String> plPL = {
"removeEarbudsEnsureBattery":
"Wyjmij obie słuchawki i upewnij się, że poziom naładowania baterii obu wynosi ponad 20%",
// OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': 'Znaleziono nową wersję @version',
'otaConfirmUpdateNow': 'Zaktualizować teraz?',
'otaUpdate': 'Aktualizuj',
'otaUpgradeSuccess': 'Aktualizacja zakończona sukcesem',
'otaUpgradeCompleteRepair': 'Aktualizacja firmware zakończona!\n\nUrządzenie wymaga ponownego sparowania, aby działać poprawnie. Przejść do strony parowania?',
'otaPairLater': 'Sparuj później',
'otaPairNow': 'Sparuj teraz',
'okConfirm': 'OK',
// OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'Błąd sprawdzania połączenia BLE: @error',
'otaBleNotConnected': 'Urządzenie BLE niepodłączone',
'otaBleNeedConnection': 'Aktualizacja firmware wymaga połączenia BLE\nUpewnij się, że urządzenie jest prawidłowo podłączone i spróbuj ponownie',
'otaDeviceInfoUnavailableTitle': 'Informacje o urządzeniu niedostępne',
'otaCannotGetDeviceInfo': 'Nie można uzyskać informacji o urządzeniu\nPodłącz ponownie urządzenie lub spróbuj później',
'otaBleCheckFailed': 'Sprawdzanie połączenia BLE nie powiodło się',
'otaCannotGetDeviceInfoCheckConnection': 'Nie można uzyskać informacji o urządzeniu, sprawdź połączenie',
'otaCannotGetProductInfoWithName': 'Nie można uzyskać informacji o produkcie, nazwa urządzenia: @deviceName',
'otaCannotGetBatteryInfo': 'Nie można uzyskać prawidłowych informacji o baterii',
'otaLowBattery': 'Niski poziom baterii',
'otaSingleBatteryLow': 'Poziom baterii urządzenia zbyt niski do aktualizacji firmware\nWymaganie: bateria musi być powyżej 20%\nAktualnie: @ear @battery%\nNaładuj i spróbuj ponownie',
'otaDoubleBatteryLow': 'Poziom baterii urządzenia zbyt niski do aktualizacji firmware\nWymaganie: obie słuchawki muszą mieć powyżej 20%\nAktualnie: Lewa @left%, Prawa @right%\nNaładuj i spróbuj ponownie',
'otaBatteryCheckFailed': 'Sprawdzanie baterii nie powiodło się',
// OTA升级模块 - 升级状态
'otaDefaultUpdateDesc': 'Ta aktualizacja zawiera optymalizacje wydajności i poprawki błędów.',
'otaGetLatestVersionFailed': 'Nie udało się pobrać informacji o najnowszej wersji',
'otaGetVersionInfoFailed': 'Nie udało się pobrać informacji o wersji',
'otaCheckingDeviceStatus': 'Sprawdzanie stanu urządzenia...',
'otaDownloadFailedCheckNetwork': 'Pobieranie nie powiodło się, sprawdź połączenie sieciowe',
'otaDownloadFailed': 'Pobieranie nie powiodło się',
'otaPreparingConnection': 'Przygotowywanie połączenia z urządzeniem...',
'otaConnectingDevice': 'Łączenie z urządzeniem...',
'otaUpgradeStarted': 'Aktualizacja OTA rozpoczęta...',
'otaUpgradeProgressWithPercent': 'Postęp aktualizacji: @percent%',
'otaUpgradeSuccessComplete': 'Aktualizacja zakończona pomyślnie',
'otaUpgradeFailedWithCode': 'Aktualizacja nie powiodła się, kod błędu: @code',
'otaUpgradeFailedTitle': 'Aktualizacja nie powiodła się',
'otaUpgradeFailedDesc': 'Sprawdź połączenie urządzenia lub pakiet aktualizacji, kod błędu: @code',
'otaDeviceDisconnected': 'Urządzenie rozłączone',
'otaDeviceConnected': 'Urządzenie podłączone',
// 音乐模块
"noMusic": "Brak muzyki", // 暂无音乐
"noPlayingMusic": "Brak odtwarzanej muzyki", // 暂无播放音乐

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

@ -1,5 +1,4 @@
const Map<String, String> ptPT = {
// 通用
'continue': 'Continuar',
'confirm': 'Confirmar',
@ -172,6 +171,30 @@ const Map<String, String> ptPT = {
'right': 'Direita',
'checkConnectionStatusFailed': 'Falha ao verificar o estado da conexão',
// 蓝牙扫描模块
'bleInitFailedWithError': 'Falha na inicializacao do Bluetooth: @error',
'needBluetoothAndLocationPermission':
'Sao necessarias permissoes de Bluetooth e localizacao para procurar dispositivos',
'permissionRequestFailedWithError':
'Falha na solicitacao de permissao: @error',
'needPermission': 'Permissao necessaria',
'blePermissionDialogContent':
'Este aplicativo precisa de permissoes de Bluetooth e localizacao para procurar dispositivos. Ative-as nas Configuracoes.',
'needEnableBluetooth': 'Ativar Bluetooth',
'enableBluetoothDialogContent':
'Ative o Bluetooth para procurar e conectar dispositivos.',
'bleScanFailedWithError': 'Falha na busca: @error',
'bleConnectionSuccess': 'Conexao bem-sucedida',
'bleConnectedToDevice': 'Conectado a @device',
'bleConnectionFailedWithError': 'Falha na conexao: @error',
'bleDisconnected': 'Desconectado',
'bleDeviceDisconnected': 'Dispositivo desconectado',
'bleDisconnectFailedWithError': 'Falha ao desconectar: @error',
'signalStrong': 'Forte',
'signalMedium': 'Medio',
'signalWeak': 'Fraco',
'signalVeryWeak': 'Muito fraco',
// 发现页
"searchAi": "Pesquisar funções de IA...",
"exploreSlogan": "Auriculares inteligentes, possibilidades infinitas",
@ -248,60 +271,65 @@ const Map<String, String> ptPT = {
'totalQuota': 'Total Quota',
'remaining': 'Remaining',
'featureDescription': 'Feature Description',
'paymentSuccess': 'Pagamento bem-sucedido',
'paymentFailed': 'Pagamento falhou',
'gotIt': 'Entendido',
'paymentFailedTryAgain': 'Pagamento falhou. Por favor, tente novamente.',
'selectPaymentMethod': 'Selecione o método de pagamento',
'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay',
'paypalPay': 'PayPal',
'appleIap': 'Apple IAP',
'googleIap': 'Google IAP',
'wechatOrderCreateFailed': 'Falha ao criar pedido do WeChat',
'alipayOrderCreateFailed': 'Falha ao criar pedido do Alipay',
'appleOrderCreateFailed': 'Falha ao criar pedido da Apple',
'googleOrderCreateFailed': 'Falha ao criar pedido do Google',
'paypalOrderCreateFailed': 'Falha ao criar pedido do PayPal',
'paymentException': 'Exceção de pagamento',
'paymentLaunchFailed': 'Falha ao iniciar o pagamento',
'paymentExceptionWithError': 'Exceção de pagamento: @error',
'paymentProcessingCheckLater': 'O seu pedido está a ser processado. Por favor, verifique mais tarde.',
'paymentResultQueryException': 'Falha ao consultar o resultado do pagamento: @error',
'orderConfirmedQuotaRefreshed': 'Pedido confirmado. A sua quota foi atualizada.',
'paymentCompletedConfirming': 'Pagamento concluído. A confirmar…',
'paymentCancelled': 'Pagamento cancelado',
'paypalOpenedCompleteInBrowser': 'PayPal aberto. Por favor, conclua o pagamento no seu navegador.',
'paypalOpenFailed': 'Não é possível abrir a página de pagamento do PayPal',
'paymentTestTitle': 'Teste de pagamento',
'paymentTestOrderInfo': 'Informações do pedido de teste',
'paymentTestProductId': 'ID do produto',
'paymentTestProductDescription': 'Descrição do produto',
'paymentTestWechatDescription': 'Teste de pagamento via WeChat',
'paymentTestAlipayDescription': 'Teste de pagamento via Alipay',
'paymentTestAmount': 'Montante',
'paymentTestSelectAmount': 'Selecione o montante de teste',
'paying': 'A pagar...',
'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': 'Estado do pagamento',
'errorInfoWithMessage': 'Erro: @message',
'retest': 'Testar novamente',
'paymentTestInstructionsTitle': 'Instruções',
'paymentTestInstructionsContent': '1. Selecione um montante de teste (recomendado: ¥0.01)\n2. Clique no botão de pagamento para iniciar\n3. Conclua o pagamento na aplicação de pagamento\n4. Volte para verificar o resultado',
'startingWechatPayment': 'A iniciar o WeChat Pay...',
'startingAlipayPayment': 'A iniciar o Alipay...',
'wechatPaymentSuccess': 'Pagamento via WeChat Pay bem-sucedido!',
'wechatPaymentFailed': 'Falha no WeChat Pay',
'wechatPaymentLaunchFailed': 'Falha ao iniciar o WeChat Pay',
'cannotLaunchWechatPayment': 'Não é possível iniciar o WeChat Pay',
'wechatPaymentException': 'Exceção do WeChat Pay',
'wechatPaymentTestCompleted': 'Teste do WeChat Pay concluído',
'alipayPaymentSuccess': 'Pagamento via Alipay bem-sucedido!',
'alipayPaymentFailed': 'Falha no Alipay',
'alipayPaymentLaunchFailed': 'Falha ao iniciar o Alipay',
'cannotLaunchAlipayPayment': 'Não é possível iniciar o Alipay',
'alipayPaymentException': 'Exceção do Alipay',
'paymentSuccess': 'Pagamento bem-sucedido',
'paymentFailed': 'Pagamento falhou',
'gotIt': 'Entendido',
'paymentFailedTryAgain': 'Pagamento falhou. Por favor, tente novamente.',
'selectPaymentMethod': 'Selecione o método de pagamento',
'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay',
'paypalPay': 'PayPal',
'appleIap': 'Apple IAP',
'googleIap': 'Google IAP',
'wechatOrderCreateFailed': 'Falha ao criar pedido do WeChat',
'alipayOrderCreateFailed': 'Falha ao criar pedido do Alipay',
'appleOrderCreateFailed': 'Falha ao criar pedido da Apple',
'googleOrderCreateFailed': 'Falha ao criar pedido do Google',
'paypalOrderCreateFailed': 'Falha ao criar pedido do PayPal',
'paymentException': 'Exceção de pagamento',
'paymentLaunchFailed': 'Falha ao iniciar o pagamento',
'paymentExceptionWithError': 'Exceção de pagamento: @error',
'paymentProcessingCheckLater':
'O seu pedido está a ser processado. Por favor, verifique mais tarde.',
'paymentResultQueryException':
'Falha ao consultar o resultado do pagamento: @error',
'orderConfirmedQuotaRefreshed':
'Pedido confirmado. A sua quota foi atualizada.',
'paymentCompletedConfirming': 'Pagamento concluído. A confirmar…',
'paymentCancelled': 'Pagamento cancelado',
'paypalOpenedCompleteInBrowser':
'PayPal aberto. Por favor, conclua o pagamento no seu navegador.',
'paypalOpenFailed': 'Não é possível abrir a página de pagamento do PayPal',
'paymentTestTitle': 'Teste de pagamento',
'paymentTestOrderInfo': 'Informações do pedido de teste',
'paymentTestProductId': 'ID do produto',
'paymentTestProductDescription': 'Descrição do produto',
'paymentTestWechatDescription': 'Teste de pagamento via WeChat',
'paymentTestAlipayDescription': 'Teste de pagamento via Alipay',
'paymentTestAmount': 'Montante',
'paymentTestSelectAmount': 'Selecione o montante de teste',
'paying': 'A pagar...',
'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': 'Estado do pagamento',
'errorInfoWithMessage': 'Erro: @message',
'retest': 'Testar novamente',
'paymentTestInstructionsTitle': 'Instruções',
'paymentTestInstructionsContent':
'1. Selecione um montante de teste (recomendado: ¥0.01)\n2. Clique no botão de pagamento para iniciar\n3. Conclua o pagamento na aplicação de pagamento\n4. Volte para verificar o resultado',
'startingWechatPayment': 'A iniciar o WeChat Pay...',
'startingAlipayPayment': 'A iniciar o Alipay...',
'wechatPaymentSuccess': 'Pagamento via WeChat Pay bem-sucedido!',
'wechatPaymentFailed': 'Falha no WeChat Pay',
'wechatPaymentLaunchFailed': 'Falha ao iniciar o WeChat Pay',
'cannotLaunchWechatPayment': 'Não é possível iniciar o WeChat Pay',
'wechatPaymentException': 'Exceção do WeChat Pay',
'wechatPaymentTestCompleted': 'Teste do WeChat Pay concluído',
'alipayPaymentSuccess': 'Pagamento via Alipay bem-sucedido!',
'alipayPaymentFailed': 'Falha no Alipay',
'alipayPaymentLaunchFailed': 'Falha ao iniciar o Alipay',
'cannotLaunchAlipayPayment': 'Não é possível iniciar o Alipay',
'alipayPaymentException': 'Exceção do Alipay',
"insufficientIntegral": "Insufficient integral",
"insufficientBalanceDesc":
'Insufficient balance, please go to the corresponding recharge page to recharge.',
@ -545,21 +573,22 @@ const Map<String, String> ptPT = {
'selectSummaryTemplate': 'Select Summary Template',
'useThisTemplate': 'Use This Template',
'lastUsed': 'Last Used',
'create': 'Criar',
'templateDetails': 'Detalhes do modelo',
'tag': 'Etiqueta',
'description': 'Descrição',
'template': 'Modelo',
'deleteTemplate': 'Eliminar modelo',
'deleteTemplateConfirm': 'Tem a certeza de que deseja eliminar este modelo?',
'editTemplate': 'Editar modelo',
'createTemplate': 'Criar modelo',
'name': 'Nome',
'templateContentHint': 'Por favor, insira o conteúdo do modelo! Dica: Clique no botão de IA acima para gerar rapidamente o conteúdo do modelo com base no nome e na descrição que introduziu',
'inputNameHint': 'Por favor, insira o nome',
'inputDescHint': 'Por favor, insira a descrição',
'custom': 'Personalizado',
'pleaseEnter': 'Por favor, insira',
'create': 'Criar',
'templateDetails': 'Detalhes do modelo',
'tag': 'Etiqueta',
'description': 'Descrição',
'template': 'Modelo',
'deleteTemplate': 'Eliminar modelo',
'deleteTemplateConfirm': 'Tem a certeza de que deseja eliminar este modelo?',
'editTemplate': 'Editar modelo',
'createTemplate': 'Criar modelo',
'name': 'Nome',
'templateContentHint':
'Por favor, insira o conteúdo do modelo! Dica: Clique no botão de IA acima para gerar rapidamente o conteúdo do modelo com base no nome e na descrição que introduziu',
'inputNameHint': 'Por favor, insira o nome',
'inputDescHint': 'Por favor, insira a descrição',
'custom': 'Personalizado',
'pleaseEnter': 'Por favor, insira',
'viewAll': 'View All',
'recordingLanguage': 'Recording Language',
'chineseSimplified': 'Chinese Mandarin (Simplified)',
@ -582,7 +611,7 @@ const Map<String, String> ptPT = {
'fileProcessingFailed': 'File processing failed: {filePath}, error: {error}',
// Meeting模块 - 思维导图
'saveMindMap': 'Guardar mapa mental',
'saveMindMap': 'Guardar mapa mental',
'shareMindMap': 'Share Mind Map',
'shareSuccess': 'Share Success',
@ -604,7 +633,7 @@ const Map<String, String> ptPT = {
'exportSummary': 'Export Summary',
'exportAs': 'Export As',
'exportingPDF': 'Exporting PDF...',
'export': 'Exportar',
'export': 'Exportar',
// Meeting模块 - 发言者
'applyToAllParagraphs': 'Aplicar a todos os parágrafos deste orador',
@ -714,18 +743,18 @@ const Map<String, String> ptPT = {
// Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Unknown Language',
'analysisFailed': 'Análise falhou, por favor tente mais tarde',
'transcriptionFailed': 'Transcrição falhou, por favor tente mais tarde',
'summaryFailed': 'Resumo falhou, por favor tente mais tarde',
'summaryFailedShort': 'Resumo falhou',
'transcriptionFailedShort': 'Transcrição falhou',
'analysisFailed': 'Análise falhou, por favor tente mais tarde',
'transcriptionFailed': 'Transcrição falhou, por favor tente mais tarde',
'summaryFailed': 'Resumo falhou, por favor tente mais tarde',
'summaryFailedShort': 'Resumo falhou',
'transcriptionFailedShort': 'Transcrição falhou',
// Meeting模块 - 播放器
'playerNotReady': 'O reprodutor de áudio não está pronto, por favor aguarde',
'playFailed': 'Reprodução falhou',
'audioFileNotFound': 'Ficheiro de áudio não encontrado',
'fetchingAudio': 'A obter áudio da nuvem...',
'playerLoadFailed': 'Falha ao carregar o reprodutor de áudio',
'playerNotReady': 'O reprodutor de áudio não está pronto, por favor aguarde',
'playFailed': 'Reprodução falhou',
'audioFileNotFound': 'Ficheiro de áudio não encontrado',
'fetchingAudio': 'A obter áudio da nuvem...',
'playerLoadFailed': 'Falha ao carregar o reprodutor de áudio',
// 设置页
"systemSettings": "Definições do Sistema",
@ -835,7 +864,8 @@ const Map<String, String> ptPT = {
"swipeUpForMore": "Deslize para cima para ver mais",
"callingTool": "I'm helping you, please wait!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断
'voice_interrupt_tip': 'Quando ativado: A IA não será interrompida pela sua voz enquanto fala e só poderá lidar com uma ronda de conversa de cada vez. Para iniciar uma nova ronda, basta dizer a palavra de ativação.',
'voice_interrupt_tip':
'Quando ativado: A IA não será interrompida pela sua voz enquanto fala e só poderá lidar com uma ronda de conversa de cada vez. Para iniciar uma nova ronda, basta dizer a palavra de ativação.',
// Agent模块 - 预设提示词
"presetMusic": "Play some music", // 来点音乐
@ -891,6 +921,14 @@ const Map<String, String> ptPT = {
'Gostaríamos de saber o motivo da sua denúncia, pode descrever o problema que encontrou.',
'generatedByAi': 'Gerado por IA',
// Agent模块 - 工具调用
'toolCall': 'Chamada de ferramenta',
'noResult': 'Sem resultado',
'noToolCallContentToCopy':
'Sem conteudo de chamada de ferramenta para copiar',
'toolCallDetails': 'Detalhes da chamada de ferramenta:',
'toolCallContentCopied': 'Conteudo copiado para a area de transferencia',
// Agent模块 - 音乐卡片
'recommendedMusic': 'Aqui estão algumas músicas recomendadas:',
'playList': 'Lista de Reprodução',
@ -911,6 +949,29 @@ const Map<String, String> ptPT = {
"bicycling": "De bicicleta",
"tsransit": "Transportes Públicos",
// Agent模块 - 导航选择
'selectNavigationApp': 'Selecionar aplicativo de navegacao',
'amapMap': 'Amap',
'useAmapNavigation': 'Navegar com Amap',
'baiduMap': 'Baidu Maps',
'useBaiduNavigation': 'Navegar com Baidu Maps',
'googleMap': 'Google Maps',
'useGoogleNavigation': 'Navegar com Google Maps',
'appleMap': 'Apple Maps',
'useAppleNavigation': 'Navegar com Apple Maps',
'builtInNavigation': 'Navegacao integrada',
'useBuiltInNavigation': 'Navegar com mapa integrado',
'navigationStartFailed': 'Falha ao iniciar a navegacao',
'cannotPlayMusicListRetryLater':
'Nao foi possivel reproduzir a lista de musicas, tente novamente mais tarde',
'cannotPlaySong': 'Nao foi possivel reproduzir a musica',
'openMapError': 'Erro ao abrir o mapa',
'pleaseInstallAmapApp': 'Instale primeiro o aplicativo Amap',
'pleaseInstallBaiduMapApp': 'Instale primeiro o aplicativo Baidu Maps',
'appleMapStartFailed': 'Falha ao iniciar Apple Maps',
'appleMapUnavailable': 'Apple Maps indisponivel',
'openAppleMapError': 'Erro ao abrir Apple Maps',
// Agent模块 - 天气卡片
'weatherQuery': 'A consultar as condições meteorológicas:',
'highest': 'Máxima',
@ -983,8 +1044,20 @@ const Map<String, String> ptPT = {
// 翻译模块 - 文本翻译
"languageDetectionFailed": "Language detection failed",
// 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'Desativar janela flutuante',
'enableFloatingWindow': 'Ativar janela flutuante',
'permissionTip': 'Dica de permissao',
'micPermissionRequiredForRecording':
'Permissao de microfone necessaria para gravacao',
'deleteTranslationRecordError':
'Erro ao excluir registro de traducao: @error',
"translationFailed": "Translation failed",
"translating": "A traduzir",
"translate": "Traduzir",
"pleaseInputText": "Please input text",
"inputTextToTranslate": "Introduza o texto a traduzir",
"textTooLong": "Text too long, max 5000 characters",
// 翻译模块 - 历史记录
@ -1261,17 +1334,20 @@ const Map<String, String> ptPT = {
'permissionUtilConfirm': 'OK',
// 原生前台服务通知(Android)
'native.notification.appName': 'VOITRANS',
'native.notification.navigation.title': 'Navegação em curso',
'native.notification.navigation.keepRunning': 'A navegar, mantenha a aplicação em execução',
'native.notification.bleAgent.running': 'O assistente de voz está em execução',
'native.notification.audioRecording.recording': 'A gravar áudio, toque para voltar à aplicação',
'native.notification.music.waiting': 'A aguardar reprodução',
'native.notification.music.previous': 'Anterior',
'native.notification.music.next': 'Seguinte',
'native.notification.music.play': 'Reproduzir',
'native.notification.music.pause': 'Pausa',
'native.notification.qqMusic.playing': 'A reproduzir música',
'native.notification.appName': 'VOITRANS',
'native.notification.navigation.title': 'Navegação em curso',
'native.notification.navigation.keepRunning':
'A navegar, mantenha a aplicação em execução',
'native.notification.bleAgent.running':
'O assistente de voz está em execução',
'native.notification.audioRecording.recording':
'A gravar áudio, toque para voltar à aplicação',
'native.notification.music.waiting': 'A aguardar reprodução',
'native.notification.music.previous': 'Anterior',
'native.notification.music.next': 'Seguinte',
'native.notification.music.play': 'Reproduzir',
'native.notification.music.pause': 'Pausa',
'native.notification.qqMusic.playing': 'A reproduzir música',
// 版本更新
'newVersionFound': 'Nova Versão Encontrada', // 版本更新对话框标题
@ -1413,6 +1489,60 @@ const Map<String, String> ptPT = {
"removeEarbudsEnsureBattery":
"Retire ambos os auriculares e certifique-se de que a bateria de ambos está acima de 20%",
// OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': 'Nova versao @version encontrada',
'otaConfirmUpdateNow': 'Atualizar agora?',
'otaUpdate': 'Atualizar',
'otaUpgradeSuccess': 'Atualizacao bem-sucedida',
'otaUpgradeCompleteRepair':
'Atualizacao concluida!\n\nO dispositivo precisa ser emparelhado novamente. Ir para emparelhamento?',
'otaPairLater': 'Emparelhar depois',
'otaPairNow': 'Emparelhar agora',
'okConfirm': 'OK',
// OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'Erro ao verificar conexao BLE: @error',
'otaBleNotConnected': 'Dispositivo BLE nao conectado',
'otaBleNeedConnection':
'Conexao BLE necessaria\nVerifique a conexao e tente novamente',
'otaDeviceInfoUnavailableTitle': 'Informacoes do dispositivo indisponiveis',
'otaCannotGetDeviceInfo':
'Cannot get device info\nPlease reconnect device or try again later',
'otaBleCheckFailed': 'Verificacao de conexao BLE falhou',
'otaCannotGetDeviceInfoCheckConnection':
'Nao foi possivel obter informacoes, verifique a conexao',
'otaCannotGetProductInfoWithName':
'Nao foi possivel obter informacoes do produto, nome: @deviceName',
'otaCannotGetBatteryInfo':
'Nao foi possivel obter informacoes de bateria validas',
'otaLowBattery': 'Bateria fraca',
'otaSingleBatteryLow':
'Bateria muito baixa\nRequisito: acima de 20%\nAtual: @ear @battery%\nCarregue e tente novamente',
'otaDoubleBatteryLow':
'Bateria muito baixa\nRequisito: ambos acima de 20%\nAtual: Esquerdo @left%, Direito @right%\nCarregue e tente novamente',
'otaBatteryCheckFailed': 'Verificacao de bateria falhou',
// OTA升级模块 - 升级状态
'otaDefaultUpdateDesc':
'Esta atualizacao inclui otimizacoes de desempenho e correcoes de bugs.',
'otaGetLatestVersionFailed': 'Falha ao obter a versao mais recente',
'otaGetVersionInfoFailed': 'Falha ao obter informacoes de versao',
'otaCheckingDeviceStatus': 'Verificando status do dispositivo...',
'otaDownloadFailedCheckNetwork':
'Download falhou, verifique a conexao de rede',
'otaDownloadFailed': 'Download falhou',
'otaPreparingConnection': 'Preparando conexao do dispositivo...',
'otaConnectingDevice': 'Conectando ao dispositivo...',
'otaUpgradeStarted': 'Atualizacao OTA iniciada...',
'otaUpgradeProgressWithPercent': 'Progresso: @percent%',
'otaUpgradeSuccessComplete': 'Atualizacao concluida com sucesso',
'otaUpgradeFailedWithCode': 'Atualizacao falhou, codigo de erro: @code',
'otaUpgradeFailedTitle': 'Atualizacao falhou',
'otaUpgradeFailedDesc':
'Verifique a conexao ou o pacote de atualizacao, codigo: @code',
'otaDeviceDisconnected': 'Dispositivo desconectado',
'otaDeviceConnected': 'Dispositivo conectado',
// 音乐模块
"noMusic": "Sem Música", // 暂无音乐
"noPlayingMusic": "Nenhuma música a tocar", // 暂无播放音乐

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

@ -1,5 +1,4 @@
const Map<String, String> roRO = {
// 通用
'continue': 'Continuă',
'confirm': 'Confirmă',
@ -172,6 +171,29 @@ const Map<String, String> roRO = {
'right': 'Dreapta',
'checkConnectionStatusFailed': 'Verificarea stării conexiunii a eșuat',
// 蓝牙扫描模块
'bleInitFailedWithError': 'Initializarea Bluetooth a esuat: @error',
'needBluetoothAndLocationPermission':
'Sunt necesare permisiuni Bluetooth si locatie pentru scanare',
'permissionRequestFailedWithError': 'Solicitarea permisiunii a esuat: @error',
'needPermission': 'Permisiune necesara',
'blePermissionDialogContent':
'Aplicatia necesita permisiuni Bluetooth si locatie pentru scanarea dispozitivelor. Activati-le din Setari.',
'needEnableBluetooth': 'Activati Bluetooth',
'enableBluetoothDialogContent':
'Activati Bluetooth pentru a scana si conecta dispozitive.',
'bleScanFailedWithError': 'Scanare esuata: @error',
'bleConnectionSuccess': 'Conectare reusita',
'bleConnectedToDevice': 'Conectat la @device',
'bleConnectionFailedWithError': 'Conectare esuata: @error',
'bleDisconnected': 'Deconectat',
'bleDeviceDisconnected': 'Dispozitiv deconectat',
'bleDisconnectFailedWithError': 'Deconectare esuata: @error',
'signalStrong': 'Puternic',
'signalMedium': 'Mediu',
'signalWeak': 'Slab',
'signalVeryWeak': 'Foarte slab',
// 发现页
"searchAi": "Căutați funcții AI...",
"exploreSlogan": "Căști inteligente, posibilități infinite",
@ -247,60 +269,65 @@ const Map<String, String> roRO = {
'totalQuota': 'Total Quota',
'remaining': 'Remaining',
'featureDescription': 'Feature Description',
'paymentSuccess': 'Plată reușită',
'paymentFailed': 'Plata a eșuat',
'gotIt': 'Am înțeles',
'paymentFailedTryAgain': 'Plata a eșuat. Vă rugăm să reîncercați.',
'selectPaymentMethod': 'Selectați metoda de plată',
'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay',
'paypalPay': 'PayPal',
'appleIap': 'Apple IAP',
'googleIap': 'Google IAP',
'wechatOrderCreateFailed': 'Crearea comenzii WeChat Pay a eșuat',
'alipayOrderCreateFailed': 'Crearea comenzii Alipay a eșuat',
'appleOrderCreateFailed': 'Crearea comenzii Apple a eșuat',
'googleOrderCreateFailed': 'Crearea comenzii Google a eșuat',
'paypalOrderCreateFailed': 'Crearea comenzii PayPal a eșuat',
'paymentException': 'Excepție la plată',
'paymentLaunchFailed': 'Lansarea plății a eșuat',
'paymentExceptionWithError': 'Excepție la plată: @error',
'paymentProcessingCheckLater': 'Comanda dvs. este în curs de procesare. Verificați mai târziu.',
'paymentResultQueryException': 'Interogarea rezultatului plății a eșuat: @error',
'orderConfirmedQuotaRefreshed': 'Comanda a fost confirmată. Cota dvs. a fost reîmprospătată.',
'paymentCompletedConfirming': 'Plată finalizată. Se confirmă…',
'paymentCancelled': 'Plată anulată',
'paypalOpenedCompleteInBrowser': 'PayPal deschis. Vă rugăm să finalizați plata în browser.',
'paypalOpenFailed': 'Nu se poate deschide pagina de plată PayPal',
'paymentTestTitle': 'Test de plată',
'paymentTestOrderInfo': 'Informații comandă de test',
'paymentTestProductId': 'ID produs',
'paymentTestProductDescription': 'Descrierea produsului',
'paymentTestWechatDescription': 'Test plată WeChat Pay',
'paymentTestAlipayDescription': 'Test plată Alipay',
'paymentTestAmount': 'Sumă',
'paymentTestSelectAmount': 'Selectați suma de test',
'paying': 'Se plătește...',
'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': 'Starea plății',
'errorInfoWithMessage': 'Eroare: @message',
'retest': 'Retestare',
'paymentTestInstructionsTitle': 'Instrucțiuni',
'paymentTestInstructionsContent': '1. Selectați o sumă de test (recomandat: ¥0,01)\n2. Faceți clic pe butonul de plată pentru a începe\n3. Finalizați plata în aplicația de plată\n4. Reveniți pentru a verifica rezultatul',
'startingWechatPayment': 'Se lansează WeChat Pay...',
'startingAlipayPayment': 'Se lansează Alipay...',
'wechatPaymentSuccess': 'WeChat Pay reușit!',
'wechatPaymentFailed': 'WeChat Pay eșuat',
'wechatPaymentLaunchFailed': 'Lansarea WeChat Pay a eșuat',
'cannotLaunchWechatPayment': 'Nu se poate lansa WeChat Pay',
'wechatPaymentException': 'Excepție WeChat Pay',
'wechatPaymentTestCompleted': 'Test WeChat Pay finalizat',
'alipayPaymentSuccess': 'Alipay reușit!',
'alipayPaymentFailed': 'Alipay eșuat',
'alipayPaymentLaunchFailed': 'Lansarea Alipay a eșuat',
'cannotLaunchAlipayPayment': 'Nu se poate lansa Alipay',
'alipayPaymentException': 'Excepție Alipay',
'paymentSuccess': 'Plată reușită',
'paymentFailed': 'Plata a eșuat',
'gotIt': 'Am înțeles',
'paymentFailedTryAgain': 'Plata a eșuat. Vă rugăm să reîncercați.',
'selectPaymentMethod': 'Selectați metoda de plată',
'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay',
'paypalPay': 'PayPal',
'appleIap': 'Apple IAP',
'googleIap': 'Google IAP',
'wechatOrderCreateFailed': 'Crearea comenzii WeChat Pay a eșuat',
'alipayOrderCreateFailed': 'Crearea comenzii Alipay a eșuat',
'appleOrderCreateFailed': 'Crearea comenzii Apple a eșuat',
'googleOrderCreateFailed': 'Crearea comenzii Google a eșuat',
'paypalOrderCreateFailed': 'Crearea comenzii PayPal a eșuat',
'paymentException': 'Excepție la plată',
'paymentLaunchFailed': 'Lansarea plății a eșuat',
'paymentExceptionWithError': 'Excepție la plată: @error',
'paymentProcessingCheckLater':
'Comanda dvs. este în curs de procesare. Verificați mai târziu.',
'paymentResultQueryException':
'Interogarea rezultatului plății a eșuat: @error',
'orderConfirmedQuotaRefreshed':
'Comanda a fost confirmată. Cota dvs. a fost reîmprospătată.',
'paymentCompletedConfirming': 'Plată finalizată. Se confirmă…',
'paymentCancelled': 'Plată anulată',
'paypalOpenedCompleteInBrowser':
'PayPal deschis. Vă rugăm să finalizați plata în browser.',
'paypalOpenFailed': 'Nu se poate deschide pagina de plată PayPal',
'paymentTestTitle': 'Test de plată',
'paymentTestOrderInfo': 'Informații comandă de test',
'paymentTestProductId': 'ID produs',
'paymentTestProductDescription': 'Descrierea produsului',
'paymentTestWechatDescription': 'Test plată WeChat Pay',
'paymentTestAlipayDescription': 'Test plată Alipay',
'paymentTestAmount': 'Sumă',
'paymentTestSelectAmount': 'Selectați suma de test',
'paying': 'Se plătește...',
'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': 'Starea plății',
'errorInfoWithMessage': 'Eroare: @message',
'retest': 'Retestare',
'paymentTestInstructionsTitle': 'Instrucțiuni',
'paymentTestInstructionsContent':
'1. Selectați o sumă de test (recomandat: ¥0,01)\n2. Faceți clic pe butonul de plată pentru a începe\n3. Finalizați plata în aplicația de plată\n4. Reveniți pentru a verifica rezultatul',
'startingWechatPayment': 'Se lansează WeChat Pay...',
'startingAlipayPayment': 'Se lansează Alipay...',
'wechatPaymentSuccess': 'WeChat Pay reușit!',
'wechatPaymentFailed': 'WeChat Pay eșuat',
'wechatPaymentLaunchFailed': 'Lansarea WeChat Pay a eșuat',
'cannotLaunchWechatPayment': 'Nu se poate lansa WeChat Pay',
'wechatPaymentException': 'Excepție WeChat Pay',
'wechatPaymentTestCompleted': 'Test WeChat Pay finalizat',
'alipayPaymentSuccess': 'Alipay reușit!',
'alipayPaymentFailed': 'Alipay eșuat',
'alipayPaymentLaunchFailed': 'Lansarea Alipay a eșuat',
'cannotLaunchAlipayPayment': 'Nu se poate lansa Alipay',
'alipayPaymentException': 'Excepție Alipay',
"insufficientIntegral": "Insufficient integral",
"insufficientBalanceDesc":
'Insufficient balance, please go to the corresponding recharge page to recharge.',
@ -501,16 +528,24 @@ const Map<String, String> roRO = {
'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.', // 保存录音失败,请重试
'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.', // 正在后台录音,点击返回应用
'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.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。
'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...',
@ -535,21 +570,22 @@ const Map<String, String> roRO = {
'selectSummaryTemplate': 'Select Summary Template',
'useThisTemplate': 'Use This Template',
'lastUsed': 'Last Used',
'create': 'Creează',
'templateDetails': 'Detalii șablon',
'tag': 'Etichetă',
'description': 'Descriere',
'template': 'Șablon',
'deleteTemplate': 'Șterge șablon',
'deleteTemplateConfirm': 'Sunteți sigur că doriți să ștergeți acest șablon?',
'editTemplate': 'Editează șablon',
'createTemplate': 'Creează șablon',
'name': 'Nume',
'templateContentHint': 'Vă rugăm să introduceți conținutul șablonului! Sfat: Faceți clic pe butonul AI de mai sus pentru a genera rapid conținutul șablonului pe baza numelui și descrierii introduse',
'inputNameHint': 'Vă rugăm să introduceți numele',
'inputDescHint': 'Vă rugăm să introduceți descrierea',
'custom': 'Personalizat',
'pleaseEnter': 'Vă rugăm introduceți',
'create': 'Creează',
'templateDetails': 'Detalii șablon',
'tag': 'Etichetă',
'description': 'Descriere',
'template': 'Șablon',
'deleteTemplate': 'Șterge șablon',
'deleteTemplateConfirm': 'Sunteți sigur că doriți să ștergeți acest șablon?',
'editTemplate': 'Editează șablon',
'createTemplate': 'Creează șablon',
'name': 'Nume',
'templateContentHint':
'Vă rugăm să introduceți conținutul șablonului! Sfat: Faceți clic pe butonul AI de mai sus pentru a genera rapid conținutul șablonului pe baza numelui și descrierii introduse',
'inputNameHint': 'Vă rugăm să introduceți numele',
'inputDescHint': 'Vă rugăm să introduceți descrierea',
'custom': 'Personalizat',
'pleaseEnter': 'Vă rugăm introduceți',
'viewAll': 'View All',
'recordingLanguage': 'Recording Language',
'chineseSimplified': 'Chinese Mandarin (Simplified)',
@ -572,7 +608,7 @@ const Map<String, String> roRO = {
'fileProcessingFailed': 'File processing failed: {filePath}, error: {error}',
// Meeting模块 - 思维导图
'saveMindMap': 'Salvează harta mentală',
'saveMindMap': 'Salvează harta mentală',
'shareMindMap': 'Share Mind Map',
'shareSuccess': 'Share Success',
@ -594,7 +630,7 @@ const Map<String, String> roRO = {
'exportSummary': 'Export Summary',
'exportAs': 'Export As',
'exportingPDF': 'Exporting PDF...',
'export': 'Exportă',
'export': 'Exportă',
// Meeting模块 - 发言者
'applyToAllParagraphs': 'Aplică la toate paragrafele acestui vorbitor',
@ -704,18 +740,19 @@ const Map<String, String> roRO = {
// Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Unknown Language',
'analysisFailed': 'Analiza a eșuat, vă rugăm să reîncercați mai târziu',
'transcriptionFailed': 'Transcrierea a eșuat, vă rugăm să reîncercați mai târziu',
'summaryFailed': 'Rezumatul a eșuat, vă rugăm să reîncercați mai târziu',
'summaryFailedShort': 'Rezumat eșuat',
'transcriptionFailedShort': 'Transcriere eșuată',
'analysisFailed': 'Analiza a eșuat, vă rugăm să reîncercați mai târziu',
'transcriptionFailed':
'Transcrierea a eșuat, vă rugăm să reîncercați mai târziu',
'summaryFailed': 'Rezumatul a eșuat, vă rugăm să reîncercați mai târziu',
'summaryFailedShort': 'Rezumat eșuat',
'transcriptionFailedShort': 'Transcriere eșuată',
// Meeting模块 - 播放器
'playerNotReady': 'Playerul audio nu este pregătit, vă rugăm așteptați',
'playFailed': 'Redarea a eșuat',
'audioFileNotFound': 'Fișierul audio nu a fost găsit',
'fetchingAudio': 'Se descarcă audio din cloud...',
'playerLoadFailed': 'Playerul audio nu a putut fi încărcat',
'playerNotReady': 'Playerul audio nu este pregătit, vă rugăm așteptați',
'playFailed': 'Redarea a eșuat',
'audioFileNotFound': 'Fișierul audio nu a fost găsit',
'fetchingAudio': 'Se descarcă audio din cloud...',
'playerLoadFailed': 'Playerul audio nu a putut fi încărcat',
// 设置页
"systemSettings": "Setări de sistem",
@ -823,7 +860,8 @@ const Map<String, String> roRO = {
"swipeUpForMore": "Glisați în sus pentru mai mult",
"callingTool": "I'm helping you, please wait!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断
'voice_interrupt_tip': 'Când este activat: AI-ul nu va fi întrerupt de vocea dvs. în timp ce vorbește și poate gestiona doar o rundă de conversație pe rând. Pentru a începe o rundă nouă, spuneți cuvântul de activare.',
'voice_interrupt_tip':
'Când este activat: AI-ul nu va fi întrerupt de vocea dvs. în timp ce vorbește și poate gestiona doar o rundă de conversație pe rând. Pentru a începe o rundă nouă, spuneți cuvântul de activare.',
// Agent模块 - 预设提示词
"presetMusic": "Play some music", // 来点音乐
@ -880,6 +918,13 @@ const Map<String, String> roRO = {
'Dorim să știm de ce raportați, puteți descrie problema pe care ați întâmpinat-o.',
'generatedByAi': 'Generat de AI',
// Agent模块 - 工具调用
'toolCall': 'Apel instrument',
'noResult': 'Niciun rezultat',
'noToolCallContentToCopy': 'Nu exista continut de apel instrument de copiat',
'toolCallDetails': 'Detalii apel instrument:',
'toolCallContentCopied': 'Continut copiat in clipboard',
// Agent模块 - 音乐卡片
'recommendedMusic': 'Iată câteva melodii recomandate:',
'playList': 'Listă de redare',
@ -900,6 +945,29 @@ const Map<String, String> roRO = {
"bicycling": "Cu bicicleta",
"tsransit": "Transport public",
// Agent模块 - 导航选择
'selectNavigationApp': 'Selectati aplicatia de navigare',
'amapMap': 'Amap',
'useAmapNavigation': 'Navigare cu Amap',
'baiduMap': 'Baidu Maps',
'useBaiduNavigation': 'Navigare cu Baidu Maps',
'googleMap': 'Google Maps',
'useGoogleNavigation': 'Navigare cu Google Maps',
'appleMap': 'Apple Maps',
'useAppleNavigation': 'Navigare cu Apple Maps',
'builtInNavigation': 'Navigare integrata',
'useBuiltInNavigation': 'Navigare cu harta integrata',
'navigationStartFailed': 'Pornirea navigarii a esuat',
'cannotPlayMusicListRetryLater':
'Nu se poate reda lista de muzica, incercati mai tarziu',
'cannotPlaySong': 'Nu se poate reda melodia',
'openMapError': 'Eroare la deschiderea hartii',
'pleaseInstallAmapApp': 'Instalati mai intai aplicatia Amap',
'pleaseInstallBaiduMapApp': 'Instalati mai intai aplicatia Baidu Maps',
'appleMapStartFailed': 'Pornirea Apple Maps a esuat',
'appleMapUnavailable': 'Apple Maps indisponibil',
'openAppleMapError': 'Eroare la deschiderea Apple Maps',
// Agent模块 - 天气卡片
'weatherQuery': 'Se interoghează condițiile meteo:',
'highest': 'Maximă',
@ -972,8 +1040,20 @@ const Map<String, String> roRO = {
// 翻译模块 - 文本翻译
"languageDetectionFailed": "Language detection failed",
// 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'Dezactivare fereastra plutitoare',
'enableFloatingWindow': 'Activare fereastra plutitoare',
'permissionTip': 'Sfat privind permisiunile',
'micPermissionRequiredForRecording':
'Este necesara permisiunea microfonului pentru inregistrare',
'deleteTranslationRecordError':
'Eroare la stergerea inregistrarii de traducere: @error',
"translationFailed": "Translation failed",
"translating": "Se traduce",
"translate": "Traducere",
"pleaseInputText": "Please input text",
"inputTextToTranslate": "Introduceți textul de tradus",
"textTooLong": "Text too long, max 5000 characters",
// 翻译模块 - 历史记录
@ -1250,17 +1330,19 @@ const Map<String, String> roRO = {
'permissionUtilConfirm': 'OK',
// 原生前台服务通知(Android)
'native.notification.appName': 'VOITRANS',
'native.notification.navigation.title': 'Navigare în curs',
'native.notification.navigation.keepRunning': 'Navigare în curs, mențineți aplicația deschisă',
'native.notification.bleAgent.running': 'Asistentul vocal funcționează',
'native.notification.audioRecording.recording': 'Se înregistrează audio, atingeți pentru a reveni la aplicație',
'native.notification.music.waiting': 'Așteaptă redarea',
'native.notification.music.previous': 'Anterior',
'native.notification.music.next': 'Următorul',
'native.notification.music.play': 'Redare',
'native.notification.music.pause': 'Pauză',
'native.notification.qqMusic.playing': 'Se redă muzică',
'native.notification.appName': 'VOITRANS',
'native.notification.navigation.title': 'Navigare în curs',
'native.notification.navigation.keepRunning':
'Navigare în curs, mențineți aplicația deschisă',
'native.notification.bleAgent.running': 'Asistentul vocal funcționează',
'native.notification.audioRecording.recording':
'Se înregistrează audio, atingeți pentru a reveni la aplicație',
'native.notification.music.waiting': 'Așteaptă redarea',
'native.notification.music.previous': 'Anterior',
'native.notification.music.next': 'Următorul',
'native.notification.music.play': 'Redare',
'native.notification.music.pause': 'Pauză',
'native.notification.qqMusic.playing': 'Se redă muzică',
// 版本更新
'newVersionFound': 'Versiune nouă găsită', // 版本更新对话框标题
@ -1401,6 +1483,60 @@ const Map<String, String> roRO = {
"removeEarbudsEnsureBattery":
"Scoateți ambele căști și asigurați-vă că bateria ambelor este peste 20%",
// OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': 'Versiune noua @version gasita',
'otaConfirmUpdateNow': 'Actualizare acum?',
'otaUpdate': 'Actualizare',
'otaUpgradeSuccess': 'Actualizare reusita',
'otaUpgradeCompleteRepair':
'Actualizare finalizata!\n\nDispozitivul trebuie re-asociat. Pagina de asociere?',
'otaPairLater': 'Imperechere mai tarziu',
'otaPairNow': 'Imperechere acum',
'okConfirm': 'OK',
// OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'Eroare la verificarea conexiunii BLE: @error',
'otaBleNotConnected': 'Dispozitiv BLE neconectat',
'otaBleNeedConnection':
'Conexiune BLE necesara\nVerificati conexiunea si incercati din nou',
'otaDeviceInfoUnavailableTitle': 'Informatii dispozitiv indisponibile',
'otaCannotGetDeviceInfo':
'Cannot get device info\nPlease reconnect device or try again later',
'otaBleCheckFailed': 'Verificarea conexiunii BLE a esuat',
'otaCannotGetDeviceInfoCheckConnection':
'Nu se pot obtine informatii, verificati conexiunea',
'otaCannotGetProductInfoWithName':
'Nu se pot obtine informatii produs, nume: @deviceName',
'otaCannotGetBatteryInfo':
'Nu se pot obtine informatii valide despre baterie',
'otaLowBattery': 'Baterie scazuta',
'otaSingleBatteryLow':
'Baterie prea scazuta\nCerinta: peste 20%\nActual: @ear @battery%\nIncarcati si incercati din nou',
'otaDoubleBatteryLow':
'Baterie prea scazuta\nCerinta: ambele casti peste 20%\nActual: Stanga @left%, Dreapta @right%\nIncarcati si incercati din nou',
'otaBatteryCheckFailed': 'Verificarea bateriei a esuat',
// OTA升级模块 - 升级状态
'otaDefaultUpdateDesc':
'Aceasta actualizare include optimizari de performanta si remedieri de erori.',
'otaGetLatestVersionFailed': 'Nu s-a putut obtine ultima versiune',
'otaGetVersionInfoFailed': 'Nu s-au putut obtine informatiile de versiune',
'otaCheckingDeviceStatus': 'Se verifica starea dispozitivului...',
'otaDownloadFailedCheckNetwork':
'Descarcare esuata, verificati conexiunea la retea',
'otaDownloadFailed': 'Descarcare esuata',
'otaPreparingConnection': 'Se pregateste conexiunea...',
'otaConnectingDevice': 'Se conecteaza la dispozitiv...',
'otaUpgradeStarted': 'Actualizare OTA inceputa...',
'otaUpgradeProgressWithPercent': 'Progres: @percent%',
'otaUpgradeSuccessComplete': 'Actualizare finalizata cu succes',
'otaUpgradeFailedWithCode': 'Actualizare esuata, cod eroare: @code',
'otaUpgradeFailedTitle': 'Actualizare esuata',
'otaUpgradeFailedDesc':
'Verificati conexiunea sau pachetul de actualizare, cod: @code',
'otaDeviceDisconnected': 'Dispozitiv deconectat',
'otaDeviceConnected': 'Dispozitiv conectat',
// 音乐模块
"noMusic": "Fără muzică", // 暂无音乐
"noPlayingMusic": "Nicio melodie în redare", // 暂无播放音乐

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

@ -1,5 +1,4 @@
const Map<String, String> ruRU = {
// 通用
'continue': 'Продолжить',
'confirm': 'Подтвердить',
@ -169,6 +168,29 @@ const Map<String, String> ruRU = {
'right': 'Право',
'checkConnectionStatusFailed': 'Не удалось проверить статус подключения',
// 蓝牙扫描模块
'bleInitFailedWithError': 'Инициализация Bluetooth не удалась: @error',
'needBluetoothAndLocationPermission':
'Для сканирования устройств требуются разрешения Bluetooth и местоположения',
'permissionRequestFailedWithError': 'Ошибка запроса разрешения: @error',
'needPermission': 'Требуется разрешение',
'blePermissionDialogContent':
'Приложению требуются разрешения Bluetooth и местоположения. Включите их в настройках.',
'needEnableBluetooth': 'Включите Bluetooth',
'enableBluetoothDialogContent':
'Включите Bluetooth для сканирования и подключения устройств.',
'bleScanFailedWithError': 'Ошибка сканирования: @error',
'bleConnectionSuccess': 'Подключение успешно',
'bleConnectedToDevice': 'Подключено к @device',
'bleConnectionFailedWithError': 'Ошибка подключения: @error',
'bleDisconnected': 'Отключено',
'bleDeviceDisconnected': 'Устройство отключено',
'bleDisconnectFailedWithError': 'Ошибка отключения: @error',
'signalStrong': 'Сильный',
'signalMedium': 'Средний',
'signalWeak': 'Слабый',
'signalVeryWeak': 'Очень слабый',
// 发现页
"searchAi": "Поиск функций AI...",
"exploreSlogan": "Умные наушники, безграничные возможности",
@ -245,60 +267,63 @@ const Map<String, String> ruRU = {
'totalQuota': 'Total Quota',
'remaining': 'Remaining',
'featureDescription': 'Feature Description',
'paymentSuccess': 'Оплата прошла успешно',
'paymentFailed': 'Оплата не удалась',
'gotIt': 'Понятно',
'paymentFailedTryAgain': 'Оплата не удалась. Попробуйте ещё раз.',
'selectPaymentMethod': 'Выберите способ оплаты',
'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay',
'paypalPay': 'PayPal',
'appleIap': 'Apple IAP',
'googleIap': 'Google IAP',
'wechatOrderCreateFailed': 'Не удалось создать заказ WeChat',
'alipayOrderCreateFailed': 'Не удалось создать заказ Alipay',
'appleOrderCreateFailed': 'Не удалось создать заказ Apple',
'googleOrderCreateFailed': 'Не удалось создать заказ Google',
'paypalOrderCreateFailed': 'Не удалось создать заказ PayPal',
'paymentException': 'Ошибка оплаты',
'paymentLaunchFailed': 'Не удалось запустить оплату',
'paymentExceptionWithError': 'Ошибка оплаты: @error',
'paymentProcessingCheckLater': 'Ваш заказ обрабатывается. Проверьте позже.',
'paymentResultQueryException': 'Не удалось запросить результат оплаты: @error',
'orderConfirmedQuotaRefreshed': 'Заказ подтверждён. Ваша квота обновлена.',
'paymentCompletedConfirming': 'Оплата завершена. Подтверждение…',
'paymentCancelled': 'Оплата отменена',
'paypalOpenedCompleteInBrowser': 'PayPal открыт. Завершите оплату в браузере.',
'paypalOpenFailed': 'Не удалось открыть страницу оплаты PayPal',
'paymentTestTitle': 'Тест оплаты',
'paymentTestOrderInfo': 'Информация о тестовом заказе',
'paymentTestProductId': 'ID товара',
'paymentTestProductDescription': 'Описание товара',
'paymentTestWechatDescription': 'Тест оплаты через WeChat',
'paymentTestAlipayDescription': 'Тест оплаты через Alipay',
'paymentTestAmount': 'Сумма',
'paymentTestSelectAmount': 'Выберите тестовую сумму',
'paying': 'Оплата...',
'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': 'Статус оплаты',
'errorInfoWithMessage': 'Ошибка: @message',
'retest': 'Повторный тест',
'paymentTestInstructionsTitle': 'Инструкция',
'paymentTestInstructionsContent': '1. Выберите тестовую сумму (рекомендуется: ¥0.01)\n2. Нажмите кнопку оплаты для начала\n3. Завершите оплату в приложении для оплаты\n4. Вернитесь, чтобы проверить результат',
'startingWechatPayment': 'Запуск WeChat Pay...',
'startingAlipayPayment': 'Запуск Alipay...',
'wechatPaymentSuccess': 'Оплата через WeChat Pay прошла успешно!',
'wechatPaymentFailed': 'Оплата через WeChat Pay не удалась',
'wechatPaymentLaunchFailed': 'Не удалось запустить WeChat Pay',
'cannotLaunchWechatPayment': 'Невозможно запустить WeChat Pay',
'wechatPaymentException': 'Ошибка WeChat Pay',
'wechatPaymentTestCompleted': 'Тест оплаты WeChat Pay завершён',
'alipayPaymentSuccess': 'Оплата через Alipay прошла успешно!',
'alipayPaymentFailed': 'Оплата через Alipay не удалась',
'alipayPaymentLaunchFailed': 'Не удалось запустить Alipay',
'cannotLaunchAlipayPayment': 'Невозможно запустить Alipay',
'alipayPaymentException': 'Ошибка Alipay',
'paymentSuccess': 'Оплата прошла успешно',
'paymentFailed': 'Оплата не удалась',
'gotIt': 'Понятно',
'paymentFailedTryAgain': 'Оплата не удалась. Попробуйте ещё раз.',
'selectPaymentMethod': 'Выберите способ оплаты',
'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay',
'paypalPay': 'PayPal',
'appleIap': 'Apple IAP',
'googleIap': 'Google IAP',
'wechatOrderCreateFailed': 'Не удалось создать заказ WeChat',
'alipayOrderCreateFailed': 'Не удалось создать заказ Alipay',
'appleOrderCreateFailed': 'Не удалось создать заказ Apple',
'googleOrderCreateFailed': 'Не удалось создать заказ Google',
'paypalOrderCreateFailed': 'Не удалось создать заказ PayPal',
'paymentException': 'Ошибка оплаты',
'paymentLaunchFailed': 'Не удалось запустить оплату',
'paymentExceptionWithError': 'Ошибка оплаты: @error',
'paymentProcessingCheckLater': 'Ваш заказ обрабатывается. Проверьте позже.',
'paymentResultQueryException':
'Не удалось запросить результат оплаты: @error',
'orderConfirmedQuotaRefreshed': 'Заказ подтверждён. Ваша квота обновлена.',
'paymentCompletedConfirming': 'Оплата завершена. Подтверждение…',
'paymentCancelled': 'Оплата отменена',
'paypalOpenedCompleteInBrowser':
'PayPal открыт. Завершите оплату в браузере.',
'paypalOpenFailed': 'Не удалось открыть страницу оплаты PayPal',
'paymentTestTitle': 'Тест оплаты',
'paymentTestOrderInfo': 'Информация о тестовом заказе',
'paymentTestProductId': 'ID товара',
'paymentTestProductDescription': 'Описание товара',
'paymentTestWechatDescription': 'Тест оплаты через WeChat',
'paymentTestAlipayDescription': 'Тест оплаты через Alipay',
'paymentTestAmount': 'Сумма',
'paymentTestSelectAmount': 'Выберите тестовую сумму',
'paying': 'Оплата...',
'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': 'Статус оплаты',
'errorInfoWithMessage': 'Ошибка: @message',
'retest': 'Повторный тест',
'paymentTestInstructionsTitle': 'Инструкция',
'paymentTestInstructionsContent':
'1. Выберите тестовую сумму (рекомендуется: ¥0.01)\n2. Нажмите кнопку оплаты для начала\n3. Завершите оплату в приложении для оплаты\n4. Вернитесь, чтобы проверить результат',
'startingWechatPayment': 'Запуск WeChat Pay...',
'startingAlipayPayment': 'Запуск Alipay...',
'wechatPaymentSuccess': 'Оплата через WeChat Pay прошла успешно!',
'wechatPaymentFailed': 'Оплата через WeChat Pay не удалась',
'wechatPaymentLaunchFailed': 'Не удалось запустить WeChat Pay',
'cannotLaunchWechatPayment': 'Невозможно запустить WeChat Pay',
'wechatPaymentException': 'Ошибка WeChat Pay',
'wechatPaymentTestCompleted': 'Тест оплаты WeChat Pay завершён',
'alipayPaymentSuccess': 'Оплата через Alipay прошла успешно!',
'alipayPaymentFailed': 'Оплата через Alipay не удалась',
'alipayPaymentLaunchFailed': 'Не удалось запустить Alipay',
'cannotLaunchAlipayPayment': 'Невозможно запустить Alipay',
'alipayPaymentException': 'Ошибка Alipay',
"insufficientIntegral": "Insufficient integral",
"insufficientBalanceDesc":
"Insufficient balance, please go to the corresponding recharge page to recharge.",
@ -544,21 +569,22 @@ const Map<String, String> ruRU = {
'selectSummaryTemplate': 'Select Summary Template',
'useThisTemplate': 'Use This Template',
'lastUsed': 'Last Used',
'create': 'Создать',
'templateDetails': 'Детали шаблона',
'tag': 'Тег',
'description': 'Описание',
'template': 'Шаблон',
'deleteTemplate': 'Удалить шаблон',
'deleteTemplateConfirm': 'Вы уверены, что хотите удалить этот шаблон?',
'editTemplate': 'Редактировать шаблон',
'createTemplate': 'Создать шаблон',
'name': 'Название',
'templateContentHint': 'Пожалуйста, введите содержание шаблона! Совет: нажмите кнопку AI выше, чтобы быстро сгенерировать содержание шаблона на основе введённого названия и описания',
'inputNameHint': 'Пожалуйста, введите название',
'inputDescHint': 'Пожалуйста, введите описание',
'custom': 'Пользовательский',
'pleaseEnter': 'Пожалуйста, введите',
'create': 'Создать',
'templateDetails': 'Детали шаблона',
'tag': 'Тег',
'description': 'Описание',
'template': 'Шаблон',
'deleteTemplate': 'Удалить шаблон',
'deleteTemplateConfirm': 'Вы уверены, что хотите удалить этот шаблон?',
'editTemplate': 'Редактировать шаблон',
'createTemplate': 'Создать шаблон',
'name': 'Название',
'templateContentHint':
'Пожалуйста, введите содержание шаблона! Совет: нажмите кнопку AI выше, чтобы быстро сгенерировать содержание шаблона на основе введённого названия и описания',
'inputNameHint': 'Пожалуйста, введите название',
'inputDescHint': 'Пожалуйста, введите описание',
'custom': 'Пользовательский',
'pleaseEnter': 'Пожалуйста, введите',
'viewAll': 'View All',
'recordingLanguage': 'Recording Language',
'chineseSimplified': 'Chinese Mandarin (Simplified)',
@ -581,7 +607,7 @@ const Map<String, String> ruRU = {
'fileProcessingFailed': 'File processing failed: {filePath}, error: {error}',
// Meeting模块 - 思维导图
'saveMindMap': 'Сохранить интеллект-карту',
'saveMindMap': 'Сохранить интеллект-карту',
'shareMindMap': 'Share Mind Map',
'shareSuccess': 'Share Success',
@ -603,7 +629,7 @@ const Map<String, String> ruRU = {
'exportSummary': 'Export Summary',
'exportAs': 'Export As',
'exportingPDF': 'Exporting PDF...',
'export': 'Экспорт',
'export': 'Экспорт',
// Meeting模块 - 发言者
'applyToAllParagraphs': 'Применить ко всем абзацам этого говорящего',
@ -713,18 +739,18 @@ const Map<String, String> ruRU = {
// Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Unknown Language',
'analysisFailed': 'Анализ не удался, попробуйте позже',
'transcriptionFailed': 'Транскрипция не удалась, попробуйте позже',
'summaryFailed': 'Не удалось создать сводку, попробуйте позже',
'summaryFailedShort': 'Сводка не удалась',
'transcriptionFailedShort': 'Транскрипция не удалась',
'analysisFailed': 'Анализ не удался, попробуйте позже',
'transcriptionFailed': 'Транскрипция не удалась, попробуйте позже',
'summaryFailed': 'Не удалось создать сводку, попробуйте позже',
'summaryFailedShort': 'Сводка не удалась',
'transcriptionFailedShort': 'Транскрипция не удалась',
// Meeting模块 - 播放器
'playerNotReady': 'Аудиоплеер не готов, подождите',
'playFailed': 'Ошибка воспроизведения',
'audioFileNotFound': 'Аудиофайл не найден',
'fetchingAudio': 'Получение аудио из облака...',
'playerLoadFailed': 'Не удалось загрузить аудиоплеер',
'playerNotReady': 'Аудиоплеер не готов, подождите',
'playFailed': 'Ошибка воспроизведения',
'audioFileNotFound': 'Аудиофайл не найден',
'fetchingAudio': 'Получение аудио из облака...',
'playerLoadFailed': 'Не удалось загрузить аудиоплеер',
// 设置页
"systemSettings": "Системные настройки",
@ -830,7 +856,8 @@ const Map<String, String> ruRU = {
"swipeUpForMore": "Проведите пальцем вверх, чтобы увидеть больше",
"callingTool": "I'm helping you, please wait!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断
'voice_interrupt_tip': 'При включении: ИИ не будет прерываться вашим голосом во время ответа и сможет обрабатывать только один раунд разговора за раз. Чтобы начать новый раунд, просто произнесите слово активации.',
'voice_interrupt_tip':
'При включении: ИИ не будет прерываться вашим голосом во время ответа и сможет обрабатывать только один раунд разговора за раз. Чтобы начать новый раунд, просто произнесите слово активации.',
// Agent模块 - 预设提示词
"presetMusic": "Play some music", // 来点音乐
@ -886,6 +913,13 @@ const Map<String, String> ruRU = {
'Мы хотим знать причину вашей жалобы, вы можете описать проблему, с которой столкнулись.',
'generatedByAi': 'Сгенерировано AI',
// Agent模块 - 工具调用
'toolCall': 'Вызов инструмента',
'noResult': 'Нет результатов',
'noToolCallContentToCopy': 'Нет содержимого вызова для копирования',
'toolCallDetails': 'Детали вызова инструмента:',
'toolCallContentCopied': 'Содержимое скопировано в буфер обмена',
// Agent模块 - 音乐卡片
'recommendedMusic': 'Вот несколько рекомендованных композиций:',
'playList': 'Плейлист',
@ -906,6 +940,29 @@ const Map<String, String> ruRU = {
"bicycling": "На велосипеде",
"tsransit": "Общественный транспорт",
// Agent模块 - 导航选择
'selectNavigationApp': 'Выберите навигатор',
'amapMap': 'Amap',
'useAmapNavigation': 'Навигация через Amap',
'baiduMap': 'Baidu Maps',
'useBaiduNavigation': 'Навигация через Baidu Maps',
'googleMap': 'Google Карты',
'useGoogleNavigation': 'Навигация через Google Карты',
'appleMap': 'Apple Карты',
'useAppleNavigation': 'Навигация через Apple Карты',
'builtInNavigation': 'Встроенная навигация',
'useBuiltInNavigation': 'Навигация по встроенной карте',
'navigationStartFailed': 'Не удалось запустить навигацию',
'cannotPlayMusicListRetryLater':
'Не удаётся воспроизвести плейлист, попробуйте позже',
'cannotPlaySong': 'Не удаётся воспроизвести песню',
'openMapError': 'Ошибка при открытии карты',
'pleaseInstallAmapApp': 'Установите приложение Amap',
'pleaseInstallBaiduMapApp': 'Установите приложение Baidu Maps',
'appleMapStartFailed': 'Не удалось запустить Apple Карты',
'appleMapUnavailable': 'Apple Карты недоступны',
'openAppleMapError': 'Ошибка при открытии Apple Карт',
// Agent模块 - 天气卡片
'weatherQuery': 'Запрос погодных условий:',
'highest': 'Макс.',
@ -978,8 +1035,19 @@ const Map<String, String> ruRU = {
// 翻译模块 - 文本翻译
"languageDetectionFailed": "Language detection failed",
// 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'Отключить плавающее окно',
'enableFloatingWindow': 'Включить плавающее окно',
'permissionTip': 'Подсказка о разрешениях',
'micPermissionRequiredForRecording':
'Для записи требуется разрешение микрофона',
'deleteTranslationRecordError': 'Ошибка при удалении записи перевода: @error',
"translationFailed": "Translation failed",
"translating": "Перевод",
"translate": "Перевести",
"pleaseInputText": "Please input text",
"inputTextToTranslate": "Введите текст для перевода",
"textTooLong": "Text too long, max 5000 characters",
// 翻译模块 - 历史记录
@ -1259,7 +1327,8 @@ const Map<String, String> ruRU = {
'native.notification.navigation.title': 'Навигация запущена', // 导航进行中
'native.notification.navigation.keepRunning':
'Идёт навигация, держите приложение запущенным', // 正在导航中,请保持应用运行
'native.notification.bleAgent.running': 'Голосовой помощник работает', // 语音助手正在运行
'native.notification.bleAgent.running':
'Голосовой помощник работает', // 语音助手正在运行
'native.notification.audioRecording.recording':
'Идёт запись, нажмите чтобы вернуться в приложение', // 正在录音,点击返回应用
'native.notification.music.waiting': 'Ожидание воспроизведения', // 等待播放
@ -1409,6 +1478,59 @@ const Map<String, String> ruRU = {
"removeEarbudsEnsureBattery":
"Извлеките оба наушника и убедитесь, что уровень заряда батареи в обоих превышает 20%",
// OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': 'Найдена новая версия @version',
'otaConfirmUpdateNow': 'Обновить сейчас?',
'otaUpdate': 'Обновить',
'otaUpgradeSuccess': 'Обновление успешно',
'otaUpgradeCompleteRepair':
'Обновление прошивки завершено!\n\nУстройство необходимо повторно сопрячь. Перейти на страницу сопряжения?',
'otaPairLater': 'Сопрячь позже',
'otaPairNow': 'Сопрячь сейчас',
'okConfirm': 'OK',
// OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'Ошибка проверки BLE-соединения: @error',
'otaBleNotConnected': 'BLE-устройство не подключено',
'otaBleNeedConnection':
'Требуется BLE-подключение\nУбедитесь, что устройство подключено, и повторите',
'otaDeviceInfoUnavailableTitle': 'Информация об устройстве недоступна',
'otaCannotGetDeviceInfo':
'Cannot get device info\nPlease reconnect device or try again later',
'otaBleCheckFailed': 'Проверка BLE-соединения не удалась',
'otaCannotGetDeviceInfoCheckConnection':
'Не удаётся получить информацию, проверьте подключение',
'otaCannotGetProductInfoWithName':
'Не удаётся получить информацию о продукте, устройство: @deviceName',
'otaCannotGetBatteryInfo': 'Не удаётся получить данные о батарее',
'otaLowBattery': 'Низкий заряд',
'otaSingleBatteryLow':
'Заряд слишком низкий\nТребование: выше 20%\nТекущий: @ear @battery%\nЗарядите и повторите',
'otaDoubleBatteryLow':
'Заряд слишком низкий\nТребование: оба наушника выше 20%\nТекущий: Левый @left%, Правый @right%\nЗарядите и повторите',
'otaBatteryCheckFailed': 'Проверка батареи не удалась',
// OTA升级模块 - 升级状态
'otaDefaultUpdateDesc':
'Это обновление включает оптимизацию производительности и исправление ошибок.',
'otaGetLatestVersionFailed':
'Не удалось получить информацию о последней версии',
'otaGetVersionInfoFailed': 'Не удалось получить информацию о версии',
'otaCheckingDeviceStatus': 'Проверка состояния устройства...',
'otaDownloadFailedCheckNetwork': 'Загрузка не удалась, проверьте сеть',
'otaDownloadFailed': 'Загрузка не удалась',
'otaPreparingConnection': 'Подготовка подключения...',
'otaConnectingDevice': 'Подключение к устройству...',
'otaUpgradeStarted': 'OTA-обновление начато...',
'otaUpgradeProgressWithPercent': 'Прогресс: @percent%',
'otaUpgradeSuccessComplete': 'Обновление успешно завершено',
'otaUpgradeFailedWithCode': 'Обновление не удалось, код ошибки: @code',
'otaUpgradeFailedTitle': 'Обновление не удалось',
'otaUpgradeFailedDesc':
'Проверьте подключение или пакет обновления, код: @code',
'otaDeviceDisconnected': 'Устройство отключено',
'otaDeviceConnected': 'Устройство подключено',
// 音乐模块
"noMusic": "Нет музыки", // 暂无音乐
"noPlayingMusic": "Нет воспроизводимой музыки", // 暂无播放音乐

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

@ -1,5 +1,4 @@
const Map<String, String> skSK = {
// 通用
'continue': 'Pokračovať',
'confirm': 'Potvrdiť',
@ -169,6 +168,29 @@ const Map<String, String> skSK = {
'right': 'Vpravo',
'checkConnectionStatusFailed': 'Kontrola stavu pripojenia zlyhala',
// 蓝牙扫描模块
'bleInitFailedWithError': 'Bluetooth initialization failed: @error',
'needBluetoothAndLocationPermission':
'Bluetooth and location permissions are required to scan devices',
'permissionRequestFailedWithError': 'Permission request failed: @error',
'needPermission': 'Permission Required',
'blePermissionDialogContent':
'This app requires Bluetooth and location permissions to scan devices. Please enable them in Settings.',
'needEnableBluetooth': 'Enable Bluetooth',
'enableBluetoothDialogContent':
'Please enable Bluetooth to scan and connect devices.',
'bleScanFailedWithError': 'Scan failed: @error',
'bleConnectionSuccess': 'Connection Successful',
'bleConnectedToDevice': 'Connected to @device',
'bleConnectionFailedWithError': 'Connection failed: @error',
'bleDisconnected': 'Disconnected',
'bleDeviceDisconnected': 'Device disconnected',
'bleDisconnectFailedWithError': 'Disconnect failed: @error',
'signalStrong': 'Strong',
'signalMedium': 'Medium',
'signalWeak': 'Weak',
'signalVeryWeak': 'Very Weak',
// 发现页
"searchAi": "Hľadať AI funkcie...",
"exploreSlogan": "Inteligentné slúchadlá, nekonečné možnosti",
@ -245,60 +267,64 @@ const Map<String, String> skSK = {
'totalQuota': 'Total Quota',
'remaining': 'Remaining',
'featureDescription': 'Feature Description',
'paymentSuccess': 'Platba úspešná',
'paymentFailed': 'Platba zlyhala',
'gotIt': 'Rozumiem',
'paymentFailedTryAgain': 'Platba zlyhala. Skúste to znova.',
'selectPaymentMethod': 'Vyberte spôsob platby',
'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay',
'paypalPay': 'PayPal',
'appleIap': 'Apple IAP',
'googleIap': 'Google IAP',
'wechatOrderCreateFailed': 'Vytvorenie objednávky WeChat zlyhalo',
'alipayOrderCreateFailed': 'Vytvorenie objednávky Alipay zlyhalo',
'appleOrderCreateFailed': 'Vytvorenie objednávky Apple zlyhalo',
'googleOrderCreateFailed': 'Vytvorenie objednávky Google zlyhalo',
'paypalOrderCreateFailed': 'Vytvorenie objednávky PayPal zlyhalo',
'paymentException': 'Výnimka platby',
'paymentLaunchFailed': 'Spustenie platby zlyhalo',
'paymentExceptionWithError': 'Výnimka platby: @error',
'paymentProcessingCheckLater': 'Vaša objednávka sa spracováva. Skontrolujte neskôr.',
'paymentResultQueryException': 'Nepodarilo sa zistiť výsledok platby: @error',
'orderConfirmedQuotaRefreshed': 'Objednávka potvrdená. Váš limit bol obnovený.',
'paymentCompletedConfirming': 'Platba dokončená. Potvrdzovanie…',
'paymentCancelled': 'Platba bola zrušená',
'paypalOpenedCompleteInBrowser': 'PayPal je otvorený. Dokončite platbu v prehliadači.',
'paypalOpenFailed': 'Nie je možné otvoriť platobnú stránku PayPal',
'paymentTestTitle': 'Test platby',
'paymentTestOrderInfo': 'Informácie o testovacej objednávke',
'paymentTestProductId': 'ID produktu',
'paymentTestProductDescription': 'Popis produktu',
'paymentTestWechatDescription': 'Test platby WeChat',
'paymentTestAlipayDescription': 'Test platby Alipay',
'paymentTestAmount': 'Suma',
'paymentTestSelectAmount': 'Vyberte testovaciu sumu',
'paying': 'Platba prebieha...',
'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': 'Stav platby',
'errorInfoWithMessage': 'Chyba: @message',
'retest': 'Znova otestovať',
'paymentTestInstructionsTitle': 'Pokyny',
'paymentTestInstructionsContent': '1. Vyberte testovaciu sumu (odporúčané: ¥0.01)\n2. Kliknite na tlačidlo platby pre spustenie\n3. Dokončite platbu v platobnej aplikácii\n4. Vráťte sa a skontrolujte výsledok',
'startingWechatPayment': 'Spúšťanie WeChat Pay...',
'startingAlipayPayment': 'Spúšťanie Alipay...',
'wechatPaymentSuccess': 'Platba WeChat Pay úspešná!',
'wechatPaymentFailed': 'Platba WeChat Pay zlyhala',
'wechatPaymentLaunchFailed': 'Spustenie WeChat Pay zlyhalo',
'cannotLaunchWechatPayment': 'Nie je možné spustiť WeChat Pay',
'wechatPaymentException': 'Výnimka WeChat Pay',
'wechatPaymentTestCompleted': 'Test platby WeChat Pay dokončený',
'alipayPaymentSuccess': 'Platba Alipay úspešná!',
'alipayPaymentFailed': 'Platba Alipay zlyhala',
'alipayPaymentLaunchFailed': 'Spustenie Alipay zlyhalo',
'cannotLaunchAlipayPayment': 'Nie je možné spustiť Alipay',
'alipayPaymentException': 'Výnimka Alipay',
'paymentSuccess': 'Platba úspešná',
'paymentFailed': 'Platba zlyhala',
'gotIt': 'Rozumiem',
'paymentFailedTryAgain': 'Platba zlyhala. Skúste to znova.',
'selectPaymentMethod': 'Vyberte spôsob platby',
'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay',
'paypalPay': 'PayPal',
'appleIap': 'Apple IAP',
'googleIap': 'Google IAP',
'wechatOrderCreateFailed': 'Vytvorenie objednávky WeChat zlyhalo',
'alipayOrderCreateFailed': 'Vytvorenie objednávky Alipay zlyhalo',
'appleOrderCreateFailed': 'Vytvorenie objednávky Apple zlyhalo',
'googleOrderCreateFailed': 'Vytvorenie objednávky Google zlyhalo',
'paypalOrderCreateFailed': 'Vytvorenie objednávky PayPal zlyhalo',
'paymentException': 'Výnimka platby',
'paymentLaunchFailed': 'Spustenie platby zlyhalo',
'paymentExceptionWithError': 'Výnimka platby: @error',
'paymentProcessingCheckLater':
'Vaša objednávka sa spracováva. Skontrolujte neskôr.',
'paymentResultQueryException': 'Nepodarilo sa zistiť výsledok platby: @error',
'orderConfirmedQuotaRefreshed':
'Objednávka potvrdená. Váš limit bol obnovený.',
'paymentCompletedConfirming': 'Platba dokončená. Potvrdzovanie…',
'paymentCancelled': 'Platba bola zrušená',
'paypalOpenedCompleteInBrowser':
'PayPal je otvorený. Dokončite platbu v prehliadači.',
'paypalOpenFailed': 'Nie je možné otvoriť platobnú stránku PayPal',
'paymentTestTitle': 'Test platby',
'paymentTestOrderInfo': 'Informácie o testovacej objednávke',
'paymentTestProductId': 'ID produktu',
'paymentTestProductDescription': 'Popis produktu',
'paymentTestWechatDescription': 'Test platby WeChat',
'paymentTestAlipayDescription': 'Test platby Alipay',
'paymentTestAmount': 'Suma',
'paymentTestSelectAmount': 'Vyberte testovaciu sumu',
'paying': 'Platba prebieha...',
'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': 'Stav platby',
'errorInfoWithMessage': 'Chyba: @message',
'retest': 'Znova otestovať',
'paymentTestInstructionsTitle': 'Pokyny',
'paymentTestInstructionsContent':
'1. Vyberte testovaciu sumu (odporúčané: ¥0.01)\n2. Kliknite na tlačidlo platby pre spustenie\n3. Dokončite platbu v platobnej aplikácii\n4. Vráťte sa a skontrolujte výsledok',
'startingWechatPayment': 'Spúšťanie WeChat Pay...',
'startingAlipayPayment': 'Spúšťanie Alipay...',
'wechatPaymentSuccess': 'Platba WeChat Pay úspešná!',
'wechatPaymentFailed': 'Platba WeChat Pay zlyhala',
'wechatPaymentLaunchFailed': 'Spustenie WeChat Pay zlyhalo',
'cannotLaunchWechatPayment': 'Nie je možné spustiť WeChat Pay',
'wechatPaymentException': 'Výnimka WeChat Pay',
'wechatPaymentTestCompleted': 'Test platby WeChat Pay dokončený',
'alipayPaymentSuccess': 'Platba Alipay úspešná!',
'alipayPaymentFailed': 'Platba Alipay zlyhala',
'alipayPaymentLaunchFailed': 'Spustenie Alipay zlyhalo',
'cannotLaunchAlipayPayment': 'Nie je možné spustiť Alipay',
'alipayPaymentException': 'Výnimka Alipay',
"insufficientIntegral": "Insufficient integral",
"insufficientBalanceDesc":
"Insufficient balance, please go to the corresponding recharge page to recharge.",
@ -541,21 +567,22 @@ const Map<String, String> skSK = {
'selectSummaryTemplate': 'Select Summary Template',
'useThisTemplate': 'Use This Template',
'lastUsed': 'Last Used',
'create': 'Vytvoriť',
'templateDetails': 'Podrobnosti šablóny',
'tag': 'Štítok',
'description': 'Popis',
'template': 'Šablóna',
'deleteTemplate': 'Odstrániť šablónu',
'deleteTemplateConfirm': 'Ste si istí, že chcete odstrániť túto šablónu?',
'editTemplate': 'Upraviť šablónu',
'createTemplate': 'Vytvoriť šablónu',
'name': 'Názov',
'templateContentHint': 'Prosím zadajte obsah šablóny! Tip: Kliknite na tlačidlo AI vyššie pre rýchle vygenerovanie obsahu šablóny na základe zadaného názvu a popisu',
'inputNameHint': 'Prosím zadajte názov',
'inputDescHint': 'Prosím zadajte popis',
'custom': 'Vlastné',
'pleaseEnter': 'Prosím zadajte',
'create': 'Vytvoriť',
'templateDetails': 'Podrobnosti šablóny',
'tag': 'Štítok',
'description': 'Popis',
'template': 'Šablóna',
'deleteTemplate': 'Odstrániť šablónu',
'deleteTemplateConfirm': 'Ste si istí, že chcete odstrániť túto šablónu?',
'editTemplate': 'Upraviť šablónu',
'createTemplate': 'Vytvoriť šablónu',
'name': 'Názov',
'templateContentHint':
'Prosím zadajte obsah šablóny! Tip: Kliknite na tlačidlo AI vyššie pre rýchle vygenerovanie obsahu šablóny na základe zadaného názvu a popisu',
'inputNameHint': 'Prosím zadajte názov',
'inputDescHint': 'Prosím zadajte popis',
'custom': 'Vlastné',
'pleaseEnter': 'Prosím zadajte',
'viewAll': 'View All',
'recordingLanguage': 'Recording Language',
'chineseSimplified': 'Chinese Mandarin (Simplified)',
@ -578,7 +605,7 @@ const Map<String, String> skSK = {
'fileProcessingFailed': 'File processing failed: {filePath}, error: {error}',
// Meeting模块 - 思维导图
'saveMindMap': 'Uložiť myšlienkovú mapu',
'saveMindMap': 'Uložiť myšlienkovú mapu',
'shareMindMap': 'Share Mind Map',
'shareSuccess': 'Share Success',
@ -600,7 +627,7 @@ const Map<String, String> skSK = {
'exportSummary': 'Export Summary',
'exportAs': 'Export As',
'exportingPDF': 'Exporting PDF...',
'export': 'Exportovať',
'export': 'Exportovať',
// Meeting模块 - 发言者
'applyToAllParagraphs': 'Použiť na všetky odseky tohto rečníka',
@ -710,18 +737,18 @@ const Map<String, String> skSK = {
// Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Unknown Language',
'analysisFailed': 'Analýza zlyhala, skúste to znova neskôr',
'transcriptionFailed': 'Prepis zlyhal, skúste to znova neskôr',
'summaryFailed': 'Zhrnutie zlyhalo, skúste to znova neskôr',
'summaryFailedShort': 'Zhrnutie zlyhalo',
'transcriptionFailedShort': 'Prepis zlyhal',
'analysisFailed': 'Analýza zlyhala, skúste to znova neskôr',
'transcriptionFailed': 'Prepis zlyhal, skúste to znova neskôr',
'summaryFailed': 'Zhrnutie zlyhalo, skúste to znova neskôr',
'summaryFailedShort': 'Zhrnutie zlyhalo',
'transcriptionFailedShort': 'Prepis zlyhal',
// Meeting模块 - 播放器
'playerNotReady': 'Zvukový prehrávač nie je pripravený, prosím počkajte',
'playFailed': 'Prehrávanie zlyhalo',
'audioFileNotFound': 'Zvukový súbor sa nenašiel',
'fetchingAudio': 'Načítavanie zvuku z cloudu...',
'playerLoadFailed': 'Zvukový prehrávač sa nepodarilo načítať',
'playerNotReady': 'Zvukový prehrávač nie je pripravený, prosím počkajte',
'playFailed': 'Prehrávanie zlyhalo',
'audioFileNotFound': 'Zvukový súbor sa nenašiel',
'fetchingAudio': 'Načítavanie zvuku z cloudu...',
'playerLoadFailed': 'Zvukový prehrávač sa nepodarilo načítať',
// 设置页
"systemSettings": "Systémové nastavenia",
@ -826,7 +853,8 @@ const Map<String, String> skSK = {
"swipeUpForMore": "Potiahnite nahor pre viac",
"callingTool": "I'm helping you, please wait!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断
'voice_interrupt_tip': 'Keď je zapnuté: AI nebude prerušený vaším hlasom počas rozprávania a môže spracovať iba jedno kolo konverzácie naraz. Pre začatie nového kola stačí povedať aktivačné slovo.',
'voice_interrupt_tip':
'Keď je zapnuté: AI nebude prerušený vaším hlasom počas rozprávania a môže spracovať iba jedno kolo konverzácie naraz. Pre začatie nového kola stačí povedať aktivačné slovo.',
// Agent模块 - 预设提示词
"presetMusic": "Play some music", // 来点音乐
@ -882,6 +910,13 @@ const Map<String, String> skSK = {
'Chceme vedieť dôvod vášho hlásenia, môžete opísať problém, s ktorým ste sa stretli.',
'generatedByAi': 'Vygenerované AI',
// Agent模块 - 工具调用
'toolCall': 'Tool Call',
'noResult': 'No Result',
'noToolCallContentToCopy': 'No tool call content to copy',
'toolCallDetails': 'Tool Call Details:',
'toolCallContentCopied': 'Tool call content copied to clipboard',
// Agent模块 - 音乐卡片
'recommendedMusic': 'Tu sú niektoré odporúčané skladby:',
'playList': 'Zoznam skladieb',
@ -902,6 +937,29 @@ const Map<String, String> skSK = {
"bicycling": "Bicyklovanie",
"tsransit": "Verejná doprava",
// Agent模块 - 导航选择
'selectNavigationApp': 'Select Navigation App',
'amapMap': 'Amap',
'useAmapNavigation': 'Navigate with Amap',
'baiduMap': 'Baidu Maps',
'useBaiduNavigation': 'Navigate with Baidu Maps',
'googleMap': 'Google Maps',
'useGoogleNavigation': 'Navigate with Google Maps',
'appleMap': 'Apple Maps',
'useAppleNavigation': 'Navigate with Apple Maps',
'builtInNavigation': 'Built-in Navigation',
'useBuiltInNavigation': 'Navigate with built-in map',
'navigationStartFailed': 'Failed to start navigation',
'cannotPlayMusicListRetryLater':
'Cannot play music list, please try again later',
'cannotPlaySong': 'Cannot play song',
'openMapError': 'Error opening map',
'pleaseInstallAmapApp': 'Please install the Amap app first',
'pleaseInstallBaiduMapApp': 'Please install the Baidu Maps app first',
'appleMapStartFailed': 'Apple Maps failed to start',
'appleMapUnavailable': 'Apple Maps unavailable',
'openAppleMapError': 'Error opening Apple Maps',
// Agent模块 - 天气卡片
'weatherQuery': 'Dotaz na poveternostné podmienky:',
'highest': 'Najvyššia',
@ -973,8 +1031,19 @@ const Map<String, String> skSK = {
// 翻译模块 - 文本翻译
"languageDetectionFailed": "Language detection failed",
// 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'Disable Floating Window',
'enableFloatingWindow': 'Enable Floating Window',
'permissionTip': 'Permission Tip',
'micPermissionRequiredForRecording':
'Microphone permission is required for recording',
'deleteTranslationRecordError': 'Error deleting translation record: @error',
"translationFailed": "Translation failed",
"translating": "Translating",
"translate": "Translate",
"pleaseInputText": "Please input text",
"inputTextToTranslate": "Zadajte text na preklad",
"textTooLong": "Text too long, max 5000 characters",
// 翻译模块 - 历史记录
@ -1247,17 +1316,19 @@ const Map<String, String> skSK = {
'permissionUtilConfirm': 'OK',
// 原生前台服务通知(Android)
'native.notification.appName': 'VOITRANS',
'native.notification.navigation.title': 'Navigácia prebieha',
'native.notification.navigation.keepRunning': 'Navigácia, ponechajte aplikáciu spustenú',
'native.notification.bleAgent.running': 'Hlasový asistent je spustený',
'native.notification.audioRecording.recording': 'Nahrávanie zvuku, ťuknite pre návrat do aplikácie',
'native.notification.music.waiting': 'Čakanie na prehranie',
'native.notification.music.previous': 'Predchádzajúca',
'native.notification.music.next': 'Ďalšia',
'native.notification.music.play': 'Prehrať',
'native.notification.music.pause': 'Pozastaviť',
'native.notification.qqMusic.playing': 'Prehrávanie hudby',
'native.notification.appName': 'VOITRANS',
'native.notification.navigation.title': 'Navigácia prebieha',
'native.notification.navigation.keepRunning':
'Navigácia, ponechajte aplikáciu spustenú',
'native.notification.bleAgent.running': 'Hlasový asistent je spustený',
'native.notification.audioRecording.recording':
'Nahrávanie zvuku, ťuknite pre návrat do aplikácie',
'native.notification.music.waiting': 'Čakanie na prehranie',
'native.notification.music.previous': 'Predchádzajúca',
'native.notification.music.next': 'Ďalšia',
'native.notification.music.play': 'Prehrať',
'native.notification.music.pause': 'Pozastaviť',
'native.notification.qqMusic.playing': 'Prehrávanie hudby',
// 版本更新
'newVersionFound': 'Nájdená nová verzia', // 版本更新对话框标题
@ -1398,6 +1469,59 @@ const Map<String, String> skSK = {
"removeEarbudsEnsureBattery":
"Vyberte obe slúchadlá a uistite sa, že batéria oboch je nad 20%",
// OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': 'New version @version found',
'otaConfirmUpdateNow': 'Update now?',
'otaUpdate': 'Update',
'otaUpgradeSuccess': 'Upgrade Successful',
'otaUpgradeCompleteRepair':
'Firmware upgrade complete!\n\nDevice needs to be re-paired to work properly. Go to pairing page now?',
'otaPairLater': 'Pair Later',
'otaPairNow': 'Pair Now',
'okConfirm': 'OK',
// OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'Error checking BLE connection: @error',
'otaBleNotConnected': 'BLE Device Not Connected',
'otaBleNeedConnection':
'Firmware upgrade requires BLE device connection\nPlease ensure device is properly connected and try again',
'otaDeviceInfoUnavailableTitle': 'Device Info Unavailable',
'otaCannotGetDeviceInfo':
'Cannot get device info\nPlease reconnect device or try again later',
'otaBleCheckFailed': 'BLE Connection Check Failed',
'otaCannotGetDeviceInfoCheckConnection':
'Cannot get device info, please check device connection',
'otaCannotGetProductInfoWithName':
'Cannot get product info, device name: @deviceName',
'otaCannotGetBatteryInfo': 'Cannot get valid battery info',
'otaLowBattery': 'Low Battery',
'otaSingleBatteryLow':
'Device battery too low for firmware upgrade\nRequirement: battery must be above 20%\nCurrent: @ear @battery%\nPlease charge and try again',
'otaDoubleBatteryLow':
'Device battery too low for firmware upgrade\nRequirement: both earbuds must be above 20%\nCurrent: Left @left%, Right @right%\nPlease charge and try again',
'otaBatteryCheckFailed': 'Battery Check Failed',
// OTA升级模块 - 升级状态
'otaDefaultUpdateDesc':
'This update includes performance optimizations and bug fixes.',
'otaGetLatestVersionFailed': 'Failed to get latest version info',
'otaGetVersionInfoFailed': 'Failed to get version info',
'otaCheckingDeviceStatus': 'Checking device status...',
'otaDownloadFailedCheckNetwork':
'Download failed, please check network connection',
'otaDownloadFailed': 'Download Failed',
'otaPreparingConnection': 'Preparing device connection...',
'otaConnectingDevice': 'Connecting to device...',
'otaUpgradeStarted': 'OTA upgrade started...',
'otaUpgradeProgressWithPercent': 'Upgrade progress: @percent%',
'otaUpgradeSuccessComplete': 'Upgrade completed successfully',
'otaUpgradeFailedWithCode': 'Upgrade failed, error code: @code',
'otaUpgradeFailedTitle': 'Upgrade Failed',
'otaUpgradeFailedDesc':
'Please check device connection or update package, error code: @code',
'otaDeviceDisconnected': 'Device disconnected',
'otaDeviceConnected': 'Device connected',
// 音乐模块
"noMusic": "Žiadna hudba", // 暂无音乐
"noPlayingMusic": "Neprehráva sa žiadna hudba", // 暂无播放音乐

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

@ -1,5 +1,4 @@
const Map<String, String> slSI = {
// 通用
'continue': 'Nadaljuj',
'confirm': 'Potrdi',
@ -169,6 +168,29 @@ const Map<String, String> slSI = {
'right': 'Desno',
'checkConnectionStatusFailed': 'Preverjanje stanja povezave ni uspelo',
// 蓝牙扫描模块
'bleInitFailedWithError': 'Bluetooth initialization failed: @error',
'needBluetoothAndLocationPermission':
'Bluetooth and location permissions are required to scan devices',
'permissionRequestFailedWithError': 'Permission request failed: @error',
'needPermission': 'Permission Required',
'blePermissionDialogContent':
'This app requires Bluetooth and location permissions to scan devices. Please enable them in Settings.',
'needEnableBluetooth': 'Enable Bluetooth',
'enableBluetoothDialogContent':
'Please enable Bluetooth to scan and connect devices.',
'bleScanFailedWithError': 'Scan failed: @error',
'bleConnectionSuccess': 'Connection Successful',
'bleConnectedToDevice': 'Connected to @device',
'bleConnectionFailedWithError': 'Connection failed: @error',
'bleDisconnected': 'Disconnected',
'bleDeviceDisconnected': 'Device disconnected',
'bleDisconnectFailedWithError': 'Disconnect failed: @error',
'signalStrong': 'Strong',
'signalMedium': 'Medium',
'signalWeak': 'Weak',
'signalVeryWeak': 'Very Weak',
// 发现页
"searchAi": "Išči funkcije AI...",
"exploreSlogan": "Pametne slušalke, neskončne možnosti",
@ -245,60 +267,65 @@ const Map<String, String> slSI = {
'totalQuota': 'Total Quota',
'remaining': 'Remaining',
'featureDescription': 'Feature Description',
'paymentSuccess': 'Plačilo uspešno',
'paymentFailed': 'Plačilo ni uspelo',
'gotIt': 'Razumem',
'paymentFailedTryAgain': 'Plačilo ni uspelo. Poskusite znova.',
'selectPaymentMethod': 'Izberite način plačila',
'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay',
'paypalPay': 'PayPal',
'appleIap': 'Apple IAP',
'googleIap': 'Google IAP',
'wechatOrderCreateFailed': 'Ustvarjanje naročila WeChat ni uspelo',
'alipayOrderCreateFailed': 'Ustvarjanje naročila Alipay ni uspelo',
'appleOrderCreateFailed': 'Ustvarjanje naročila Apple ni uspelo',
'googleOrderCreateFailed': 'Ustvarjanje naročila Google ni uspelo',
'paypalOrderCreateFailed': 'Ustvarjanje naročila PayPal ni uspelo',
'paymentException': 'Izjema pri plačilu',
'paymentLaunchFailed': 'Zagon plačila ni uspel',
'paymentExceptionWithError': 'Izjema pri plačilu: @error',
'paymentProcessingCheckLater': 'Vaše naročilo se obdeluje. Preverite pozneje.',
'paymentResultQueryException': 'Poizvedba o rezultatu plačila ni uspela: @error',
'orderConfirmedQuotaRefreshed': 'Naročilo je potrjeno. Vaša kvota je bila osvežena.',
'paymentCompletedConfirming': 'Plačilo je zaključeno. Potrjevanje…',
'paymentCancelled': 'Plačilo je preklicano',
'paypalOpenedCompleteInBrowser': 'PayPal je odprt. Prosimo dokončajte plačilo v brskalniku.',
'paypalOpenFailed': 'Ni mogoče odpreti strani za plačilo PayPal',
'paymentTestTitle': 'Test plačila',
'paymentTestOrderInfo': 'Informacije o testnem naročilu',
'paymentTestProductId': 'ID izdelka',
'paymentTestProductDescription': 'Opis izdelka',
'paymentTestWechatDescription': 'Test plačila WeChat',
'paymentTestAlipayDescription': 'Test plačila Alipay',
'paymentTestAmount': 'Znesek',
'paymentTestSelectAmount': 'Izberite testni znesek',
'paying': 'Plačevanje...',
'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': 'Stanje plačila',
'errorInfoWithMessage': 'Napaka: @message',
'retest': 'Ponovno testiraj',
'paymentTestInstructionsTitle': 'Navodila',
'paymentTestInstructionsContent': '1. Izberite testni znesek (priporočeno: ¥0.01)\n2. Kliknite gumb za plačilo za začetek\n3. Dokončajte plačilo v aplikaciji za plačila\n4. Vrnite se in preverite rezultat',
'startingWechatPayment': 'Zaganjanje WeChat Pay...',
'startingAlipayPayment': 'Zaganjanje Alipay...',
'wechatPaymentSuccess': 'Plačilo WeChat Pay uspešno!',
'wechatPaymentFailed': 'Plačilo WeChat Pay ni uspelo',
'wechatPaymentLaunchFailed': 'Zagon WeChat Pay ni uspel',
'cannotLaunchWechatPayment': 'Ni mogoče zagnati WeChat Pay',
'wechatPaymentException': 'Izjema WeChat Pay',
'wechatPaymentTestCompleted': 'Test plačila WeChat Pay je zaključen',
'alipayPaymentSuccess': 'Plačilo Alipay uspešno!',
'alipayPaymentFailed': 'Plačilo Alipay ni uspelo',
'alipayPaymentLaunchFailed': 'Zagon Alipay ni uspel',
'cannotLaunchAlipayPayment': 'Ni mogoče zagnati Alipay',
'alipayPaymentException': 'Izjema Alipay',
'paymentSuccess': 'Plačilo uspešno',
'paymentFailed': 'Plačilo ni uspelo',
'gotIt': 'Razumem',
'paymentFailedTryAgain': 'Plačilo ni uspelo. Poskusite znova.',
'selectPaymentMethod': 'Izberite način plačila',
'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay',
'paypalPay': 'PayPal',
'appleIap': 'Apple IAP',
'googleIap': 'Google IAP',
'wechatOrderCreateFailed': 'Ustvarjanje naročila WeChat ni uspelo',
'alipayOrderCreateFailed': 'Ustvarjanje naročila Alipay ni uspelo',
'appleOrderCreateFailed': 'Ustvarjanje naročila Apple ni uspelo',
'googleOrderCreateFailed': 'Ustvarjanje naročila Google ni uspelo',
'paypalOrderCreateFailed': 'Ustvarjanje naročila PayPal ni uspelo',
'paymentException': 'Izjema pri plačilu',
'paymentLaunchFailed': 'Zagon plačila ni uspel',
'paymentExceptionWithError': 'Izjema pri plačilu: @error',
'paymentProcessingCheckLater':
'Vaše naročilo se obdeluje. Preverite pozneje.',
'paymentResultQueryException':
'Poizvedba o rezultatu plačila ni uspela: @error',
'orderConfirmedQuotaRefreshed':
'Naročilo je potrjeno. Vaša kvota je bila osvežena.',
'paymentCompletedConfirming': 'Plačilo je zaključeno. Potrjevanje…',
'paymentCancelled': 'Plačilo je preklicano',
'paypalOpenedCompleteInBrowser':
'PayPal je odprt. Prosimo dokončajte plačilo v brskalniku.',
'paypalOpenFailed': 'Ni mogoče odpreti strani za plačilo PayPal',
'paymentTestTitle': 'Test plačila',
'paymentTestOrderInfo': 'Informacije o testnem naročilu',
'paymentTestProductId': 'ID izdelka',
'paymentTestProductDescription': 'Opis izdelka',
'paymentTestWechatDescription': 'Test plačila WeChat',
'paymentTestAlipayDescription': 'Test plačila Alipay',
'paymentTestAmount': 'Znesek',
'paymentTestSelectAmount': 'Izberite testni znesek',
'paying': 'Plačevanje...',
'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': 'Stanje plačila',
'errorInfoWithMessage': 'Napaka: @message',
'retest': 'Ponovno testiraj',
'paymentTestInstructionsTitle': 'Navodila',
'paymentTestInstructionsContent':
'1. Izberite testni znesek (priporočeno: ¥0.01)\n2. Kliknite gumb za plačilo za začetek\n3. Dokončajte plačilo v aplikaciji za plačila\n4. Vrnite se in preverite rezultat',
'startingWechatPayment': 'Zaganjanje WeChat Pay...',
'startingAlipayPayment': 'Zaganjanje Alipay...',
'wechatPaymentSuccess': 'Plačilo WeChat Pay uspešno!',
'wechatPaymentFailed': 'Plačilo WeChat Pay ni uspelo',
'wechatPaymentLaunchFailed': 'Zagon WeChat Pay ni uspel',
'cannotLaunchWechatPayment': 'Ni mogoče zagnati WeChat Pay',
'wechatPaymentException': 'Izjema WeChat Pay',
'wechatPaymentTestCompleted': 'Test plačila WeChat Pay je zaključen',
'alipayPaymentSuccess': 'Plačilo Alipay uspešno!',
'alipayPaymentFailed': 'Plačilo Alipay ni uspelo',
'alipayPaymentLaunchFailed': 'Zagon Alipay ni uspel',
'cannotLaunchAlipayPayment': 'Ni mogoče zagnati Alipay',
'alipayPaymentException': 'Izjema Alipay',
"insufficientIntegral": "Insufficient integral",
"insufficientBalanceDesc":
"Insufficient balance, please go to the corresponding recharge page to recharge.",
@ -540,21 +567,23 @@ const Map<String, String> slSI = {
'selectSummaryTemplate': 'Select Summary Template',
'useThisTemplate': 'Use This Template',
'lastUsed': 'Last Used',
'create': 'Ustvari',
'templateDetails': 'Podrobnosti predloge',
'tag': 'Oznaka',
'description': 'Opis',
'template': 'Predloga',
'deleteTemplate': 'Izbriši predlogo',
'deleteTemplateConfirm': 'Ali ste prepričani, da želite izbrisati to predlogo?',
'editTemplate': 'Uredi predlogo',
'createTemplate': 'Ustvari predlogo',
'name': 'Ime',
'templateContentHint': 'Prosimo vnesite vsebino predloge! Namig: Kliknite gumb AI zgoraj za hitro ustvarjanje vsebine predloge na podlagi vnesenega imena in opisa',
'inputNameHint': 'Prosimo vnesite ime',
'inputDescHint': 'Prosimo vnesite opis',
'custom': 'Po meri',
'pleaseEnter': 'Prosimo vnesite',
'create': 'Ustvari',
'templateDetails': 'Podrobnosti predloge',
'tag': 'Oznaka',
'description': 'Opis',
'template': 'Predloga',
'deleteTemplate': 'Izbriši predlogo',
'deleteTemplateConfirm':
'Ali ste prepričani, da želite izbrisati to predlogo?',
'editTemplate': 'Uredi predlogo',
'createTemplate': 'Ustvari predlogo',
'name': 'Ime',
'templateContentHint':
'Prosimo vnesite vsebino predloge! Namig: Kliknite gumb AI zgoraj za hitro ustvarjanje vsebine predloge na podlagi vnesenega imena in opisa',
'inputNameHint': 'Prosimo vnesite ime',
'inputDescHint': 'Prosimo vnesite opis',
'custom': 'Po meri',
'pleaseEnter': 'Prosimo vnesite',
'viewAll': 'View All',
'recordingLanguage': 'Recording Language',
'chineseSimplified': 'Chinese Mandarin (Simplified)',
@ -577,7 +606,7 @@ const Map<String, String> slSI = {
'fileProcessingFailed': 'File processing failed: {filePath}, error: {error}',
// Meeting模块 - 思维导图
'saveMindMap': 'Shrani miselni zemljevid',
'saveMindMap': 'Shrani miselni zemljevid',
'shareMindMap': 'Share Mind Map',
'shareSuccess': 'Share Success',
@ -599,7 +628,7 @@ const Map<String, String> slSI = {
'exportSummary': 'Export Summary',
'exportAs': 'Export As',
'exportingPDF': 'Exporting PDF...',
'export': 'Izvozi',
'export': 'Izvozi',
// Meeting模块 - 发言者
'applyToAllParagraphs': 'Uporabi za vse odstavke tega govorca',
@ -709,18 +738,18 @@ const Map<String, String> slSI = {
// Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Unknown Language',
'analysisFailed': 'Analiza ni uspela, poskusite znova pozneje',
'transcriptionFailed': 'Prepis ni uspel, poskusite znova pozneje',
'summaryFailed': 'Povzetek ni uspel, poskusite znova pozneje',
'summaryFailedShort': 'Povzetek ni uspel',
'transcriptionFailedShort': 'Prepis ni uspel',
'analysisFailed': 'Analiza ni uspela, poskusite znova pozneje',
'transcriptionFailed': 'Prepis ni uspel, poskusite znova pozneje',
'summaryFailed': 'Povzetek ni uspel, poskusite znova pozneje',
'summaryFailedShort': 'Povzetek ni uspel',
'transcriptionFailedShort': 'Prepis ni uspel',
// Meeting模块 - 播放器
'playerNotReady': 'Zvočni predvajalnik ni pripravljen, prosimo počakajte',
'playFailed': 'Predvajanje ni uspelo',
'audioFileNotFound': 'Zvočna datoteka ni bila najdena',
'fetchingAudio': 'Pridobivanje zvoka iz oblaka...',
'playerLoadFailed': 'Zvočni predvajalnik se ni uspel naložiti',
'playerNotReady': 'Zvočni predvajalnik ni pripravljen, prosimo počakajte',
'playFailed': 'Predvajanje ni uspelo',
'audioFileNotFound': 'Zvočna datoteka ni bila najdena',
'fetchingAudio': 'Pridobivanje zvoka iz oblaka...',
'playerLoadFailed': 'Zvočni predvajalnik se ni uspel naložiti',
// 设置页
"systemSettings": "Sistemske nastavitve",
@ -827,7 +856,8 @@ const Map<String, String> slSI = {
"swipeUpForMore": "Povlecite navzgor za več",
"callingTool": "I'm helping you, please wait!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断
'voice_interrupt_tip': 'Ko je vklopljeno: AI ne bo prekinjen z vašim glasom med govorjenjem in lahko obdela le en krog pogovora naenkrat. Za začetek novega kroga preprosto izgovorite prebujeno besedo.',
'voice_interrupt_tip':
'Ko je vklopljeno: AI ne bo prekinjen z vašim glasom med govorjenjem in lahko obdela le en krog pogovora naenkrat. Za začetek novega kroga preprosto izgovorite prebujeno besedo.',
// Agent模块 - 预设提示词
"presetMusic": "Play some music", // 来点音乐
@ -884,6 +914,13 @@ const Map<String, String> slSI = {
'Želimo vedeti, zakaj prijavljate, lahko opišete težavo, s katero ste se soočili.',
'generatedByAi': 'Generirano s strani AI',
// Agent模块 - 工具调用
'toolCall': 'Tool Call',
'noResult': 'No Result',
'noToolCallContentToCopy': 'No tool call content to copy',
'toolCallDetails': 'Tool Call Details:',
'toolCallContentCopied': 'Tool call content copied to clipboard',
// Agent模块 - 音乐卡片
'recommendedMusic': 'Tukaj je nekaj priporočene glasbe:',
'playList': 'Seznam predvajanja',
@ -904,6 +941,29 @@ const Map<String, String> slSI = {
"bicycling": "Kolesarjenje",
"tsransit": "Javni prevoz",
// Agent模块 - 导航选择
'selectNavigationApp': 'Select Navigation App',
'amapMap': 'Amap',
'useAmapNavigation': 'Navigate with Amap',
'baiduMap': 'Baidu Maps',
'useBaiduNavigation': 'Navigate with Baidu Maps',
'googleMap': 'Google Maps',
'useGoogleNavigation': 'Navigate with Google Maps',
'appleMap': 'Apple Maps',
'useAppleNavigation': 'Navigate with Apple Maps',
'builtInNavigation': 'Built-in Navigation',
'useBuiltInNavigation': 'Navigate with built-in map',
'navigationStartFailed': 'Failed to start navigation',
'cannotPlayMusicListRetryLater':
'Cannot play music list, please try again later',
'cannotPlaySong': 'Cannot play song',
'openMapError': 'Error opening map',
'pleaseInstallAmapApp': 'Please install the Amap app first',
'pleaseInstallBaiduMapApp': 'Please install the Baidu Maps app first',
'appleMapStartFailed': 'Apple Maps failed to start',
'appleMapUnavailable': 'Apple Maps unavailable',
'openAppleMapError': 'Error opening Apple Maps',
// Agent模块 - 天气卡片
'weatherQuery': 'Poizvedba o vremenskih razmerah:',
'highest': 'Najvišja',
@ -976,8 +1036,19 @@ const Map<String, String> slSI = {
// 翻译模块 - 文本翻译
"languageDetectionFailed": "Language detection failed",
// 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'Disable Floating Window',
'enableFloatingWindow': 'Enable Floating Window',
'permissionTip': 'Permission Tip',
'micPermissionRequiredForRecording':
'Microphone permission is required for recording',
'deleteTranslationRecordError': 'Error deleting translation record: @error',
"translationFailed": "Translation failed",
"translating": "Translating",
"translate": "Translate",
"pleaseInputText": "Please input text",
"inputTextToTranslate": "Vnesite besedilo za prevod",
"textTooLong": "Text too long, max 5000 characters",
// 翻译模块 - 历史记录
@ -1251,17 +1322,19 @@ const Map<String, String> slSI = {
'permissionUtilConfirm': 'OK',
// 原生前台服务通知(Android)
'native.notification.appName': 'VOITRANS',
'native.notification.navigation.title': 'Navigacija poteka',
'native.notification.navigation.keepRunning': 'Navigacija, ohranite aplikacijo zagnano',
'native.notification.bleAgent.running': 'Glasovni pomočnik deluje',
'native.notification.audioRecording.recording': 'Snemanje zvoka, tapnite za vrnitev v aplikacijo',
'native.notification.music.waiting': 'Čakanje na predvajanje',
'native.notification.music.previous': 'Prejšnja',
'native.notification.music.next': 'Naslednja',
'native.notification.music.play': 'Predvajaj',
'native.notification.music.pause': 'Premor',
'native.notification.qqMusic.playing': 'Predvajanje glasbe',
'native.notification.appName': 'VOITRANS',
'native.notification.navigation.title': 'Navigacija poteka',
'native.notification.navigation.keepRunning':
'Navigacija, ohranite aplikacijo zagnano',
'native.notification.bleAgent.running': 'Glasovni pomočnik deluje',
'native.notification.audioRecording.recording':
'Snemanje zvoka, tapnite za vrnitev v aplikacijo',
'native.notification.music.waiting': 'Čakanje na predvajanje',
'native.notification.music.previous': 'Prejšnja',
'native.notification.music.next': 'Naslednja',
'native.notification.music.play': 'Predvajaj',
'native.notification.music.pause': 'Premor',
'native.notification.qqMusic.playing': 'Predvajanje glasbe',
// 版本更新
'newVersionFound': 'Najdena nova različica', // 版本更新对话框标题
@ -1402,6 +1475,59 @@ const Map<String, String> slSI = {
"removeEarbudsEnsureBattery":
"Odstranite obe slušalki in se prepričajte, da je baterija obeh nad 20%",
// OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': 'New version @version found',
'otaConfirmUpdateNow': 'Update now?',
'otaUpdate': 'Update',
'otaUpgradeSuccess': 'Upgrade Successful',
'otaUpgradeCompleteRepair':
'Firmware upgrade complete!\n\nDevice needs to be re-paired to work properly. Go to pairing page now?',
'otaPairLater': 'Pair Later',
'otaPairNow': 'Pair Now',
'okConfirm': 'OK',
// OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'Error checking BLE connection: @error',
'otaBleNotConnected': 'BLE Device Not Connected',
'otaBleNeedConnection':
'Firmware upgrade requires BLE device connection\nPlease ensure device is properly connected and try again',
'otaDeviceInfoUnavailableTitle': 'Device Info Unavailable',
'otaCannotGetDeviceInfo':
'Cannot get device info\nPlease reconnect device or try again later',
'otaBleCheckFailed': 'BLE Connection Check Failed',
'otaCannotGetDeviceInfoCheckConnection':
'Cannot get device info, please check device connection',
'otaCannotGetProductInfoWithName':
'Cannot get product info, device name: @deviceName',
'otaCannotGetBatteryInfo': 'Cannot get valid battery info',
'otaLowBattery': 'Low Battery',
'otaSingleBatteryLow':
'Device battery too low for firmware upgrade\nRequirement: battery must be above 20%\nCurrent: @ear @battery%\nPlease charge and try again',
'otaDoubleBatteryLow':
'Device battery too low for firmware upgrade\nRequirement: both earbuds must be above 20%\nCurrent: Left @left%, Right @right%\nPlease charge and try again',
'otaBatteryCheckFailed': 'Battery Check Failed',
// OTA升级模块 - 升级状态
'otaDefaultUpdateDesc':
'This update includes performance optimizations and bug fixes.',
'otaGetLatestVersionFailed': 'Failed to get latest version info',
'otaGetVersionInfoFailed': 'Failed to get version info',
'otaCheckingDeviceStatus': 'Checking device status...',
'otaDownloadFailedCheckNetwork':
'Download failed, please check network connection',
'otaDownloadFailed': 'Download Failed',
'otaPreparingConnection': 'Preparing device connection...',
'otaConnectingDevice': 'Connecting to device...',
'otaUpgradeStarted': 'OTA upgrade started...',
'otaUpgradeProgressWithPercent': 'Upgrade progress: @percent%',
'otaUpgradeSuccessComplete': 'Upgrade completed successfully',
'otaUpgradeFailedWithCode': 'Upgrade failed, error code: @code',
'otaUpgradeFailedTitle': 'Upgrade Failed',
'otaUpgradeFailedDesc':
'Please check device connection or update package, error code: @code',
'otaDeviceDisconnected': 'Device disconnected',
'otaDeviceConnected': 'Device connected',
// 音乐模块
"noMusic": "Ni glasbe", // 暂无音乐
"noPlayingMusic": "Ni predvajane glasbe", // 暂无播放音乐

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

File diff suppressed because it is too large

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

@ -161,6 +161,26 @@ const Map<String, String> svSE = {
'right': 'Höger',
'checkConnectionStatusFailed': 'Kontroll av anslutningsstatus misslyckades',
// 蓝牙扫描模块
'bleInitFailedWithError': 'Bluetooth-initiering misslyckades: @error',
'needBluetoothAndLocationPermission': 'Bluetooth- och platsbehörigheter krävs för att söka enheter',
'permissionRequestFailedWithError': 'Behörighetsförfrågan misslyckades: @error',
'needPermission': 'Behörighet krävs',
'blePermissionDialogContent': 'Appen behöver Bluetooth- och platsbehörigheter för att söka enheter. Aktivera dem i Inställningar.',
'needEnableBluetooth': 'Aktivera Bluetooth',
'enableBluetoothDialogContent': 'Aktivera Bluetooth för att söka och ansluta enheter.',
'bleScanFailedWithError': 'Sökning misslyckades: @error',
'bleConnectionSuccess': 'Anslutningen lyckades',
'bleConnectedToDevice': 'Ansluten till @device',
'bleConnectionFailedWithError': 'Anslutning misslyckades: @error',
'bleDisconnected': 'Frånkopplad',
'bleDeviceDisconnected': 'Enheten frånkopplad',
'bleDisconnectFailedWithError': 'Frånkoppling misslyckades: @error',
'signalStrong': 'Stark signal',
'signalMedium': 'Medelsignal',
'signalWeak': 'Svag signal',
'signalVeryWeak': 'Mycket svag signal',
// 发现页
"searchAi": "Sök AI-funktioner...",
"exploreSlogan": "Smarta hörlurar, oändliga möjligheter",
@ -823,6 +843,13 @@ const Map<String, String> svSE = {
'reportDescriptionHint': 'Vi vill veta varför du anmäler, du kan beskriva problemet du stött på.',
'generatedByAi': 'Genererad av AI',
// Agent模块 - 工具调用
'toolCall': 'Verktygsamtal',
'noResult': 'Inget resultat',
'noToolCallContentToCopy': 'Inget verktygsamtal att kopiera',
'toolCallDetails': 'Detaljer om verktygsamtal:',
'toolCallContentCopied': 'Verktygsamtal kopierat till urklipp',
// Agent模块 - 音乐卡片
'recommendedMusic': 'Här är några rekommenderade låtar:',
'playList': 'Spellista',
@ -843,6 +870,28 @@ const Map<String, String> svSE = {
"bicycling": "Cykling",
"tsransit": "Kollektivtrafik",
// Agent模块 - 导航选择
'selectNavigationApp': 'Välj navigeringsapp',
'amapMap': 'Amap',
'useAmapNavigation': 'Navigera med Amap',
'baiduMap': 'Baidu Maps',
'useBaiduNavigation': 'Navigera med Baidu Maps',
'googleMap': 'Google Maps',
'useGoogleNavigation': 'Navigera med Google Maps',
'appleMap': 'Apple Maps',
'useAppleNavigation': 'Navigera med Apple Maps',
'builtInNavigation': 'Inbyggd navigation',
'useBuiltInNavigation': 'Navigera med inbyggd karta',
'navigationStartFailed': 'Kunde inte starta navigering',
'cannotPlayMusicListRetryLater': 'Kan inte spela musiklistan, försök igen senare',
'cannotPlaySong': 'Kan inte spela låten',
'openMapError': 'Fel vid öppning av karta',
'pleaseInstallAmapApp': 'Installera Amap-appen först',
'pleaseInstallBaiduMapApp': 'Installera Baidu Maps-appen först',
'appleMapStartFailed': 'Apple Maps kunde inte startas',
'appleMapUnavailable': 'Apple Maps är inte tillgängligt',
'openAppleMapError': 'Fel vid öppning av Apple Maps',
// Agent模块 - 天气卡片
'weatherQuery': 'Söker väderinformation:',
'highest': 'Högsta',
@ -903,10 +952,20 @@ const Map<String, String> svSE = {
"bluetoothCallStateError": "Please make sure the Bluetooth headset is connected to the phone and in a call state",
"autoDetect": "Auto Detect", // 自动检测
// 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'Inaktivera flytande fönster',
'enableFloatingWindow': 'Aktivera flytande fönster',
'permissionTip': 'Behörighetstips',
'micPermissionRequiredForRecording': 'Mikrofonbehörighet krävs för inspelning',
'deleteTranslationRecordError': 'Fel vid radering av översättningspost: @error',
// 翻译模块 - 文本翻译
"languageDetectionFailed": "Language detection failed",
"translationFailed": "Translation failed",
"translating": "Översätter",
"translate": "Översätt",
"pleaseInputText": "Please input text",
"inputTextToTranslate": "Ange texten som ska översättas",
"textTooLong": "Text too long, max 5000 characters",
// 翻译模块 - 历史记录
@ -1253,6 +1312,47 @@ const Map<String, String> svSE = {
"updateContent": "Uppdateringsinnehåll",
"removeEarbudsEnsureBattery": "Ta ut båda hörlurarna och se till att batterinivån är över 20 % på båda",
// OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': 'Ny version @version hittad',
'otaConfirmUpdateNow': 'Uppdatera nu?',
'otaUpdate': 'Uppdatera',
'otaUpgradeSuccess': 'Uppgradering lyckades',
'otaUpgradeCompleteRepair': 'Firmware-uppgradering klar!\n\nEnheten måste parkopplas igen. Gå till parkopplingssidan?',
'otaPairLater': 'Parkoppla senare',
'otaPairNow': 'Parkoppla nu',
'okConfirm': 'OK',
// OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'Fel vid BLE-kontroll: @error',
'otaBleNotConnected': 'BLE-enhet inte ansluten',
'otaBleNeedConnection': 'Firmware-uppgradering kräver BLE-anslutning\nSäkerställ att enheten är ansluten och försök igen',
'otaDeviceInfoUnavailableTitle': 'Enhetsinformation otillgänglig',
'otaCannotGetDeviceInfo': 'Kan inte hämta enhetsinformation\nÅteranslut enheten eller försök igen senare',
'otaBleCheckFailed': 'BLE-kontroll misslyckades',
'otaCannotGetDeviceInfoCheckConnection': 'Kan inte hämta enhetsinformation, kontrollera anslutningen',
'otaCannotGetProductInfoWithName': 'Kan inte hämta produktinfo, enhetsnamn: @deviceName',
'otaCannotGetBatteryInfo': 'Kan inte hämta batteriinformation',
'otaLowBattery': 'Låg batterinivå',
'otaSingleBatteryLow': 'Batterinivå för låg för uppgradering\nKrav: batteri över 20%\nNuvarande: @ear @battery%\nLadda och försök igen',
'otaDoubleBatteryLow': 'Batterinivå för låg för uppgradering\nKrav: båda öronsnäckorna över 20%\nNuvarande: Vänster @left%, Höger @right%\nLadda och försök igen',
'otaBatteryCheckFailed': 'Batterikontroll misslyckades',
// OTA升级模块 - 升级状态
'otaDefaultUpdateDesc': 'Uppdateringen innehåller prestandaförbättringar och felkorrigeringar.',
'otaGetLatestVersionFailed': 'Kunde inte hämta senaste versionen',
'otaGetVersionInfoFailed': 'Kunde inte hämta versionsinformation',
'otaCheckingDeviceStatus': 'Kontrollerar enhetsstatus...',
'otaDownloadFailedCheckNetwork': 'Nedladdning misslyckades, kontrollera nätverksanslutningen',
'otaDownloadFailed': 'Nedladdning misslyckades',
'otaPreparingConnection': 'Förbereder enhetsanslutning...',
'otaConnectingDevice': 'Ansluter till enhet...',
'otaUpgradeStarted': 'OTA-uppgradering startad...',
'otaUpgradeProgressWithPercent': 'Uppgraderingsförlopp: @percent%',
'otaUpgradeSuccessComplete': 'Uppgradering slutförd',
'otaUpgradeFailedWithCode': 'Uppgradering misslyckades, felkod: @code',
'otaUpgradeFailedTitle': 'Uppgradering misslyckades',
'otaUpgradeFailedDesc': 'Kontrollera anslutning eller uppdateringspaket, felkod: @code',
'otaDeviceDisconnected': 'Enheten frånkopplad',
'otaDeviceConnected': 'Enheten ansluten',
// 音乐模块
"noMusic": "Ingen musik", // 暂无音乐
"noPlayingMusic": "Ingen musik spelas", // 暂无播放音乐

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

File diff suppressed because it is too large

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

File diff suppressed because it is too large

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

File diff suppressed because it is too large

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

File diff suppressed because it is too large

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

File diff suppressed because it is too large

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

@ -1,5 +1,4 @@
const Map<String, String> zhCN = {
// 通用
'continue': '继续',
'confirm': '确认',
@ -504,10 +503,8 @@ const Map<String, String> zhCN = {
'overlayPermissionTitle': '悬浮窗权限',
'overlayPermissionTranslationDesc':
'为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。',
'overlayPermissionRecordingDesc':
'为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。',
'overlayPermissionOpenSettingsFailed':
'无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。',
'overlayPermissionRecordingDesc': '为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。',
'overlayPermissionOpenSettingsFailed': '无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。',
'transcribing': '正在转写...',
'summarizing': '正在总结...',
'analyzing': '正在分析...',
@ -966,6 +963,7 @@ const Map<String, String> zhCN = {
// 翻译模块 - 文本翻译
"languageDetectionFailed": "语言检测失败",
"inputTextToTranslate": "请输入待翻译的文本",
"translationFailed": "翻译失败",
"translating": "正在翻译",
"translate": "翻译",
@ -1337,8 +1335,10 @@ const Map<String, String> zhCN = {
'otaCannotGetProductInfoWithName': '无法获取产品信息,设备名称: @deviceName',
'otaCannotGetBatteryInfo': '无法获取有效的电量信息',
'otaLowBattery': '电量不足',
'otaSingleBatteryLow': '设备电量不足,无法进行固件升级\n升级要求:设备电量需大于20%\n当前电量:@ear @battery%\n请充电后再试',
'otaDoubleBatteryLow': '设备电量不足,无法进行固件升级\n升级要求:左右耳电量均需大于20%\n当前电量:左耳 @left%,右耳 @right%\n请充电后再试',
'otaSingleBatteryLow':
'设备电量不足,无法进行固件升级\n升级要求:设备电量需大于20%\n当前电量:@ear @battery%\n请充电后再试',
'otaDoubleBatteryLow':
'设备电量不足,无法进行固件升级\n升级要求:左右耳电量均需大于20%\n当前电量:左耳 @left%,右耳 @right%\n请充电后再试',
'otaBatteryCheckFailed': '电量检查失败',
// OTA升级模块 - 升级状态

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

@ -1,5 +1,4 @@
const Map<String, String> zhHK = {
// 通用
'continue': '繼續',
'confirm': '確認',
@ -160,6 +159,26 @@ const Map<String, String> zhHK = {
'right': '右',
'checkConnectionStatusFailed': '檢查連接狀態失敗',
// 蓝牙扫描模块
'bleInitFailedWithError': '藍牙初始化失敗: @error',
'needBluetoothAndLocationPermission': '需要藍牙和位置權限才能掃描裝置',
'permissionRequestFailedWithError': '權限請求失敗: @error',
'needPermission': '需要權限',
'blePermissionDialogContent': '應用需要藍牙和位置權限才能掃描裝置。請在設定中手動開啟權限。',
'needEnableBluetooth': '需要開啟藍牙',
'enableBluetoothDialogContent': '請開啟藍牙以掃描和連接裝置。',
'bleScanFailedWithError': '掃描失敗: @error',
'bleConnectionSuccess': '連接成功',
'bleConnectedToDevice': '已連接到 @device',
'bleConnectionFailedWithError': '連接失敗: @error',
'bleDisconnected': '已斷開連接',
'bleDeviceDisconnected': '裝置已斷開連接',
'bleDisconnectFailedWithError': '斷開連接失敗: @error',
'signalStrong': '信號強',
'signalMedium': '信號中等',
'signalWeak': '信號弱',
'signalVeryWeak': '信號很弱',
// 发现页
"searchAi": "搜尋AI功能...",
"exploreSlogan": "智能耳機,無限可能",
@ -675,7 +694,7 @@ const Map<String, String> zhHK = {
'playerNotReady': '音頻播放器未準備好,請稍候',
'playFailed': '播放失敗',
'audioFileNotFound': '音頻文件不存在',
'fetchingAudio': '正在從雲端獲取音頻...',
'fetchingAudio': '正在從雲端獲取音頻...',
'playerLoadFailed': '音頻播放器加載失敗',
// 设置页
@ -777,7 +796,7 @@ const Map<String, String> zhHK = {
"swipeUpForMore": "向上滑動查看更多",
"callingTool": "正在幫您,請稍等!", // 正在帮您,请稍等!
"voice_interrupt": "語音打斷", // 语音打断
'voice_interrupt_tip': '開啟後:AI播報時不會被語音打斷,只能進行單輪對話,需要打斷時請說喚醒詞開啟新一輪對話。',
'voice_interrupt_tip': '開啟後:AI播報時不會被語音打斷,只能進行單輪對話,需要打斷時請說喚醒詞開啟新一輪對話。',
// Agent模块 - 预设提示词
"presetMusic": '來點音樂', // 来点音乐
@ -828,6 +847,13 @@ const Map<String, String> zhHK = {
'reportDescriptionHint': '我們想知道你舉報的原因,你可以描述你遇到的問題。',
'generatedByAi': '由AI生成',
// Agent模块 - 工具调用
'toolCall': '工具調用',
'noResult': '無結果',
'noToolCallContentToCopy': '沒有工具調用內容可以複製',
'toolCallDetails': '工具調用詳情:',
'toolCallContentCopied': '工具調用內容已複製到剪貼板',
// Agent模块 - 音乐卡片
'recommendedMusic': '以下是一些推薦的音樂:',
'playList': '播放清單',
@ -848,6 +874,28 @@ const Map<String, String> zhHK = {
"bicycling": "騎行",
"tsransit": "公共交通",
// Agent模块 - 导航选择
'selectNavigationApp': '選擇導航軟件',
'amapMap': '高德地圖',
'useAmapNavigation': '使用高德地圖導航',
'baiduMap': '百度地圖',
'useBaiduNavigation': '使用百度地圖導航',
'googleMap': 'Google 地圖',
'useGoogleNavigation': '使用 Google 地圖導航',
'appleMap': 'Apple 地圖',
'useAppleNavigation': '使用 Apple 地圖導航',
'builtInNavigation': '內置導航',
'useBuiltInNavigation': '使用內置地圖導航',
'navigationStartFailed': '啟動導航失敗',
'cannotPlayMusicListRetryLater': '無法播放音樂列表,請稍後重試',
'cannotPlaySong': '無法播放歌曲',
'openMapError': '打開地圖時發生錯誤',
'pleaseInstallAmapApp': '請先安裝高德地圖應用',
'pleaseInstallBaiduMapApp': '請先安裝百度地圖應用',
'appleMapStartFailed': 'Apple 地圖啟動失敗',
'appleMapUnavailable': 'Apple 地圖不可用',
'openAppleMapError': '打開 Apple 地圖時發生錯誤',
// Agent模块 - 天气卡片
'weatherQuery': '查詢天氣情況:',
'highest': '最高',
@ -908,10 +956,20 @@ const Map<String, String> zhHK = {
"bluetoothCallStateError": '請確保藍牙耳機已連接到手機並處於通話狀態',
"autoDetect": '自動檢測', // 自动检测
// 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': '禁用懸浮窗',
'enableFloatingWindow': '啟用懸浮窗',
'permissionTip': '權限提示',
'micPermissionRequiredForRecording': '需要麥克風權限才能使用錄音功能',
'deleteTranslationRecordError': '刪除翻譯記錄時發生錯誤: @error',
// 翻译模块 - 文本翻译
"languageDetectionFailed": '語言檢測失敗',
"translationFailed": '翻譯失敗',
"translating": "正在翻譯",
"translate": "翻譯",
"pleaseInputText": '請輸入文本',
"inputTextToTranslate": "請輸入待翻譯的文本",
"textTooLong": '文本過長,最多5000字符',
// 翻译模块 - 历史记录
@ -1258,6 +1316,49 @@ const Map<String, String> zhHK = {
"updateContent": "更新內容",
"removeEarbudsEnsureBattery": "取出雙耳機,並保證電量均為20%以上的狀態",
// OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': '發現新版本 @version',
'otaConfirmUpdateNow': '是否立即更新?',
'otaUpdate': '更新',
'otaUpgradeSuccess': '升級成功',
'otaUpgradeCompleteRepair': '固件升級已完成!\n\n裝置需要重新配對才能正常使用,現在跳轉到配對頁面嗎?',
'otaPairLater': '稍後配對',
'otaPairNow': '立即配對',
'okConfirm': '確定',
// OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': '檢查BLE連接狀態時發生錯誤:@error',
'otaBleNotConnected': 'BLE裝置未連接',
'otaBleNeedConnection': '固件升級需要連接BLE裝置\n請確保裝置已正確連接後再試',
'otaDeviceInfoUnavailableTitle': '裝置資訊不可用',
'otaCannotGetDeviceInfo': '無法獲取裝置資訊\n請重新連接裝置或稍後再試',
'otaBleCheckFailed': 'BLE連接檢查失敗',
'otaCannotGetDeviceInfoCheckConnection': '無法獲取裝置資訊,請檢查裝置連接',
'otaCannotGetProductInfoWithName': '無法獲取產品資訊,裝置名稱: @deviceName',
'otaCannotGetBatteryInfo': '無法獲取有效的電量資訊',
'otaLowBattery': '電量不足',
'otaSingleBatteryLow':
'裝置電量不足,無法進行固件升級\n升級要求:裝置電量需大於20%\n當前電量:@ear @battery%\n請充電後再試',
'otaDoubleBatteryLow':
'裝置電量不足,無法進行固件升級\n升級要求:左右耳電量均需大於20%\n當前電量:左耳 @left%,右耳 @right%\n請充電後再試',
'otaBatteryCheckFailed': '電量檢查失敗',
// OTA升级模块 - 升级状态
'otaDefaultUpdateDesc': '本次更新包含性能優化和錯誤修復。',
'otaGetLatestVersionFailed': '獲取最新版本資訊失敗',
'otaGetVersionInfoFailed': '獲取版本資訊失敗',
'otaCheckingDeviceStatus': '正在檢查裝置狀態...',
'otaDownloadFailedCheckNetwork': '下載失敗,請檢查網絡連接',
'otaDownloadFailed': '下載失敗',
'otaPreparingConnection': '準備裝置連接...',
'otaConnectingDevice': '正在連接裝置...',
'otaUpgradeStarted': 'OTA升級已開始...',
'otaUpgradeProgressWithPercent': '升級進度: @percent%',
'otaUpgradeSuccessComplete': '升級成功完成',
'otaUpgradeFailedWithCode': '升級失敗,錯誤碼:@code',
'otaUpgradeFailedTitle': '升級失敗',
'otaUpgradeFailedDesc': '請檢查裝置連接或升級包,錯誤碼:@code',
'otaDeviceDisconnected': '裝置連接斷開',
'otaDeviceConnected': '裝置連接成功',
// 音乐模块
"noMusic": "暫無音樂", // 暂无音乐
"noPlayingMusic": "暫無播放音樂", // 暂无播放音乐

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

@ -1,5 +1,4 @@
const Map<String, String> zhTW = {
// 通用
'continue': '繼續',
'confirm': '確認',
@ -160,6 +159,26 @@ const Map<String, String> zhTW = {
'right': '右',
'checkConnectionStatusFailed': '檢查連接狀態失敗',
// 蓝牙扫描模块
'bleInitFailedWithError': '藍牙初始化失敗: @error',
'needBluetoothAndLocationPermission': '需要藍牙和位置權限才能掃描裝置',
'permissionRequestFailedWithError': '權限請求失敗: @error',
'needPermission': '需要權限',
'blePermissionDialogContent': '應用程式需要藍牙和位置權限才能掃描裝置。請在設定中手動開啟權限。',
'needEnableBluetooth': '需要開啟藍牙',
'enableBluetoothDialogContent': '請開啟藍牙以掃描和連線裝置。',
'bleScanFailedWithError': '掃描失敗: @error',
'bleConnectionSuccess': '連線成功',
'bleConnectedToDevice': '已連線到 @device',
'bleConnectionFailedWithError': '連線失敗: @error',
'bleDisconnected': '已中斷連線',
'bleDeviceDisconnected': '裝置已中斷連線',
'bleDisconnectFailedWithError': '中斷連線失敗: @error',
'signalStrong': '訊號強',
'signalMedium': '訊號中等',
'signalWeak': '訊號弱',
'signalVeryWeak': '訊號極弱',
// 发现页
"searchAi": "搜尋AI功能...",
"exploreSlogan": "智能耳機,無限可能",
@ -675,7 +694,7 @@ const Map<String, String> zhTW = {
'playerNotReady': '音頻播放器未準備好,請稍候',
'playFailed': '播放失敗',
'audioFileNotFound': '音頻文件不存在',
'fetchingAudio': '正在從雲端獲取音訊...',
'fetchingAudio': '正在從雲端獲取音訊...',
'playerLoadFailed': '音頻播放器加載失敗',
// 设置页
@ -777,7 +796,7 @@ const Map<String, String> zhTW = {
"swipeUpForMore": "向上滑動查看更多",
"callingTool": "正在幫您,請稍等!", // 正在帮您,请稍等!
"voice_interrupt": "語音打斷", // 语音打断
'voice_interrupt_tip': '開啟後:AI播報時不會被語音打斷,只能進行單輪對話,需要打斷時請說喚醒詞開啟新一輪對話。',
'voice_interrupt_tip': '開啟後:AI播報時不會被語音打斷,只能進行單輪對話,需要打斷時請說喚醒詞開啟新一輪對話。',
// Agent模块 - 预设提示词
"presetMusic": '來點音樂', // 来点音乐
@ -828,6 +847,13 @@ const Map<String, String> zhTW = {
'reportDescriptionHint': '我們想知道你舉報的原因,你可以描述你遇到的問題。',
'generatedByAi': '由AI生成',
// Agent模块 - 工具调用
'toolCall': '工具呼叫',
'noResult': '無結果',
'noToolCallContentToCopy': '沒有工具呼叫內容可以複製',
'toolCallDetails': '工具呼叫詳情:',
'toolCallContentCopied': '工具呼叫內容已複製到剪貼簿',
// Agent模块 - 音乐卡片
'recommendedMusic': '以下是一些推薦的音樂:',
'playList': '播放清單',
@ -848,6 +874,28 @@ const Map<String, String> zhTW = {
"bicycling": "騎行",
"tsransit": "公共交通",
// Agent模块 - 导航选择
'selectNavigationApp': '選擇導航軟體',
'amapMap': '高德地圖',
'useAmapNavigation': '使用高德地圖導航',
'baiduMap': '百度地圖',
'useBaiduNavigation': '使用百度地圖導航',
'googleMap': 'Google 地圖',
'useGoogleNavigation': '使用 Google 地圖導航',
'appleMap': 'Apple 地圖',
'useAppleNavigation': '使用 Apple 地圖導航',
'builtInNavigation': '內建導航',
'useBuiltInNavigation': '使用內建地圖導航',
'navigationStartFailed': '啟動導航失敗',
'cannotPlayMusicListRetryLater': '無法播放音樂清單,請稍後重試',
'cannotPlaySong': '無法播放歌曲',
'openMapError': '開啟地圖時發生錯誤',
'pleaseInstallAmapApp': '請先安裝高德地圖應用程式',
'pleaseInstallBaiduMapApp': '請先安裝百度地圖應用程式',
'appleMapStartFailed': 'Apple 地圖啟動失敗',
'appleMapUnavailable': 'Apple 地圖無法使用',
'openAppleMapError': '開啟 Apple 地圖時發生錯誤',
// Agent模块 - 天气卡片
'weatherQuery': '查詢天氣情況:',
'highest': '最高',
@ -908,10 +956,20 @@ const Map<String, String> zhTW = {
"bluetoothCallStateError": '請確保藍牙耳機已連接到手機並處於通話狀態',
"autoDetect": '自動檢測', // 自动检测
// 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': '停用懸浮視窗',
'enableFloatingWindow': '啟用懸浮視窗',
'permissionTip': '權限提示',
'micPermissionRequiredForRecording': '需要麥克風權限才能使用錄音功能',
'deleteTranslationRecordError': '刪除翻譯記錄時發生錯誤: @error',
// 翻译模块 - 文本翻译
"languageDetectionFailed": '語言檢測失敗',
"translationFailed": '翻譯失敗',
"translating": "正在翻譯",
"translate": "翻譯",
"pleaseInputText": '請輸入文本',
"inputTextToTranslate": "請輸入待翻譯的文字",
"textTooLong": '文本過長,最多5000字符',
// 翻译模块 - 历史记录
@ -1258,6 +1316,49 @@ const Map<String, String> zhTW = {
"updateContent": "更新內容",
"removeEarbudsEnsureBattery": "取出雙耳機,並保證電量均為20%以上的狀態",
// OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': '發現新版本 @version',
'otaConfirmUpdateNow': '是否立即更新?',
'otaUpdate': '更新',
'otaUpgradeSuccess': '升級成功',
'otaUpgradeCompleteRepair': '韌體升級已完成!\n\n裝置需要重新配對才能正常使用,現在跳轉到配對頁面嗎?',
'otaPairLater': '稍後配對',
'otaPairNow': '立即配對',
'okConfirm': '確定',
// OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': '檢查BLE連線狀態時發生錯誤:@error',
'otaBleNotConnected': 'BLE裝置未連線',
'otaBleNeedConnection': '韌體升級需要連接BLE裝置\n請確保裝置已正確連接後再試',
'otaDeviceInfoUnavailableTitle': '裝置資訊無法取得',
'otaCannotGetDeviceInfo': '無法取得裝置資訊\n請重新連線裝置或稍後再試',
'otaBleCheckFailed': 'BLE連線檢查失敗',
'otaCannotGetDeviceInfoCheckConnection': '無法取得裝置資訊,請檢查裝置連線',
'otaCannotGetProductInfoWithName': '無法取得產品資訊,裝置名稱: @deviceName',
'otaCannotGetBatteryInfo': '無法取得有效的電量資訊',
'otaLowBattery': '電量不足',
'otaSingleBatteryLow':
'裝置電量不足,無法進行韌體升級\n升級要求:裝置電量需大於20%\n目前電量:@ear @battery%\n請充電後再試',
'otaDoubleBatteryLow':
'裝置電量不足,無法進行韌體升級\n升級要求:左右耳電量均需大於20%\n目前電量:左耳 @left%,右耳 @right%\n請充電後再試',
'otaBatteryCheckFailed': '電量檢查失敗',
// OTA升级模块 - 升级状态
'otaDefaultUpdateDesc': '本次更新包含效能最佳化和錯誤修復。',
'otaGetLatestVersionFailed': '取得最新版本資訊失敗',
'otaGetVersionInfoFailed': '取得版本資訊失敗',
'otaCheckingDeviceStatus': '正在檢查裝置狀態...',
'otaDownloadFailedCheckNetwork': '下載失敗,請檢查網路連線',
'otaDownloadFailed': '下載失敗',
'otaPreparingConnection': '準備裝置連線...',
'otaConnectingDevice': '正在連線裝置...',
'otaUpgradeStarted': 'OTA升級已開始...',
'otaUpgradeProgressWithPercent': '升級進度: @percent%',
'otaUpgradeSuccessComplete': '升級成功完成',
'otaUpgradeFailedWithCode': '升級失敗,錯誤碼:@code',
'otaUpgradeFailedTitle': '升級失敗',
'otaUpgradeFailedDesc': '請檢查裝置連線或升級套件,錯誤碼:@code',
'otaDeviceDisconnected': '裝置連線中斷',
'otaDeviceConnected': '裝置連線成功',
// 音乐模块
"noMusic": "暫無音樂", // 暂无音乐
"noPlayingMusic": "暫無播放音樂", // 暂无播放音乐

24
tools/i18n_allowlist.json

@ -0,0 +1,24 @@
[
"Lily",
"paypalPay",
"wechatPay",
"alipayPay",
"appleIap",
"googleIap",
"wechatPayWithAmount",
"alipayPayWithAmount",
"amapMap",
"baiduMap",
"googleMap",
"appleMap",
"native.notification.appName",
"copyrightVoitrans",
"voitransPrivateCloud",
"aiChatCreditsLabel",
"translationCreditsLabel",
"meetingCreditsLabel",
"vipLevelLabel",
"error",
"errorInfoWithMessage"
]

201
tools/i18n_audit.py

@ -0,0 +1,201 @@
import argparse
import glob
import json
import os
from collections import Counter
def _unesc(s: str) -> str:
if "\\" in s:
return s.encode("utf-8").decode("unicode_escape")
return s
def _skip_ws_and_comments(text: str, i: int) -> int:
n = len(text)
while i < n:
ch = text[i]
if ch.isspace():
i += 1
continue
if text.startswith("//", i):
j = text.find("\n", i + 2)
i = n if j == -1 else j + 1
continue
if text.startswith("/*", i):
j = text.find("*/", i + 2)
i = n if j == -1 else j + 2
continue
break
return i
def _parse_string_literal(text: str, i: int) -> tuple[str, int]:
quote = text[i]
i += 1
n = len(text)
buf: list[str] = []
while i < n:
ch = text[i]
if ch == "\\" and i + 1 < n:
buf.append(ch)
buf.append(text[i + 1])
i += 2
continue
if ch == quote:
i += 1
break
buf.append(ch)
i += 1
raw = "".join(buf)
return _unesc(raw), i
def _parse_dart_map(file_path: str) -> dict[str, str]:
with open(file_path, "r", encoding="utf-8") as f:
text = f.read()
start = text.find("{")
end = text.rfind("}")
if start == -1 or end == -1 or end <= start:
return {}
text = text[start + 1 : end]
out: dict[str, str] = {}
i = 0
n = len(text)
while i < n:
i = _skip_ws_and_comments(text, i)
if i >= n:
break
if text[i] not in ("'", '"'):
i += 1
continue
key, i = _parse_string_literal(text, i)
i = _skip_ws_and_comments(text, i)
if i >= n or text[i] != ":":
continue
i += 1
i = _skip_ws_and_comments(text, i)
if i >= n or text[i] not in ("'", '"'):
continue
parts: list[str] = []
while i < n and text[i] in ("'", '"'):
part, i = _parse_string_literal(text, i)
parts.append(part)
i = _skip_ws_and_comments(text, i)
out[key] = "".join(parts)
return out
def _ascii_letter_ratio(s: str) -> float:
if not s:
return 0.0
letters = sum(1 for ch in s if ("a" <= ch.lower() <= "z"))
return letters / max(1, len(s))
def _looks_english_sentence(s: str) -> bool:
if len(s.strip()) < 4:
return False
ratio = _ascii_letter_ratio(s)
if ratio < 0.35:
return False
s_low = s.lower()
common = [
"please",
"failed",
"success",
"error",
"connect",
"connection",
"device",
"network",
"download",
"upload",
"translate",
"translation",
"record",
"permission",
"enable",
"disable",
"check",
"try again",
]
return any(w in s_low for w in common)
def main() -> int:
parser = argparse.ArgumentParser()
parser.add_argument(
"--dir",
default=os.path.join("lib", "core", "translations", "language"),
help="Directory containing language dart files",
)
parser.add_argument(
"--baseline",
default="en_us.dart",
help="Baseline dart file to compare values against",
)
parser.add_argument(
"--allowlist",
default="",
help="Path to JSON array of keys allowed to keep identical baseline values",
)
parser.add_argument(
"--mode",
choices=["exact", "englishy"],
default="englishy",
help="exact: value equals baseline; englishy: value equals baseline and looks English",
)
args = parser.parse_args()
lang_dir = args.dir
dart_files = sorted(glob.glob(os.path.join(lang_dir, "*.dart")))
if not dart_files:
raise SystemExit(f"No dart files found in {lang_dir}")
allowlist: set[str] = set()
if args.allowlist:
with open(args.allowlist, "r", encoding="utf-8") as f:
allowlist = set(json.load(f))
parsed = {os.path.basename(p): _parse_dart_map(p) for p in dart_files}
if args.baseline not in parsed:
raise SystemExit(f"baseline not found: {args.baseline}")
baseline = parsed[args.baseline]
result: dict[str, dict] = {"baseline": args.baseline, "mode": args.mode, "files": {}}
global_counter: Counter[str] = Counter()
for fn, kv in parsed.items():
if fn == args.baseline:
continue
issues: list[dict] = []
for k, v in kv.items():
if k in allowlist:
continue
bv = baseline.get(k)
if bv is None:
continue
if v != bv:
continue
if args.mode == "englishy" and not _looks_english_sentence(v):
continue
issues.append({"key": k, "value": v})
global_counter[k] += 1
result["files"][fn] = {"count": len(issues), "items": issues}
result["summary"] = {
"file_count": len(dart_files),
"non_baseline_file_count": len(dart_files) - 1,
"files_with_issues": sum(1 for f in result["files"].values() if f["count"] > 0),
"total_issues": sum(f["count"] for f in result["files"].values()),
"most_common_keys": [{"key": k, "count": c} for k, c in global_counter.most_common(50)],
}
print(json.dumps(result, ensure_ascii=False, indent=2))
return 0
if __name__ == "__main__":
raise SystemExit(main())
Loading…
Cancel
Save