Browse Source

feat(i18n): 更新多语言翻译并添加文件头注释

- 为所有语言文件添加区域-语言注释头
- 统一翻译"绑定奖励"相关术语为本地化表达
- 修复德语、西班牙语、法语等语言的翻译不一致问题
- 更新越南语、印尼语、马来语等语言的隐私政策文本
- 扩展i18n审计工具的英语术语识别列表
newdev_shunjiawei
lxm 7 months ago
parent
commit
f494d5b6b0
  1. 15
      lib/core/translations/language/ar_sa.dart
  2. 333
      lib/core/translations/language/bg_bg.dart
  3. 276
      lib/core/translations/language/cs_cz.dart
  4. 312
      lib/core/translations/language/da_dk.dart
  5. 5
      lib/core/translations/language/de_de.dart
  6. 40
      lib/core/translations/language/el_gr.dart
  7. 1
      lib/core/translations/language/en_us.dart
  8. 43
      lib/core/translations/language/es_es.dart
  9. 1133
      lib/core/translations/language/et_ee.dart
  10. 149
      lib/core/translations/language/fa_ir.dart
  11. 827
      lib/core/translations/language/fi_fi.dart
  12. 19
      lib/core/translations/language/fr_fr.dart
  13. 1042
      lib/core/translations/language/hi_in.dart
  14. 1089
      lib/core/translations/language/hr_hr.dart
  15. 1033
      lib/core/translations/language/hu_hu.dart
  16. 37
      lib/core/translations/language/id_id.dart
  17. 780
      lib/core/translations/language/is_is.dart
  18. 834
      lib/core/translations/language/it_it.dart
  19. 972
      lib/core/translations/language/ja_jp.dart
  20. 160
      lib/core/translations/language/ko_kr.dart
  21. 1034
      lib/core/translations/language/lt_lt.dart
  22. 525
      lib/core/translations/language/lv_lv.dart
  23. 88
      lib/core/translations/language/ms_my.dart
  24. 797
      lib/core/translations/language/nb_no.dart
  25. 543
      lib/core/translations/language/nl_nl.dart
  26. 1113
      lib/core/translations/language/pl_pl.dart
  27. 679
      lib/core/translations/language/pt_pt.dart
  28. 685
      lib/core/translations/language/ro_ro.dart
  29. 652
      lib/core/translations/language/ru_ru.dart
  30. 517
      lib/core/translations/language/sk_sk.dart
  31. 513
      lib/core/translations/language/sl_si.dart
  32. 52
      lib/core/translations/language/sr_rs.dart
  33. 1169
      lib/core/translations/language/sv_se.dart
  34. 1130
      lib/core/translations/language/th_th.dart
  35. 76
      lib/core/translations/language/tl_ph.dart
  36. 938
      lib/core/translations/language/tr_tr.dart
  37. 1012
      lib/core/translations/language/uk_ua.dart
  38. 5
      lib/core/translations/language/vi_vn.dart
  39. 15
      lib/core/translations/language/zh_cn.dart
  40. 13
      lib/core/translations/language/zh_hk.dart
  41. 13
      lib/core/translations/language/zh_tw.dart
  42. 41
      tools/i18n_audit.py

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

@ -1,3 +1,4 @@
//阿拉伯-沙特阿拉伯语
const Map<String, String> arSA = { const Map<String, String> arSA = {
// 通用 // 通用
'continue': 'متابعة', 'continue': 'متابعة',
@ -1392,15 +1393,15 @@ const Map<String, String> arSA = {
'iKnow': 'أنا أعرف', // 我知道了 'iKnow': 'أنا أعرف', // 我知道了
// 配对模块 - 绑定奖励 // 配对模块 - 绑定奖励
"firstBindRewardTitle": "Welcome Reward", "firstBindRewardTitle": "مكافأة الترحيب",
"firstBindRewardDesc": "You've received binding rewards.", "firstBindRewardDesc": "لقد حصلت على مكافآت الربط.",
"vipLevelLabel": "VIP Level:", "vipLevelLabel": "مستوى VIP:",
"expiryLabel": "تاريخ الانتهاء:", "expiryLabel": "تاريخ الانتهاء:",
"notActivated": "غير مفعل", "notActivated": "غير مفعل",
"aiChatCreditsLabel": "AI Chat Credits:", "aiChatCreditsLabel": "رصيد محادثة الذكاء الاصطناعي:",
"translationCreditsLabel": "Translation Credits:", "translationCreditsLabel": "رصيد الترجمة:",
"meetingCreditsLabel": "Meeting Credits:", "meetingCreditsLabel": "رصيد الاجتماعات:",
"ok": "OK", "ok": "موافق",
// 用户反馈模块 // 用户反馈模块
"feedback": "ملاحظات المستخدم", "feedback": "ملاحظات المستخدم",

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

@ -1,5 +1,5 @@
//保加利亚-保加利亚语
const Map<String, String> bgBG = { const Map<String, String> bgBG = {
// 通用 // 通用
'continue': 'Продължи', 'continue': 'Продължи',
'confirm': 'Потвърди', 'confirm': 'Потвърди',
@ -169,12 +169,15 @@ const Map<String, String> bgBG = {
// 蓝牙扫描模块 // 蓝牙扫描模块
'bleInitFailedWithError': 'Неуспешна инициализация на Bluetooth: @error', 'bleInitFailedWithError': 'Неуспешна инициализация на Bluetooth: @error',
'needBluetoothAndLocationPermission': 'За сканиране на устройства са необходими разрешения за Bluetooth и местоположение', 'needBluetoothAndLocationPermission':
'За сканиране на устройства са необходими разрешения за Bluetooth и местоположение',
'permissionRequestFailedWithError': 'Неуспешна заявка за разрешение: @error', 'permissionRequestFailedWithError': 'Неуспешна заявка за разрешение: @error',
'needPermission': 'Необходимо разрешение', 'needPermission': 'Необходимо разрешение',
'blePermissionDialogContent': 'Това приложение изисква разрешения за Bluetooth и местоположение за сканиране на устройства. Моля, включете ги в Настройки.', 'blePermissionDialogContent':
'Това приложение изисква разрешения за Bluetooth и местоположение за сканиране на устройства. Моля, включете ги в Настройки.',
'needEnableBluetooth': 'Включете Bluetooth', 'needEnableBluetooth': 'Включете Bluetooth',
'enableBluetoothDialogContent': 'Моля, включете Bluetooth за сканиране и свързване на устройства.', 'enableBluetoothDialogContent':
'Моля, включете Bluetooth за сканиране и свързване на устройства.',
'bleScanFailedWithError': 'Неуспешно сканиране: @error', 'bleScanFailedWithError': 'Неуспешно сканиране: @error',
'bleConnectionSuccess': 'Успешно свързване', 'bleConnectionSuccess': 'Успешно свързване',
'bleConnectedToDevice': 'Свързан към @device', 'bleConnectedToDevice': 'Свързан към @device',
@ -262,60 +265,65 @@ const Map<String, String> bgBG = {
'totalQuota': 'Обща квота', 'totalQuota': 'Обща квота',
'remaining': 'Оставащо', 'remaining': 'Оставащо',
'featureDescription': 'Описание на функцията', 'featureDescription': 'Описание на функцията',
'paymentSuccess': 'Успешно плащане', 'paymentSuccess': 'Успешно плащане',
'paymentFailed': 'Неуспешно плащане', 'paymentFailed': 'Неуспешно плащане',
'gotIt': 'Разбрах', 'gotIt': 'Разбрах',
'paymentFailedTryAgain': 'Неуспешно плащане. Моля, опитайте отново.', 'paymentFailedTryAgain': 'Неуспешно плащане. Моля, опитайте отново.',
'selectPaymentMethod': 'Изберете начин на плащане', 'selectPaymentMethod': 'Изберете начин на плащане',
'wechatPay': 'WeChat Pay', 'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay', 'alipayPay': 'Alipay',
'paypalPay': 'PayPal', 'paypalPay': 'PayPal',
'appleIap': 'Apple IAP', 'appleIap': 'Apple IAP',
'googleIap': 'Google IAP', 'googleIap': 'Google IAP',
'wechatOrderCreateFailed': 'Неуспешно създаване на поръчка в WeChat', 'wechatOrderCreateFailed': 'Неуспешно създаване на поръчка в WeChat',
'alipayOrderCreateFailed': 'Неуспешно създаване на поръчка в Alipay', 'alipayOrderCreateFailed': 'Неуспешно създаване на поръчка в Alipay',
'appleOrderCreateFailed': 'Неуспешно създаване на поръчка в Apple', 'appleOrderCreateFailed': 'Неуспешно създаване на поръчка в Apple',
'googleOrderCreateFailed': 'Неуспешно създаване на поръчка в Google', 'googleOrderCreateFailed': 'Неуспешно създаване на поръчка в Google',
'paypalOrderCreateFailed': 'Неуспешно създаване на поръчка в PayPal', 'paypalOrderCreateFailed': 'Неуспешно създаване на поръчка в PayPal',
'paymentException': 'Изключение при плащане', 'paymentException': 'Изключение при плащане',
'paymentLaunchFailed': 'Неуспешно стартиране на плащане', 'paymentLaunchFailed': 'Неуспешно стартиране на плащане',
'paymentExceptionWithError': 'Изключение при плащане: @error', 'paymentExceptionWithError': 'Изключение при плащане: @error',
'paymentProcessingCheckLater': 'Вашата поръчка се обработва. Моля, проверете по-късно.', 'paymentProcessingCheckLater':
'paymentResultQueryException': 'Неуспешно запитване за резултат от плащане: @error', 'Вашата поръчка се обработва. Моля, проверете по-късно.',
'orderConfirmedQuotaRefreshed': 'Поръчката е потвърдена. Вашата квота е обновена.', 'paymentResultQueryException':
'paymentCompletedConfirming': 'Плащането е завършено. Потвърждаване…', 'Неуспешно запитване за резултат от плащане: @error',
'paymentCancelled': 'Плащането е отменено', 'orderConfirmedQuotaRefreshed':
'paypalOpenedCompleteInBrowser': 'PayPal е отворен. Моля, завършете плащането в браузъра.', 'Поръчката е потвърдена. Вашата квота е обновена.',
'paypalOpenFailed': 'Не може да се отвори страницата за плащане с PayPal', 'paymentCompletedConfirming': 'Плащането е завършено. Потвърждаване…',
'paymentTestTitle': 'Тест на плащане', 'paymentCancelled': 'Плащането е отменено',
'paymentTestOrderInfo': 'Информация за тестова поръчка', 'paypalOpenedCompleteInBrowser':
'paymentTestProductId': 'ID на продукта', 'PayPal е отворен. Моля, завършете плащането в браузъра.',
'paymentTestProductDescription': 'Описание на продукта', 'paypalOpenFailed': 'Не може да се отвори страницата за плащане с PayPal',
'paymentTestWechatDescription': 'Тест на плащане с WeChat', 'paymentTestTitle': 'Тест на плащане',
'paymentTestAlipayDescription': 'Тест на плащане с Alipay', 'paymentTestOrderInfo': 'Информация за тестова поръчка',
'paymentTestAmount': 'Сума', 'paymentTestProductId': 'ID на продукта',
'paymentTestSelectAmount': 'Изберете тестова сума', 'paymentTestProductDescription': 'Описание на продукта',
'paying': 'Плащане...', 'paymentTestWechatDescription': 'Тест на плащане с WeChat',
'wechatPayWithAmount': 'WeChat Pay ¥@amount', 'paymentTestAlipayDescription': 'Тест на плащане с Alipay',
'alipayPayWithAmount': 'Alipay ¥@amount', 'paymentTestAmount': 'Сума',
'paymentStatusTitle': 'Статус на плащането', 'paymentTestSelectAmount': 'Изберете тестова сума',
'errorInfoWithMessage': 'Грешка: @message', 'paying': 'Плащане...',
'retest': 'Тестирай отново', 'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'paymentTestInstructionsTitle': 'Инструкции', 'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentTestInstructionsContent': '1. Изберете тестова сума (препоръчително: ¥0.01)\n2. Натиснете бутона за плащане, за да започнете\n3. Завършете плащането в приложението за плащане\n4. Върнете се, за да проверите резултата', 'paymentStatusTitle': 'Статус на плащането',
'startingWechatPayment': 'Стартиране на WeChat Pay...', 'errorInfoWithMessage': 'Грешка: @message',
'startingAlipayPayment': 'Стартиране на Alipay...', 'retest': 'Тестирай отново',
'wechatPaymentSuccess': 'Успешно плащане с WeChat Pay!', 'paymentTestInstructionsTitle': 'Инструкции',
'wechatPaymentFailed': 'Неуспешно плащане с WeChat Pay', 'paymentTestInstructionsContent':
'wechatPaymentLaunchFailed': 'Неуспешно стартиране на WeChat Pay', '1. Изберете тестова сума (препоръчително: ¥0.01)\n2. Натиснете бутона за плащане, за да започнете\n3. Завършете плащането в приложението за плащане\n4. Върнете се, за да проверите резултата',
'cannotLaunchWechatPayment': 'Не може да се стартира WeChat Pay', 'startingWechatPayment': 'Стартиране на WeChat Pay...',
'wechatPaymentException': 'Изключение в WeChat Pay', 'startingAlipayPayment': 'Стартиране на Alipay...',
'wechatPaymentTestCompleted': 'Тестът на плащане с WeChat Pay е завършен', 'wechatPaymentSuccess': 'Успешно плащане с WeChat Pay!',
'alipayPaymentSuccess': 'Успешно плащане с Alipay!', 'wechatPaymentFailed': 'Неуспешно плащане с WeChat Pay',
'alipayPaymentFailed': 'Неуспешно плащане с Alipay', 'wechatPaymentLaunchFailed': 'Неуспешно стартиране на WeChat Pay',
'alipayPaymentLaunchFailed': 'Неуспешно стартиране на Alipay', 'cannotLaunchWechatPayment': 'Не може да се стартира WeChat Pay',
'cannotLaunchAlipayPayment': 'Не може да се стартира Alipay', 'wechatPaymentException': 'Изключение в WeChat Pay',
'alipayPaymentException': 'Изключение в Alipay', 'wechatPaymentTestCompleted': 'Тестът на плащане с WeChat Pay е завършен',
'alipayPaymentSuccess': 'Успешно плащане с Alipay!',
'alipayPaymentFailed': 'Неуспешно плащане с Alipay',
'alipayPaymentLaunchFailed': 'Неуспешно стартиране на Alipay',
'cannotLaunchAlipayPayment': 'Не може да се стартира Alipay',
'alipayPaymentException': 'Изключение в Alipay',
"insufficientIntegral": "Недостатъчно точки", "insufficientIntegral": "Недостатъчно точки",
"insufficientBalanceDesc": "insufficientBalanceDesc":
'Недостатъчен баланс, моля отидете на съответната страница за презареждане.', 'Недостатъчен баланс, моля отидете на съответната страница за презареждане.',
@ -520,19 +528,28 @@ const Map<String, String> bgBG = {
'callRecording': 'Запис на разговор', 'callRecording': 'Запис на разговор',
'importAudio': 'Импорт на аудио', 'importAudio': 'Импорт на аудио',
'meetingRecordExitTitle': 'Изход от записа', // 退出录音 'meetingRecordExitTitle': 'Изход от записа', // 退出录音
'meetingRecordExitMessage': 'Изберете какво да направите преди да излезете', // 请选择离开后的操作 'meetingRecordExitMessage':
'Изберете какво да направите преди да излезете', // 请选择离开后的操作
'meetingRecordEndAndSave': 'Прекратяване и запазване', // 结束录音并保存 'meetingRecordEndAndSave': 'Прекратяване и запазване', // 结束录音并保存
'meetingRecordEndWithoutSave': 'Прекратяване без запазване', // 结束录音不保存 'meetingRecordEndWithoutSave': 'Прекратяване без запазване', // 结束录音不保存
'meetingRecordContinueInBackground': 'Продължи записването във фонов режим', // 后台继续录音 'meetingRecordContinueInBackground':
'meetingRecordStopTimeout': 'Времето за спиране на записа изтече. Опитайте отново.', // 结束录音超时,请重试 'Продължи записването във фонов режим', // 后台继续录音
'meetingRecordStopFailed': 'Неуспешно спиране на записа. Опитайте отново.', // 结束录音失败,请重试 'meetingRecordStopTimeout':
'meetingRecordSaveFailed': 'Неуспешно запазване на записа. Опитайте отново.', // 保存录音失败,请重试 'Времето за спиране на записа изтече. Опитайте отново.', // 结束录音超时,请重试
'meetingRecordStopFailed':
'Неуспешно спиране на записа. Опитайте отново.', // 结束录音失败,请重试
'meetingRecordSaveFailed':
'Неуспешно запазване на записа. Опитайте отново.', // 保存录音失败,请重试
'meetingRecordRecordingNotificationTitle': 'Записът е в ход', // 录音进行中 'meetingRecordRecordingNotificationTitle': 'Записът е в ход', // 录音进行中
'meetingRecordRecordingNotificationBody': 'Запис във фонов режим. Докоснете, за да се върнете в приложението.', // 正在后台录音,点击返回应用 'meetingRecordRecordingNotificationBody':
'Запис във фонов режим. Докоснете, за да се върнете в приложението.', // 正在后台录音,点击返回应用
'overlayPermissionTitle': 'Показване върху други приложения', // 悬浮窗权限 'overlayPermissionTitle': 'Показване върху други приложения', // 悬浮窗权限
'overlayPermissionTranslationDesc': 'За да показваме резултатите от превода по време на обаждания или превод на аудио/видео, е нужно разрешение за показване върху други приложения. Така ще виждате превод в реално време, докато използвате други приложения.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 'overlayPermissionTranslationDesc':
'overlayPermissionRecordingDesc': 'За да показваме плаващата лента за запис (таймер/пауза/продължи) по време на запис, е нужно разрешение за показване върху други приложения.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 'За да показваме резултатите от превода по време на обаждания или превод на аудио/видео, е нужно разрешение за показване върху други приложения. Така ще виждате превод в реално време, докато използвате други приложения.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。
'overlayPermissionOpenSettingsFailed': 'Не можем да отворим системните настройки автоматично. Моля, отворете Настройки и включете разрешението за показване върху други приложения ръчно.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'overlayPermissionRecordingDesc':
'За да показваме плаващата лента за запис (таймер/пауза/продължи) по време на запис, е нужно разрешение за показване върху други приложения.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。
'overlayPermissionOpenSettingsFailed':
'Не можем да отворим системните настройки автоматично. Моля, отворете Настройки и включете разрешението за показване върху други приложения ръчно.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。
'transcribing': 'Транскрибиране...', 'transcribing': 'Транскрибиране...',
'summarizing': 'Обобщаване...', 'summarizing': 'Обобщаване...',
'analyzing': 'Анализиране...', 'analyzing': 'Анализиране...',
@ -557,21 +574,22 @@ const Map<String, String> bgBG = {
'selectSummaryTemplate': 'Избери шаблон за резюме', 'selectSummaryTemplate': 'Избери шаблон за резюме',
'useThisTemplate': 'Използвай този шаблон', 'useThisTemplate': 'Използвай този шаблон',
'lastUsed': 'Последно използвано', 'lastUsed': 'Последно използвано',
'create': 'Създай', 'create': 'Създай',
'templateDetails': 'Детайли на шаблона', 'templateDetails': 'Детайли на шаблона',
'tag': 'Етикет', 'tag': 'Етикет',
'description': 'Описание', 'description': 'Описание',
'template': 'Шаблон', 'template': 'Шаблон',
'deleteTemplate': 'Изтрий шаблон', 'deleteTemplate': 'Изтрий шаблон',
'deleteTemplateConfirm': 'Сигурни ли сте, че искате да изтриете този шаблон?', 'deleteTemplateConfirm': 'Сигурни ли сте, че искате да изтриете този шаблон?',
'editTemplate': 'Редактирай шаблон', 'editTemplate': 'Редактирай шаблон',
'createTemplate': 'Създай шаблон', 'createTemplate': 'Създай шаблон',
'name': 'Име', 'name': 'Име',
'templateContentHint': 'Моля, въведете съдържание на шаблона! Съвет: Натиснете бутона AI по-горе, за да генерирате бързо съдържание на шаблон въз основа на въведеното от вас име и описание', 'templateContentHint':
'inputNameHint': 'Моля, въведете име', 'Моля, въведете съдържание на шаблона! Съвет: Натиснете бутона AI по-горе, за да генерирате бързо съдържание на шаблон въз основа на въведеното от вас име и описание',
'inputDescHint': 'Моля, въведете описание', 'inputNameHint': 'Моля, въведете име',
'custom': 'Персонализиран', 'inputDescHint': 'Моля, въведете описание',
'pleaseEnter': 'Моля, въведете', 'custom': 'Персонализиран',
'pleaseEnter': 'Моля, въведете',
'viewAll': 'Виж всички', 'viewAll': 'Виж всички',
'recordingLanguage': 'Език на записа', 'recordingLanguage': 'Език на записа',
'chineseSimplified': 'Китайски мандарин (Опростен)', 'chineseSimplified': 'Китайски мандарин (Опростен)',
@ -591,10 +609,11 @@ const Map<String, String> bgBG = {
'shareAudio': 'Share Meeting Audio', 'shareAudio': 'Share Meeting Audio',
'shareComplete': 'Share complete!', 'shareComplete': 'Share complete!',
'shareFailed': 'Неуспешно споделяне: {error}', 'shareFailed': 'Неуспешно споделяне: {error}',
'fileProcessingFailed': 'Неуспешна обработка на файл: {filePath}, грешка: {error}', 'fileProcessingFailed':
'Неуспешна обработка на файл: {filePath}, грешка: {error}',
// Meeting模块 - 思维导图 // Meeting模块 - 思维导图
'saveMindMap': 'Запази интелектуална карта', 'saveMindMap': 'Запази интелектуална карта',
'shareMindMap': 'Share Mind Map', 'shareMindMap': 'Share Mind Map',
'shareSuccess': 'Успешно споделяне', 'shareSuccess': 'Успешно споделяне',
@ -616,7 +635,7 @@ const Map<String, String> bgBG = {
'exportSummary': 'Export Summary', 'exportSummary': 'Export Summary',
'exportAs': 'Export As', 'exportAs': 'Export As',
'exportingPDF': 'Exporting PDF...', 'exportingPDF': 'Exporting PDF...',
'export': 'Експортиране', 'export': 'Експортиране',
// Meeting模块 - 发言者 // Meeting模块 - 发言者
'applyToAllParagraphs': 'Приложи към всички абзаци на този говорител', 'applyToAllParagraphs': 'Приложи към всички абзаци на този говорител',
@ -728,18 +747,19 @@ const Map<String, String> bgBG = {
// Meeting模块 - 错误提示 // Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Unknown Language', 'meetingUnknownLanguage': 'Unknown Language',
'analysisFailed': 'Анализът не успя, моля опитайте отново по-късно', 'analysisFailed': 'Анализът не успя, моля опитайте отново по-късно',
'transcriptionFailed': 'Транскрипцията не успя, моля опитайте отново по-късно', 'transcriptionFailed':
'summaryFailed': 'Обобщението не успя, моля опитайте отново по-късно', 'Транскрипцията не успя, моля опитайте отново по-късно',
'summaryFailedShort': 'Неуспешно обобщение', 'summaryFailed': 'Обобщението не успя, моля опитайте отново по-късно',
'transcriptionFailedShort': 'Неуспешна транскрипция', 'summaryFailedShort': 'Неуспешно обобщение',
'transcriptionFailedShort': 'Неуспешна транскрипция',
// Meeting模块 - 播放器 // Meeting模块 - 播放器
'playerNotReady': 'Аудио плейърът не е готов, моля изчакайте', 'playerNotReady': 'Аудио плейърът не е готов, моля изчакайте',
'playFailed': 'Неуспешно възпроизвеждане', 'playFailed': 'Неуспешно възпроизвеждане',
'audioFileNotFound': 'Аудио файлът не е намерен', 'audioFileNotFound': 'Аудио файлът не е намерен',
'fetchingAudio': 'Извличане на аудио от облака...', 'fetchingAudio': 'Извличане на аудио от облака...',
'playerLoadFailed': 'Аудио плейърът не успя да се зареди', 'playerLoadFailed': 'Аудио плейърът не успя да се зареди',
// 设置页 // 设置页
"systemSettings": "Системни настройки", "systemSettings": "Системни настройки",
@ -748,8 +768,8 @@ const Map<String, String> bgBG = {
"translationRecharge": "Преплащане за превод", "translationRecharge": "Преплащане за превод",
"meetingAssistantRecharge": "Преплащане за Сообщението", "meetingAssistantRecharge": "Преплащане за Сообщението",
"cloudSync": "Преплащане за синхронизация в облака", "cloudSync": "Преплащане за синхронизация в облака",
"memberService": "Member Service", "memberService": "Членско обслужване",
"bindRewardTitle": "Rewards", "bindRewardTitle": "Награди",
"bindRewardSimpleDesc": "bindRewardSimpleDesc":
"Наградата за първо свързване на устройство е издадена. Натиснете ОК за затваряне.", "Наградата за първо свързване на устройство е издадена. Натиснете ОК за затваряне.",
"joinDevice": "Свързано устройство:", "joinDevice": "Свързано устройство:",
@ -846,7 +866,8 @@ const Map<String, String> bgBG = {
"swipeUpForMore": "Плъзнете нагоре за повече", "swipeUpForMore": "Плъзнете нагоре за повече",
"callingTool": "Помагам ви, моля изчакайте!", // 正在帮您,请稍等! "callingTool": "Помагам ви, моля изчакайте!", // 正在帮您,请稍等!
"voice_interrupt": "Прекъсване", // 语音打断 "voice_interrupt": "Прекъсване", // 语音打断
'voice_interrupt_tip': 'Когато е включено: AI няма да бъде прекъснат от гласа ви, докато говори, и може да обработва само един кръг от разговор наведнъж. За да започнете нов кръг, просто кажете думата за събуждане.', 'voice_interrupt_tip':
'Когато е включено: AI няма да бъде прекъснат от гласа ви, докато говори, и може да обработва само един кръг от разговор наведнъж. За да започнете нов кръг, просто кажете думата за събуждане.',
// Agent模块 - 预设提示词 // Agent模块 - 预设提示词
"presetMusic": "Пусни малко музика", // 来点音乐 "presetMusic": "Пусни малко музика", // 来点音乐
@ -943,11 +964,13 @@ const Map<String, String> bgBG = {
'builtInNavigation': 'Built-in Navigation', 'builtInNavigation': 'Built-in Navigation',
'useBuiltInNavigation': 'Navigate with built-in map', 'useBuiltInNavigation': 'Navigate with built-in map',
'navigationStartFailed': 'Неуспешно стартиране на навигацията', 'navigationStartFailed': 'Неуспешно стартиране на навигацията',
'cannotPlayMusicListRetryLater': 'Не може да се възпроизведе музикалният списък, моля опитайте отново по-късно', 'cannotPlayMusicListRetryLater':
'Не може да се възпроизведе музикалният списък, моля опитайте отново по-късно',
'cannotPlaySong': 'Cannot play song', 'cannotPlaySong': 'Cannot play song',
'openMapError': 'Грешка при отваряне на картата', 'openMapError': 'Грешка при отваряне на картата',
'pleaseInstallAmapApp': 'Моля, първо инсталирайте приложението Amap', 'pleaseInstallAmapApp': 'Моля, първо инсталирайте приложението Amap',
'pleaseInstallBaiduMapApp': 'Моля, първо инсталирайте приложението Baidu Maps', 'pleaseInstallBaiduMapApp':
'Моля, първо инсталирайте приложението Baidu Maps',
'appleMapStartFailed': 'Неуспешно стартиране на Apple Maps', 'appleMapStartFailed': 'Неуспешно стартиране на Apple Maps',
'appleMapUnavailable': 'Apple Maps unavailable', 'appleMapUnavailable': 'Apple Maps unavailable',
'openAppleMapError': 'Грешка при отваряне на Apple Maps', 'openAppleMapError': 'Грешка при отваряне на Apple Maps',
@ -1029,8 +1052,10 @@ const Map<String, String> bgBG = {
'disableFloatingWindow': 'Изключи плаващ прозорец', 'disableFloatingWindow': 'Изключи плаващ прозорец',
'enableFloatingWindow': 'Включи плаващ прозорец', 'enableFloatingWindow': 'Включи плаващ прозорец',
'permissionTip': 'Съвет за разрешение', 'permissionTip': 'Съвет за разрешение',
'micPermissionRequiredForRecording': 'За записване е необходимо разрешение за микрофон', 'micPermissionRequiredForRecording':
'deleteTranslationRecordError': 'Грешка при изтриване на запис за превод: @error', 'За записване е необходимо разрешение за микрофон',
'deleteTranslationRecordError':
'Грешка при изтриване на запис за превод: @error',
"translationFailed": "Неуспешен превод", "translationFailed": "Неуспешен превод",
"translating": "Превеждане", "translating": "Превеждане",
"translate": "Преведи", "translate": "Преведи",
@ -1318,17 +1343,19 @@ const Map<String, String> bgBG = {
'permissionUtilConfirm': 'ОК', 'permissionUtilConfirm': 'ОК',
// 原生前台服务通知(Android) // 原生前台服务通知(Android)
'native.notification.appName': 'VOITRANS', 'native.notification.appName': 'VOITRANS',
'native.notification.navigation.title': 'Навигация в ход', 'native.notification.navigation.title': 'Навигация в ход',
'native.notification.navigation.keepRunning': 'Навигация, поддържайте приложението работещо', 'native.notification.navigation.keepRunning':
'native.notification.bleAgent.running': 'Гласовият асистент работи', 'Навигация, поддържайте приложението работещо',
'native.notification.audioRecording.recording': 'Записва се аудио, натиснете за да се върнете в приложението', 'native.notification.bleAgent.running': 'Гласовият асистент работи',
'native.notification.music.waiting': 'Изчакване за възпроизвеждане', 'native.notification.audioRecording.recording':
'native.notification.music.previous': 'Предишна', 'Записва се аудио, натиснете за да се върнете в приложението',
'native.notification.music.next': 'Следваща', 'native.notification.music.waiting': 'Изчакване за възпроизвеждане',
'native.notification.music.play': 'Възпроизвеждане', 'native.notification.music.previous': 'Предишна',
'native.notification.music.pause': 'Пауза', 'native.notification.music.next': 'Следваща',
'native.notification.qqMusic.playing': 'Възпроизвеждане на музика', 'native.notification.music.play': 'Възпроизвеждане',
'native.notification.music.pause': 'Пауза',
'native.notification.qqMusic.playing': 'Възпроизвеждане на музика',
// 版本更新 // 版本更新
'newVersionFound': 'Намерена е нова версия', // 版本更新对话框标题 'newVersionFound': 'Намерена е нова версия', // 版本更新对话框标题
@ -1475,46 +1502,58 @@ const Map<String, String> bgBG = {
// OTA升级模块 - 弹窗与对话框 // OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': 'New version @version found', 'otaNewVersionFoundWithVersion': 'New version @version found',
'otaConfirmUpdateNow': 'Update now?', 'otaConfirmUpdateNow': 'Да се актуализира ли сега?',
'otaUpdate': 'Update', 'otaUpdate': 'Актуализиране',
'otaUpgradeSuccess': 'Успешна актуализация', 'otaUpgradeSuccess': 'Успешна актуализация',
'otaUpgradeCompleteRepair': 'Актуализацията на фърмуера е завършена!\n\nУстройството трябва да бъде сдвоено отново, за да работи правилно. Да отидете на страницата за сдвояване сега?', 'otaUpgradeCompleteRepair':
'otaPairLater': 'Pair Later', 'Актуализацията на фърмуера е завършена!\n\nУстройството трябва да бъде сдвоено отново, за да работи правилно. Да отидете на страницата за сдвояване сега?',
'otaPairNow': 'Pair Now', 'otaPairLater': 'Сдвояване по-късно',
'otaPairNow': 'Сдвояване сега',
'okConfirm': 'OK', 'okConfirm': 'OK',
// OTA升级模块 - 设备检查 // OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'Error checking BLE connection: @error', 'otaBleCheckErrorWithError': 'Грешка при проверка на BLE връзката: @error',
'otaBleNotConnected': 'BLE Device Not Connected', 'otaBleNotConnected': 'BLE устройството не е свързано',
'otaBleNeedConnection': 'Firmware upgrade requires BLE device connection\nPlease ensure device is properly connected and try again', 'otaBleNeedConnection':
'otaDeviceInfoUnavailableTitle': 'Device Info Unavailable', 'Актуализацията на фърмуера изисква BLE връзка\nУверете се, че устройството е свързано правилно, и опитайте отново',
'otaCannotGetDeviceInfo': 'Cannot get device info\nPlease reconnect device or try again later', 'otaDeviceInfoUnavailableTitle': 'Информацията за устройството не е налична',
'otaBleCheckFailed': 'BLE Connection Check Failed', 'otaCannotGetDeviceInfo':
'otaCannotGetDeviceInfoCheckConnection': 'Cannot get device info, please check device connection', 'Не може да се получи информация за устройството\nСвържете устройството отново или опитайте по-късно',
'otaCannotGetProductInfoWithName': 'Cannot get product info, device name: @deviceName', 'otaBleCheckFailed': 'Проверката на BLE връзката не успя',
'otaCannotGetBatteryInfo': 'Cannot get valid battery info', 'otaCannotGetDeviceInfoCheckConnection':
'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', 'otaCannotGetProductInfoWithName':
'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', 'Не може да се получи информация за продукта, име на устройството: @deviceName',
'otaBatteryCheckFailed': 'Battery Check Failed', 'otaCannotGetBatteryInfo':
'Не може да се получи валидна информация за батерията',
'otaLowBattery': 'Ниска батерия',
'otaSingleBatteryLow':
'Батерията на устройството е твърде ниска за актуализация на фърмуера\nИзискване: батерията трябва да е над 20%\nТекущо: @ear @battery%\nЗаредете и опитайте отново',
'otaDoubleBatteryLow':
'Батерията на устройството е твърде ниска за актуализация на фърмуера\nИзискване: и двете слушалки трябва да са над 20%\nТекущо: Лява @left%, Дясна @right%\nЗаредете и опитайте отново',
'otaBatteryCheckFailed': 'Проверката на батерията не успя',
// OTA升级模块 - 升级状态 // OTA升级模块 - 升级状态
'otaDefaultUpdateDesc': 'This update includes performance optimizations and bug fixes.', 'otaDefaultUpdateDesc':
'otaGetLatestVersionFailed': 'Failed to get latest version info', 'Тази актуализация включва оптимизации на производителността и поправки на грешки.',
'otaGetVersionInfoFailed': 'Failed to get version info', 'otaGetLatestVersionFailed':
'otaCheckingDeviceStatus': 'Checking device status...', 'Неуспешно получаване на информация за последната версия',
'otaDownloadFailedCheckNetwork': 'Download failed, please check network connection', 'otaGetVersionInfoFailed': 'Неуспешно получаване на информация за версията',
'otaDownloadFailed': 'Download Failed', 'otaCheckingDeviceStatus': 'Проверка на състоянието на устройството...',
'otaPreparingConnection': 'Preparing device connection...', 'otaDownloadFailedCheckNetwork':
'otaConnectingDevice': 'Connecting to device...', 'Изтеглянето не успя, проверете мрежовата връзка',
'otaUpgradeStarted': 'OTA upgrade started...', 'otaDownloadFailed': 'Изтеглянето не успя',
'otaUpgradeProgressWithPercent': 'Upgrade progress: @percent%', 'otaPreparingConnection': 'Подготовка на връзката с устройството...',
'otaUpgradeSuccessComplete': 'Upgrade completed successfully', 'otaConnectingDevice': 'Свързване с устройството...',
'otaUpgradeFailedWithCode': 'Upgrade failed, error code: @code', 'otaUpgradeStarted': 'Актуализацията (OTA) започна...',
'otaUpgradeFailedTitle': 'Upgrade Failed', 'otaUpgradeProgressWithPercent': 'Напредък на актуализацията: @percent%',
'otaUpgradeFailedDesc': 'Please check device connection or update package, error code: @code', 'otaUpgradeSuccessComplete': 'Актуализацията завърши успешно',
'otaDeviceDisconnected': 'Device disconnected', 'otaUpgradeFailedWithCode': 'Актуализацията не успя, код на грешка: @code',
'otaDeviceConnected': 'Device connected', 'otaUpgradeFailedTitle': 'Актуализацията не успя',
'otaUpgradeFailedDesc':
'Проверете връзката на устройството или пакета за актуализация, код на грешка: @code',
'otaDeviceDisconnected': 'Устройството е разкачено',
'otaDeviceConnected': 'Устройството е свързано',
// 音乐模块 // 音乐模块
"noMusic": "Няма музика", // 暂无音乐 "noMusic": "Няма музика", // 暂无音乐

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

@ -1,5 +1,5 @@
//捷克-捷克语
const Map<String, String> csCZ = { const Map<String, String> csCZ = {
// 通用 // 通用
'continue': 'Pokračovat', 'continue': 'Pokračovat',
'confirm': 'Potvrdit', 'confirm': 'Potvrdit',
@ -168,12 +168,15 @@ const Map<String, String> csCZ = {
// 蓝牙扫描模块 // 蓝牙扫描模块
'bleInitFailedWithError': 'Inicializace Bluetooth selhala: @error', 'bleInitFailedWithError': 'Inicializace Bluetooth selhala: @error',
'needBluetoothAndLocationPermission': 'Pro vyhledávání zařízení jsou vyžadována oprávnění Bluetooth a polohy', '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', 'permissionRequestFailedWithError': 'Žádost o oprávnění selhala: @error',
'needPermission': 'Vyžadováno oprávnění', '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í.', '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', 'needEnableBluetooth': 'Zapnout Bluetooth',
'enableBluetoothDialogContent': 'Zapněte prosím Bluetooth pro vyhledávání a připojení zařízení.', 'enableBluetoothDialogContent':
'Zapněte prosím Bluetooth pro vyhledávání a připojení zařízení.',
'bleScanFailedWithError': 'Vyhledávání selhalo: @error', 'bleScanFailedWithError': 'Vyhledávání selhalo: @error',
'bleConnectionSuccess': 'Připojení úspěšné', 'bleConnectionSuccess': 'Připojení úspěšné',
'bleConnectedToDevice': 'Připojeno k @device', 'bleConnectedToDevice': 'Připojeno k @device',
@ -261,60 +264,65 @@ const Map<String, String> csCZ = {
'totalQuota': 'Celková kvóta', 'totalQuota': 'Celková kvóta',
'remaining': 'Zbývá', 'remaining': 'Zbývá',
'featureDescription': 'Popis funkce', 'featureDescription': 'Popis funkce',
'paymentSuccess': 'Platba proběhla úspěšně', 'paymentSuccess': 'Platba proběhla úspěšně',
'paymentFailed': 'Platba se nezdařila', 'paymentFailed': 'Platba se nezdařila',
'gotIt': 'Rozumím', 'gotIt': 'Rozumím',
'paymentFailedTryAgain': 'Platba se nezdařila. Zkuste to prosím znovu.', 'paymentFailedTryAgain': 'Platba se nezdařila. Zkuste to prosím znovu.',
'selectPaymentMethod': 'Vyberte způsob platby', 'selectPaymentMethod': 'Vyberte způsob platby',
'wechatPay': 'WeChat Pay', 'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay', 'alipayPay': 'Alipay',
'paypalPay': 'PayPal', 'paypalPay': 'PayPal',
'appleIap': 'Apple IAP', 'appleIap': 'Apple IAP',
'googleIap': 'Google IAP', 'googleIap': 'Google IAP',
'wechatOrderCreateFailed': 'Nepodařilo se vytvořit objednávku WeChat', 'wechatOrderCreateFailed': 'Nepodařilo se vytvořit objednávku WeChat',
'alipayOrderCreateFailed': 'Nepodařilo se vytvořit objednávku Alipay', 'alipayOrderCreateFailed': 'Nepodařilo se vytvořit objednávku Alipay',
'appleOrderCreateFailed': 'Nepodařilo se vytvořit objednávku Apple', 'appleOrderCreateFailed': 'Nepodařilo se vytvořit objednávku Apple',
'googleOrderCreateFailed': 'Nepodařilo se vytvořit objednávku Google', 'googleOrderCreateFailed': 'Nepodařilo se vytvořit objednávku Google',
'paypalOrderCreateFailed': 'Nepodařilo se vytvořit objednávku PayPal', 'paypalOrderCreateFailed': 'Nepodařilo se vytvořit objednávku PayPal',
'paymentException': 'Chyba platby', 'paymentException': 'Chyba platby',
'paymentLaunchFailed': 'Nepodařilo se spustit platbu', 'paymentLaunchFailed': 'Nepodařilo se spustit platbu',
'paymentExceptionWithError': 'Chyba platby: @error', 'paymentExceptionWithError': 'Chyba platby: @error',
'paymentProcessingCheckLater': 'Vaše objednávka se zpracovává. Zkontrolujte později.', 'paymentProcessingCheckLater':
'paymentResultQueryException': 'Nepodařilo se zjistit výsledek platby: @error', 'Vaše objednávka se zpracovává. Zkontrolujte později.',
'orderConfirmedQuotaRefreshed': 'Objednávka potvrzena. Váš limit byl obnoven.', 'paymentResultQueryException':
'paymentCompletedConfirming': 'Platba dokončena. Potvrzování…', 'Nepodařilo se zjistit výsledek platby: @error',
'paymentCancelled': 'Platba zrušena', 'orderConfirmedQuotaRefreshed':
'paypalOpenedCompleteInBrowser': 'PayPal otevřen. Dokončete platbu v prohlížeči.', 'Objednávka potvrzena. Váš limit byl obnoven.',
'paypalOpenFailed': 'Nelze otevřít stránku platby PayPal', 'paymentCompletedConfirming': 'Platba dokončena. Potvrzování…',
'paymentTestTitle': 'Test platby', 'paymentCancelled': 'Platba zrušena',
'paymentTestOrderInfo': 'Informace o testovací objednávce', 'paypalOpenedCompleteInBrowser':
'paymentTestProductId': 'ID produktu', 'PayPal otevřen. Dokončete platbu v prohlížeči.',
'paymentTestProductDescription': 'Popis produktu', 'paypalOpenFailed': 'Nelze otevřít stránku platby PayPal',
'paymentTestWechatDescription': 'Test platby WeChat', 'paymentTestTitle': 'Test platby',
'paymentTestAlipayDescription': 'Test platby Alipay', 'paymentTestOrderInfo': 'Informace o testovací objednávce',
'paymentTestAmount': 'Částka', 'paymentTestProductId': 'ID produktu',
'paymentTestSelectAmount': 'Vyberte testovací částku', 'paymentTestProductDescription': 'Popis produktu',
'paying': 'Platba...', 'paymentTestWechatDescription': 'Test platby WeChat',
'wechatPayWithAmount': 'WeChat Pay ¥@amount', 'paymentTestAlipayDescription': 'Test platby Alipay',
'alipayPayWithAmount': 'Alipay ¥@amount', 'paymentTestAmount': 'Částka',
'paymentStatusTitle': 'Stav platby', 'paymentTestSelectAmount': 'Vyberte testovací částku',
'errorInfoWithMessage': 'Chyba: @message', 'paying': 'Platba...',
'retest': 'Opakovat test', 'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'paymentTestInstructionsTitle': 'Pokyny', 'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentTestInstructionsContent': '1. Vyberte testovací částku (doporučeno: ¥0.01)\n2. Klikněte na tlačítko platby pro zahájení\n3. Dokončete platbu v platební aplikaci\n4. Vraťte se a zkontrolujte výsledek', 'paymentStatusTitle': 'Stav platby',
'startingWechatPayment': 'Spouštění WeChat Pay...', 'errorInfoWithMessage': 'Chyba: @message',
'startingAlipayPayment': 'Spouštění Alipay...', 'retest': 'Opakovat test',
'wechatPaymentSuccess': 'Platba WeChat Pay proběhla úspěšně!', 'paymentTestInstructionsTitle': 'Pokyny',
'wechatPaymentFailed': 'Platba WeChat Pay se nezdařila', 'paymentTestInstructionsContent':
'wechatPaymentLaunchFailed': 'Nepodařilo se spustit WeChat Pay', '1. Vyberte testovací částku (doporučeno: ¥0.01)\n2. Klikněte na tlačítko platby pro zahájení\n3. Dokončete platbu v platební aplikaci\n4. Vraťte se a zkontrolujte výsledek',
'cannotLaunchWechatPayment': 'Nelze spustit WeChat Pay', 'startingWechatPayment': 'Spouštění WeChat Pay...',
'wechatPaymentException': 'Chyba WeChat Pay', 'startingAlipayPayment': 'Spouštění Alipay...',
'wechatPaymentTestCompleted': 'Test platby WeChat Pay dokončen', 'wechatPaymentSuccess': 'Platba WeChat Pay proběhla úspěšně!',
'alipayPaymentSuccess': 'Platba Alipay proběhla úspěšně!', 'wechatPaymentFailed': 'Platba WeChat Pay se nezdařila',
'alipayPaymentFailed': 'Platba Alipay se nezdařila', 'wechatPaymentLaunchFailed': 'Nepodařilo se spustit WeChat Pay',
'alipayPaymentLaunchFailed': 'Nepodařilo se spustit Alipay', 'cannotLaunchWechatPayment': 'Nelze spustit WeChat Pay',
'cannotLaunchAlipayPayment': 'Nelze spustit Alipay', 'wechatPaymentException': 'Chyba WeChat Pay',
'alipayPaymentException': 'Chyba Alipay', 'wechatPaymentTestCompleted': 'Test platby WeChat Pay dokončen',
'alipayPaymentSuccess': 'Platba Alipay proběhla úspěšně!',
'alipayPaymentFailed': 'Platba Alipay se nezdařila',
'alipayPaymentLaunchFailed': 'Nepodařilo se spustit Alipay',
'cannotLaunchAlipayPayment': 'Nelze spustit Alipay',
'alipayPaymentException': 'Chyba Alipay',
"insufficientIntegral": "Nedostatek bodů", "insufficientIntegral": "Nedostatek bodů",
"insufficientBalanceDesc": "insufficientBalanceDesc":
'Nedostatečný zůstatek, přejděte prosím na příslušnou stránku pro dobití.', 'Nedostatečný zůstatek, přejděte prosím na příslušnou stránku pro dobití.',
@ -516,16 +524,24 @@ const Map<String, String> csCZ = {
'meetingRecordExitMessage': 'Vyberte, co udělat před odchodem', // 请选择离开后的操作 'meetingRecordExitMessage': 'Vyberte, co udělat před odchodem', // 请选择离开后的操作
'meetingRecordEndAndSave': 'Ukončit a uložit', // 结束录音并保存 'meetingRecordEndAndSave': 'Ukončit a uložit', // 结束录音并保存
'meetingRecordEndWithoutSave': 'Ukončit bez uložení', // 结束录音不保存 'meetingRecordEndWithoutSave': 'Ukončit bez uložení', // 结束录音不保存
'meetingRecordContinueInBackground': 'Pokračovat v nahrávání na pozadí', // 后台继续录音 'meetingRecordContinueInBackground':
'meetingRecordStopTimeout': 'Časový limit pro zastavení nahrávání vypršel. Zkuste to znovu.', // 结束录音超时,请重试 'Pokračovat v nahrávání na pozadí', // 后台继续录音
'meetingRecordStopFailed': 'Nepodařilo se zastavit nahrávání. Zkuste to znovu.', // 结束录音失败,请重试 'meetingRecordStopTimeout':
'meetingRecordSaveFailed': 'Nepodařilo se uložit nahrávku. Zkuste to znovu.', // 保存录音失败,请重试 'Časový limit pro zastavení nahrávání vypršel. Zkuste to znovu.', // 结束录音超时,请重试
'meetingRecordStopFailed':
'Nepodařilo se zastavit nahrávání. Zkuste to znovu.', // 结束录音失败,请重试
'meetingRecordSaveFailed':
'Nepodařilo se uložit nahrávku. Zkuste to znovu.', // 保存录音失败,请重试
'meetingRecordRecordingNotificationTitle': 'Probíhá nahrávání', // 录音进行中 'meetingRecordRecordingNotificationTitle': 'Probíhá nahrávání', // 录音进行中
'meetingRecordRecordingNotificationBody': 'Nahrávání na pozadí. Klepnutím se vraťte do aplikace.', // 正在后台录音,点击返回应用 'meetingRecordRecordingNotificationBody':
'Nahrávání na pozadí. Klepnutím se vraťte do aplikace.', // 正在后台录音,点击返回应用
'overlayPermissionTitle': 'Zobrazovat nad ostatními aplikacemi', // 悬浮窗权限 'overlayPermissionTitle': 'Zobrazovat nad ostatními aplikacemi', // 悬浮窗权限
'overlayPermissionTranslationDesc': 'Abychom mohli zobrazovat výsledky překladu během hovorů nebo překladu zvuku/videa, potřebujeme oprávnění zobrazovat nad ostatními aplikacemi. Díky tomu uvidíte překlady v reálném čase i při používání jiných aplikací.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 'overlayPermissionTranslationDesc':
'overlayPermissionRecordingDesc': 'Abychom mohli během nahrávání zobrazit plovoucí lištu (časovač/pauza/pokračovat), potřebujeme oprávnění zobrazovat nad ostatními aplikacjami.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 'Abychom mohli zobrazovat výsledky překladu během hovorů nebo překladu zvuku/videa, potřebujeme oprávnění zobrazovat nad ostatními aplikacemi. Díky tomu uvidíte překlady v reálném čase i při používání jiných aplikací.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。
'overlayPermissionOpenSettingsFailed': 'Nepodařilo se automaticky otevřít systémová nastavení. Otevřete prosím Nastavení a povolte oprávnění zobrazovat nad ostatními aplikacemi ručně.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'overlayPermissionRecordingDesc':
'Abychom mohli během nahrávání zobrazit plovoucí lištu (časovač/pauza/pokračovat), potřebujeme oprávnění zobrazovat nad ostatními aplikacjami.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。
'overlayPermissionOpenSettingsFailed':
'Nepodařilo se automaticky otevřít systémová nastavení. Otevřete prosím Nastavení a povolte oprávnění zobrazovat nad ostatními aplikacemi ručně.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。
'transcribing': 'Přepisování...', 'transcribing': 'Přepisování...',
'summarizing': 'Shrnování...', 'summarizing': 'Shrnování...',
'analyzing': 'Analyzování...', 'analyzing': 'Analyzování...',
@ -550,21 +566,22 @@ const Map<String, String> csCZ = {
'selectSummaryTemplate': 'Select Summary Template', 'selectSummaryTemplate': 'Select Summary Template',
'useThisTemplate': 'Use This Template', 'useThisTemplate': 'Use This Template',
'lastUsed': 'Last Used', 'lastUsed': 'Last Used',
'create': 'Vytvořit', 'create': 'Vytvořit',
'templateDetails': 'Podrobnosti šablony', 'templateDetails': 'Podrobnosti šablony',
'tag': 'Štítek', 'tag': 'Štítek',
'description': 'Popis', 'description': 'Popis',
'template': 'Šablona', 'template': 'Šablona',
'deleteTemplate': 'Smazat šablonu', 'deleteTemplate': 'Smazat šablonu',
'deleteTemplateConfirm': 'Opravdu chcete smazat tuto šablonu?', 'deleteTemplateConfirm': 'Opravdu chcete smazat tuto šablonu?',
'editTemplate': 'Upravit šablonu', 'editTemplate': 'Upravit šablonu',
'createTemplate': 'Vytvořit šablonu', 'createTemplate': 'Vytvořit šablonu',
'name': 'Název', 'name': 'Název',
'templateContentHint': 'Zadejte prosím obsah šablony! Tip: klikněte na tlačítko AI výše pro rychlé vygenerování obsahu šablony na základě zadaného názvu a popisu', 'templateContentHint':
'inputNameHint': 'Zadejte prosím název', 'Zadejte prosím obsah šablony! Tip: klikněte na tlačítko AI výše pro rychlé vygenerování obsahu šablony na základě zadaného názvu a popisu',
'inputDescHint': 'Zadejte prosím popis', 'inputNameHint': 'Zadejte prosím název',
'custom': 'Vlastní', 'inputDescHint': 'Zadejte prosím popis',
'pleaseEnter': 'Prosím zadejte', 'custom': 'Vlastní',
'pleaseEnter': 'Prosím zadejte',
'viewAll': 'View All', 'viewAll': 'View All',
'recordingLanguage': 'Jazyk nahrávání', 'recordingLanguage': 'Jazyk nahrávání',
'chineseSimplified': 'Chinese Mandarin (Simplified)', 'chineseSimplified': 'Chinese Mandarin (Simplified)',
@ -584,10 +601,11 @@ const Map<String, String> csCZ = {
'shareAudio': 'Share Meeting Audio', 'shareAudio': 'Share Meeting Audio',
'shareComplete': 'Share complete!', 'shareComplete': 'Share complete!',
'shareFailed': 'Sdílení selhalo: {error}', 'shareFailed': 'Sdílení selhalo: {error}',
'fileProcessingFailed': 'Zpracování souboru selhalo: {filePath}, chyba: {error}', 'fileProcessingFailed':
'Zpracování souboru selhalo: {filePath}, chyba: {error}',
// Meeting模块 - 思维导图 // Meeting模块 - 思维导图
'saveMindMap': 'Uložit myšlenkovou mapu', 'saveMindMap': 'Uložit myšlenkovou mapu',
'shareMindMap': 'Share Mind Map', 'shareMindMap': 'Share Mind Map',
'shareSuccess': 'Sdílení úspěšné', 'shareSuccess': 'Sdílení úspěšné',
@ -609,7 +627,7 @@ const Map<String, String> csCZ = {
'exportSummary': 'Export Summary', 'exportSummary': 'Export Summary',
'exportAs': 'Export As', 'exportAs': 'Export As',
'exportingPDF': 'Exporting PDF...', 'exportingPDF': 'Exporting PDF...',
'export': 'Exportovat', 'export': 'Exportovat',
// Meeting模块 - 发言者 // Meeting模块 - 发言者
'applyToAllParagraphs': 'Použít na všechny odstavce tohoto mluvčího', 'applyToAllParagraphs': 'Použít na všechny odstavce tohoto mluvčího',
@ -720,18 +738,18 @@ const Map<String, String> csCZ = {
// Meeting模块 - 错误提示 // Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Unknown Language', 'meetingUnknownLanguage': 'Unknown Language',
'analysisFailed': 'Analýza se nezdařila, zkuste to prosím později', 'analysisFailed': 'Analýza se nezdařila, zkuste to prosím později',
'transcriptionFailed': 'Přepis se nezdařil, zkuste to prosím později', 'transcriptionFailed': 'Přepis se nezdařil, zkuste to prosím později',
'summaryFailed': 'Nepodařilo se vytvořit shrnutí, zkuste to prosím později', 'summaryFailed': 'Nepodařilo se vytvořit shrnutí, zkuste to prosím později',
'summaryFailedShort': 'Shrnutí se nezdařilo', 'summaryFailedShort': 'Shrnutí se nezdařilo',
'transcriptionFailedShort': 'Přepis se nezdařil', 'transcriptionFailedShort': 'Přepis se nezdařil',
// Meeting模块 - 播放器 // Meeting模块 - 播放器
'playerNotReady': 'Audio přehrávač není připraven, počkejte prosím', 'playerNotReady': 'Audio přehrávač není připraven, počkejte prosím',
'playFailed': 'Chyba přehrávání', 'playFailed': 'Chyba přehrávání',
'audioFileNotFound': 'Zvukový soubor nenalezen', 'audioFileNotFound': 'Zvukový soubor nenalezen',
'fetchingAudio': 'Načítání zvuku z cloudu...', 'fetchingAudio': 'Načítání zvuku z cloudu...',
'playerLoadFailed': 'Nepodařilo se načíst audio přehrávač', 'playerLoadFailed': 'Nepodařilo se načíst audio přehrávač',
// 设置页 // 设置页
"systemSettings": "Systémová nastavení", "systemSettings": "Systémová nastavení",
@ -740,8 +758,8 @@ const Map<String, String> csCZ = {
"translationRecharge": "Přepayka překladu", "translationRecharge": "Přepayka překladu",
"meetingAssistantRecharge": "Přepayka asistenta schůzky", "meetingAssistantRecharge": "Přepayka asistenta schůzky",
"cloudSync": "Přepayka synchronizace v cloudu", "cloudSync": "Přepayka synchronizace v cloudu",
"memberService": "Member Service", "memberService": "Členský servis",
"bindRewardTitle": "Rewards", "bindRewardTitle": "Odměny",
"bindRewardSimpleDesc": "bindRewardSimpleDesc":
"Odměna za první propojení zařízení byla vydána. Klepněte na OK pro zavření.", "Odměna za první propojení zařízení byla vydána. Klepněte na OK pro zavření.",
"joinDevice": "Připojené zařízení:", "joinDevice": "Připojené zařízení:",
@ -836,7 +854,8 @@ const Map<String, String> csCZ = {
"swipeUpForMore": "Potáhněte nahoru pro více", "swipeUpForMore": "Potáhněte nahoru pro více",
"callingTool": "Pomáhám vám, prosím čekejte!", // 正在帮您,请稍等! "callingTool": "Pomáhám vám, prosím čekejte!", // 正在帮您,请稍等!
"voice_interrupt": "Přerušit", // 语音打断 "voice_interrupt": "Přerušit", // 语音打断
'voice_interrupt_tip': 'Při zapnutí: AI nebude přerušen vaším hlasem během mluvení a může zpracovat pouze jedno kolo konverzace najednou. Pro zahájení nového kola stačí říct aktivační slovo.', 'voice_interrupt_tip':
'Při zapnutí: AI nebude přerušen vaším hlasem během mluvení a může zpracovat pouze jedno kolo konverzace najednou. Pro zahájení nového kola stačí říct aktivační slovo.',
// Agent模块 - 预设提示词 // Agent模块 - 预设提示词
"presetMusic": "Zahraj nějakou hudbu", // 来点音乐 "presetMusic": "Zahraj nějakou hudbu", // 来点音乐
@ -932,7 +951,8 @@ const Map<String, String> csCZ = {
'builtInNavigation': 'Built-in Navigation', 'builtInNavigation': 'Built-in Navigation',
'useBuiltInNavigation': 'Navigate with built-in map', 'useBuiltInNavigation': 'Navigate with built-in map',
'navigationStartFailed': 'Spuštění navigace selhalo', 'navigationStartFailed': 'Spuštění navigace selhalo',
'cannotPlayMusicListRetryLater': 'Nelze přehrát seznam hudby, zkuste to prosím později', 'cannotPlayMusicListRetryLater':
'Nelze přehrát seznam hudby, zkuste to prosím později',
'cannotPlaySong': 'Cannot play song', 'cannotPlaySong': 'Cannot play song',
'openMapError': 'Chyba při otevírání mapy', 'openMapError': 'Chyba při otevírání mapy',
'pleaseInstallAmapApp': 'Nejprve prosím nainstalujte aplikaci Amap', 'pleaseInstallAmapApp': 'Nejprve prosím nainstalujte aplikaci Amap',
@ -1018,7 +1038,8 @@ const Map<String, String> csCZ = {
'disableFloatingWindow': 'Zakázat plovoucí okno', 'disableFloatingWindow': 'Zakázat plovoucí okno',
'enableFloatingWindow': 'Povolit plovoucí okno', 'enableFloatingWindow': 'Povolit plovoucí okno',
'permissionTip': 'Upozornění na oprávnění', 'permissionTip': 'Upozornění na oprávnění',
'micPermissionRequiredForRecording': 'Pro nahrávání je vyžadováno oprávnění k mikrofonu', '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', 'deleteTranslationRecordError': 'Chyba při mazání záznamu překladu: @error',
"translationFailed": "Překlad selhal", "translationFailed": "Překlad selhal",
"translating": "Translating", "translating": "Translating",
@ -1297,17 +1318,19 @@ const Map<String, String> csCZ = {
'permissionUtilConfirm': 'OK', 'permissionUtilConfirm': 'OK',
// 原生前台服务通知(Android) // 原生前台服务通知(Android)
'native.notification.appName': 'VOITRANS', 'native.notification.appName': 'VOITRANS',
'native.notification.navigation.title': 'Probíhá navigace', 'native.notification.navigation.title': 'Probíhá navigace',
'native.notification.navigation.keepRunning': 'Navigace, nechte aplikaci spuštěnou', 'native.notification.navigation.keepRunning':
'native.notification.bleAgent.running': 'Hlasový asistent běží', 'Navigace, nechte aplikaci spuštěnou',
'native.notification.audioRecording.recording': 'Nahrávání zvuku, klepněte pro návrat do aplikace', 'native.notification.bleAgent.running': 'Hlasový asistent běží',
'native.notification.music.waiting': 'Čekání na přehrávání', 'native.notification.audioRecording.recording':
'native.notification.music.previous': 'Předchozí', 'Nahrávání zvuku, klepněte pro návrat do aplikace',
'native.notification.music.next': 'Další', 'native.notification.music.waiting': 'Čekání na přehrávání',
'native.notification.music.play': 'Přehrát', 'native.notification.music.previous': 'Předchozí',
'native.notification.music.pause': 'Pozastavit', 'native.notification.music.next': 'Další',
'native.notification.qqMusic.playing': 'Přehrávání hudby', 'native.notification.music.play': 'Přehrát',
'native.notification.music.pause': 'Pozastavit',
'native.notification.qqMusic.playing': 'Přehrávání hudby',
// 版本更新 // 版本更新
'newVersionFound': 'Nalezena nová verze', // 版本更新对话框标题 'newVersionFound': 'Nalezena nová verze', // 版本更新对话框标题
@ -1454,7 +1477,8 @@ const Map<String, String> csCZ = {
'otaConfirmUpdateNow': 'Update now?', 'otaConfirmUpdateNow': 'Update now?',
'otaUpdate': 'Update', 'otaUpdate': 'Update',
'otaUpgradeSuccess': 'Aktualizace úspěšná', '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í?', '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', 'otaPairLater': 'Pair Later',
'otaPairNow': 'Pair Now', 'otaPairNow': 'Pair Now',
'okConfirm': 'OK', 'okConfirm': 'OK',
@ -1462,24 +1486,33 @@ const Map<String, String> csCZ = {
// OTA升级模块 - 设备检查 // OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'Chyba při kontrole BLE připojení: @error', 'otaBleCheckErrorWithError': 'Chyba při kontrole BLE připojení: @error',
'otaBleNotConnected': 'BLE zařízení nepřipojeno', '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', '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é', 'otaDeviceInfoUnavailableTitle': 'Informace o zařízení nedostupné',
'otaCannotGetDeviceInfo': 'Nelze získat informace o zařízení\nZnovu připojte zařízení nebo to zkuste později', 'otaCannotGetDeviceInfo':
'Nelze získat informace o zařízení\nZnovu připojte zařízení nebo to zkuste později',
'otaBleCheckFailed': 'Kontrola BLE připojení selhala', 'otaBleCheckFailed': 'Kontrola BLE připojení selhala',
'otaCannotGetDeviceInfoCheckConnection': 'Nelze získat informace o zařízení, zkontrolujte prosím připojení zařízení', 'otaCannotGetDeviceInfoCheckConnection':
'otaCannotGetProductInfoWithName': 'Nelze získat informace o produktu, název zařízení: @deviceName', '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', 'otaCannotGetBatteryInfo': 'Cannot get valid battery info',
'otaLowBattery': 'Low Battery', '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', 'otaSingleBatteryLow':
'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', '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', 'otaBatteryCheckFailed': 'Kontrola baterie selhala',
// OTA升级模块 - 升级状态 // OTA升级模块 - 升级状态
'otaDefaultUpdateDesc': 'This update includes performance optimizations and bug fixes.', 'otaDefaultUpdateDesc':
'otaGetLatestVersionFailed': 'Nepodařilo se získat informace o nejnovější verzi', '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', 'otaGetVersionInfoFailed': 'Nepodařilo se získat informace o verzi',
'otaCheckingDeviceStatus': 'Kontrola stavu zařízení...', 'otaCheckingDeviceStatus': 'Kontrola stavu zařízení...',
'otaDownloadFailedCheckNetwork': 'Stahování selhalo, zkontrolujte prosím připojení k síti', 'otaDownloadFailedCheckNetwork':
'Stahování selhalo, zkontrolujte prosím připojení k síti',
'otaDownloadFailed': 'Stahování selhalo', 'otaDownloadFailed': 'Stahování selhalo',
'otaPreparingConnection': 'Příprava připojení zařízení...', 'otaPreparingConnection': 'Příprava připojení zařízení...',
'otaConnectingDevice': 'Připojování k zařízení...', 'otaConnectingDevice': 'Připojování k zařízení...',
@ -1488,7 +1521,8 @@ const Map<String, String> csCZ = {
'otaUpgradeSuccessComplete': 'Aktualizace byla úspěšně dokončena', 'otaUpgradeSuccessComplete': 'Aktualizace byla úspěšně dokončena',
'otaUpgradeFailedWithCode': 'Aktualizace selhala, kód chyby: @code', 'otaUpgradeFailedWithCode': 'Aktualizace selhala, kód chyby: @code',
'otaUpgradeFailedTitle': 'Aktualizace selhala', 'otaUpgradeFailedTitle': 'Aktualizace selhala',
'otaUpgradeFailedDesc': 'Zkontrolujte prosím připojení zařízení nebo aktualizační balíček, kód chyby: @code', 'otaUpgradeFailedDesc':
'Zkontrolujte prosím připojení zařízení nebo aktualizační balíček, kód chyby: @code',
'otaDeviceDisconnected': 'Zařízení odpojeno', 'otaDeviceDisconnected': 'Zařízení odpojeno',
'otaDeviceConnected': 'Zařízení připojeno', 'otaDeviceConnected': 'Zařízení připojeno',

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

@ -1,5 +1,5 @@
//丹麦-丹麦语
const Map<String, String> daDK = { const Map<String, String> daDK = {
// 通用 // 通用
'continue': 'Fortsæt', 'continue': 'Fortsæt',
'confirm': 'Bekræft', 'confirm': 'Bekræft',
@ -168,12 +168,16 @@ const Map<String, String> daDK = {
// 蓝牙扫描模块 // 蓝牙扫描模块
'bleInitFailedWithError': 'Bluetooth-initialisering mislykkedes: @error', 'bleInitFailedWithError': 'Bluetooth-initialisering mislykkedes: @error',
'needBluetoothAndLocationPermission': 'Bluetooth- og placeringstilladelser kræves for at scanne enheder', 'needBluetoothAndLocationPermission':
'permissionRequestFailedWithError': 'Tilladelsesanmodning mislykkedes: @error', 'Bluetooth- og placeringstilladelser kræves for at scanne enheder',
'permissionRequestFailedWithError':
'Tilladelsesanmodning mislykkedes: @error',
'needPermission': 'Tilladelse påkrævet', 'needPermission': 'Tilladelse påkrævet',
'blePermissionDialogContent': 'Appen kræver Bluetooth- og placeringstilladelser for at scanne enheder. Aktivér dem i Indstillinger.', 'blePermissionDialogContent':
'Appen kræver Bluetooth- og placeringstilladelser for at scanne enheder. Aktivér dem i Indstillinger.',
'needEnableBluetooth': 'Aktivér Bluetooth', 'needEnableBluetooth': 'Aktivér Bluetooth',
'enableBluetoothDialogContent': 'Aktivér Bluetooth for at scanne og forbinde enheder.', 'enableBluetoothDialogContent':
'Aktivér Bluetooth for at scanne og forbinde enheder.',
'bleScanFailedWithError': 'Scanning mislykkedes: @error', 'bleScanFailedWithError': 'Scanning mislykkedes: @error',
'bleConnectionSuccess': 'Forbindelse oprettet', 'bleConnectionSuccess': 'Forbindelse oprettet',
'bleConnectedToDevice': 'Forbundet til @device', 'bleConnectedToDevice': 'Forbundet til @device',
@ -261,60 +265,63 @@ const Map<String, String> daDK = {
'totalQuota': 'Total kvote', 'totalQuota': 'Total kvote',
'remaining': 'Resterende', 'remaining': 'Resterende',
'featureDescription': 'Funktionsbeskrivelse', 'featureDescription': 'Funktionsbeskrivelse',
'paymentSuccess': 'Betaling gennemført', 'paymentSuccess': 'Betaling gennemført',
'paymentFailed': 'Betaling mislykkedes', 'paymentFailed': 'Betaling mislykkedes',
'gotIt': 'Forstået', 'gotIt': 'Forstået',
'paymentFailedTryAgain': 'Betaling mislykkedes. Prøv igen.', 'paymentFailedTryAgain': 'Betaling mislykkedes. Prøv igen.',
'selectPaymentMethod': 'Vælg betalingsmetode', 'selectPaymentMethod': 'Vælg betalingsmetode',
'wechatPay': 'WeChat Pay', 'wechatPay': 'WeChat Pay',
'alipayPay': 'Alipay', 'alipayPay': 'Alipay',
'paypalPay': 'PayPal', 'paypalPay': 'PayPal',
'appleIap': 'Apple IAP', 'appleIap': 'Apple IAP',
'googleIap': 'Google IAP', 'googleIap': 'Google IAP',
'wechatOrderCreateFailed': 'Kunne ikke oprette WeChat-ordre', 'wechatOrderCreateFailed': 'Kunne ikke oprette WeChat-ordre',
'alipayOrderCreateFailed': 'Kunne ikke oprette Alipay-ordre', 'alipayOrderCreateFailed': 'Kunne ikke oprette Alipay-ordre',
'appleOrderCreateFailed': 'Kunne ikke oprette Apple-ordre', 'appleOrderCreateFailed': 'Kunne ikke oprette Apple-ordre',
'googleOrderCreateFailed': 'Kunne ikke oprette Google-ordre', 'googleOrderCreateFailed': 'Kunne ikke oprette Google-ordre',
'paypalOrderCreateFailed': 'Kunne ikke oprette PayPal-ordre', 'paypalOrderCreateFailed': 'Kunne ikke oprette PayPal-ordre',
'paymentException': 'Betalingsundtagelse', 'paymentException': 'Betalingsundtagelse',
'paymentLaunchFailed': 'Kunne ikke starte betaling', 'paymentLaunchFailed': 'Kunne ikke starte betaling',
'paymentExceptionWithError': 'Betalingsundtagelse: @error', 'paymentExceptionWithError': 'Betalingsundtagelse: @error',
'paymentProcessingCheckLater': 'Din ordre behandles. Tjek igen senere.', 'paymentProcessingCheckLater': 'Din ordre behandles. Tjek igen senere.',
'paymentResultQueryException': 'Kunne ikke hente betalingsresultat: @error', 'paymentResultQueryException': 'Kunne ikke hente betalingsresultat: @error',
'orderConfirmedQuotaRefreshed': 'Ordre bekræftet. Din kvote er blevet opdateret.', 'orderConfirmedQuotaRefreshed':
'paymentCompletedConfirming': 'Betaling gennemført. Bekræfter…', 'Ordre bekræftet. Din kvote er blevet opdateret.',
'paymentCancelled': 'Betaling annulleret', 'paymentCompletedConfirming': 'Betaling gennemført. Bekræfter…',
'paypalOpenedCompleteInBrowser': 'PayPal er åbnet. Gennemfør betalingen i din browser.', 'paymentCancelled': 'Betaling annulleret',
'paypalOpenFailed': 'Kan ikke åbne PayPal-betalingssiden', 'paypalOpenedCompleteInBrowser':
'paymentTestTitle': 'Betalingstest', 'PayPal er åbnet. Gennemfør betalingen i din browser.',
'paymentTestOrderInfo': 'Testordreinformation', 'paypalOpenFailed': 'Kan ikke åbne PayPal-betalingssiden',
'paymentTestProductId': 'Produkt-ID', 'paymentTestTitle': 'Betalingstest',
'paymentTestProductDescription': 'Produktbeskrivelse', 'paymentTestOrderInfo': 'Testordreinformation',
'paymentTestWechatDescription': 'WeChat Pay betalingstest', 'paymentTestProductId': 'Produkt-ID',
'paymentTestAlipayDescription': 'Alipay betalingstest', 'paymentTestProductDescription': 'Produktbeskrivelse',
'paymentTestAmount': 'Beløb', 'paymentTestWechatDescription': 'WeChat Pay betalingstest',
'paymentTestSelectAmount': 'Vælg testbeløb', 'paymentTestAlipayDescription': 'Alipay betalingstest',
'paying': 'Betaler...', 'paymentTestAmount': 'Beløb',
'wechatPayWithAmount': 'WeChat Pay ¥@amount', 'paymentTestSelectAmount': 'Vælg testbeløb',
'alipayPayWithAmount': 'Alipay ¥@amount', 'paying': 'Betaler...',
'paymentStatusTitle': 'Betalingsstatus', 'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'errorInfoWithMessage': 'Fejl: @message', 'alipayPayWithAmount': 'Alipay ¥@amount',
'retest': 'Test igen', 'paymentStatusTitle': 'Betalingsstatus',
'paymentTestInstructionsTitle': 'Instruktioner', 'errorInfoWithMessage': 'Fejl: @message',
'paymentTestInstructionsContent': '1. Vælg et testbeløb (anbefalet: ¥0,01)\n2. Klik på betalingsknappen for at starte\n3. Gennemfør betalingen i betalingsappen\n4. Gå tilbage for at tjekke resultatet', 'retest': 'Test igen',
'startingWechatPayment': 'Starter WeChat Pay...', 'paymentTestInstructionsTitle': 'Instruktioner',
'startingAlipayPayment': 'Starter Alipay...', 'paymentTestInstructionsContent':
'wechatPaymentSuccess': 'WeChat Pay gennemført!', '1. Vælg et testbeløb (anbefalet: ¥0,01)\n2. Klik på betalingsknappen for at starte\n3. Gennemfør betalingen i betalingsappen\n4. Gå tilbage for at tjekke resultatet',
'wechatPaymentFailed': 'WeChat Pay mislykkedes', 'startingWechatPayment': 'Starter WeChat Pay...',
'wechatPaymentLaunchFailed': 'Kunne ikke starte WeChat Pay', 'startingAlipayPayment': 'Starter Alipay...',
'cannotLaunchWechatPayment': 'Kan ikke starte WeChat Pay', 'wechatPaymentSuccess': 'WeChat Pay gennemført!',
'wechatPaymentException': 'WeChat Pay-undtagelse', 'wechatPaymentFailed': 'WeChat Pay mislykkedes',
'wechatPaymentTestCompleted': 'WeChat Pay-test gennemført', 'wechatPaymentLaunchFailed': 'Kunne ikke starte WeChat Pay',
'alipayPaymentSuccess': 'Alipay gennemført!', 'cannotLaunchWechatPayment': 'Kan ikke starte WeChat Pay',
'alipayPaymentFailed': 'Alipay mislykkedes', 'wechatPaymentException': 'WeChat Pay-undtagelse',
'alipayPaymentLaunchFailed': 'Kunne ikke starte Alipay', 'wechatPaymentTestCompleted': 'WeChat Pay-test gennemført',
'cannotLaunchAlipayPayment': 'Kan ikke starte Alipay', 'alipayPaymentSuccess': 'Alipay gennemført!',
'alipayPaymentException': 'Alipay-undtagelse', 'alipayPaymentFailed': 'Alipay mislykkedes',
'alipayPaymentLaunchFailed': 'Kunne ikke starte Alipay',
'cannotLaunchAlipayPayment': 'Kan ikke starte Alipay',
'alipayPaymentException': 'Alipay-undtagelse',
"insufficientIntegral": "Utilstrækkelige point", "insufficientIntegral": "Utilstrækkelige point",
"insufficientBalanceDesc": "insufficientBalanceDesc":
'Utilstrækkelig saldo, gå venligst til den tilsvarende genopfyldningsside for at genopfylde.', 'Utilstrækkelig saldo, gå venligst til den tilsvarende genopfyldningsside for at genopfylde.',
@ -515,19 +522,28 @@ const Map<String, String> daDK = {
'callRecording': 'Opkaldsoptagelse', 'callRecording': 'Opkaldsoptagelse',
'importAudio': 'Importer lyd', 'importAudio': 'Importer lyd',
'meetingRecordExitTitle': 'Afslut optagelse', // 退出录音 'meetingRecordExitTitle': 'Afslut optagelse', // 退出录音
'meetingRecordExitMessage': 'Vælg, hvad du vil gøre, før du forlader', // 请选择离开后的操作 'meetingRecordExitMessage':
'Vælg, hvad du vil gøre, før du forlader', // 请选择离开后的操作
'meetingRecordEndAndSave': 'Afslut og gem', // 结束录音并保存 'meetingRecordEndAndSave': 'Afslut og gem', // 结束录音并保存
'meetingRecordEndWithoutSave': 'Afslut uden at gemme', // 结束录音不保存 'meetingRecordEndWithoutSave': 'Afslut uden at gemme', // 结束录音不保存
'meetingRecordContinueInBackground': 'Fortsæt optagelsen i baggrunden', // 后台继续录音 'meetingRecordContinueInBackground':
'meetingRecordStopTimeout': 'Tidsgrænsen for at stoppe optagelsen udløb. Prøv igen.', // 结束录音超时,请重试 'Fortsæt optagelsen i baggrunden', // 后台继续录音
'meetingRecordStopFailed': 'Kunne ikke stoppe optagelsen. Prøv igen.', // 结束录音失败,请重试 'meetingRecordStopTimeout':
'meetingRecordSaveFailed': 'Kunne ikke gemme optagelsen. Prøv igen.', // 保存录音失败,请重试 'Tidsgrænsen for at stoppe optagelsen udløb. Prøv igen.', // 结束录音超时,请重试
'meetingRecordStopFailed':
'Kunne ikke stoppe optagelsen. Prøv igen.', // 结束录音失败,请重试
'meetingRecordSaveFailed':
'Kunne ikke gemme optagelsen. Prøv igen.', // 保存录音失败,请重试
'meetingRecordRecordingNotificationTitle': 'Optagelse i gang', // 录音进行中 'meetingRecordRecordingNotificationTitle': 'Optagelse i gang', // 录音进行中
'meetingRecordRecordingNotificationBody': 'Optager i baggrunden. Tryk for at vende tilbage til appen.', // 正在后台录音,点击返回应用 'meetingRecordRecordingNotificationBody':
'Optager i baggrunden. Tryk for at vende tilbage til appen.', // 正在后台录音,点击返回应用
'overlayPermissionTitle': 'Tegn over andre apps', // 悬浮窗权限 'overlayPermissionTitle': 'Tegn over andre apps', // 悬浮窗权限
'overlayPermissionTranslationDesc': 'For at vise oversættelsesresultater under opkald eller lyd-/videooversættelse har vi brug for tilladelsen til at tegne over andre apps. Det lader dig se oversættelser i realtid, mens du bruger andre apps.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。 'overlayPermissionTranslationDesc':
'overlayPermissionRecordingDesc': 'For at vise den flydende optagelseslinje (timer/pause/genoptag) under optagelse har vi brug for tilladelsen til at tegne over andre apps.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 'For at vise oversættelsesresultater under opkald eller lyd-/videooversættelse har vi brug for tilladelsen til at tegne over andre apps. Det lader dig se oversættelser i realtid, mens du bruger andre apps.', // 为了在通话或音视频翻译时显示翻译结果,需要悬浮窗权限。这样您就可以在使用其他应用时看到实时翻译。
'overlayPermissionOpenSettingsFailed': 'Kan ikke åbne systemindstillinger automatisk. Åbn venligst Indstillinger, og aktivér tilladelsen til at tegne over andre apps manuelt.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'overlayPermissionRecordingDesc':
'For at vise den flydende optagelseslinje (timer/pause/genoptag) under optagelse har vi brug for tilladelsen til at tegne over andre apps.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。
'overlayPermissionOpenSettingsFailed':
'Kan ikke åbne systemindstillinger automatisk. Åbn venligst Indstillinger, og aktivér tilladelsen til at tegne over andre apps manuelt.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。
'transcribing': 'Transskriberer...', 'transcribing': 'Transskriberer...',
'summarizing': 'Sammenfatter...', 'summarizing': 'Sammenfatter...',
'analyzing': 'Analyserer...', 'analyzing': 'Analyserer...',
@ -552,21 +568,22 @@ const Map<String, String> daDK = {
'selectSummaryTemplate': 'Vælg sammendragsskabelon', 'selectSummaryTemplate': 'Vælg sammendragsskabelon',
'useThisTemplate': 'Brug denne skabelon', 'useThisTemplate': 'Brug denne skabelon',
'lastUsed': 'Sidst brugt', 'lastUsed': 'Sidst brugt',
'create': 'Opret', 'create': 'Opret',
'templateDetails': 'Skabelondetaljer', 'templateDetails': 'Skabelondetaljer',
'tag': 'Tag', 'tag': 'Tag',
'description': 'Beskrivelse', 'description': 'Beskrivelse',
'template': 'Skabelon', 'template': 'Skabelon',
'deleteTemplate': 'Slet skabelon', 'deleteTemplate': 'Slet skabelon',
'deleteTemplateConfirm': 'Er du sikker på, at du vil slette denne skabelon?', 'deleteTemplateConfirm': 'Er du sikker på, at du vil slette denne skabelon?',
'editTemplate': 'Rediger skabelon', 'editTemplate': 'Rediger skabelon',
'createTemplate': 'Opret skabelon', 'createTemplate': 'Opret skabelon',
'name': 'Navn', 'name': 'Navn',
'templateContentHint': 'Indtast venligst skabelonindhold! Tip: Klik på AI-knappen ovenfor for hurtigt at generere skabelonindhold baseret på det navn og den beskrivelse, du har indtastet', 'templateContentHint':
'inputNameHint': 'Indtast venligst navn', 'Indtast venligst skabelonindhold! Tip: Klik på AI-knappen ovenfor for hurtigt at generere skabelonindhold baseret på det navn og den beskrivelse, du har indtastet',
'inputDescHint': 'Indtast venligst beskrivelse', 'inputNameHint': 'Indtast venligst navn',
'custom': 'Tilpasset', 'inputDescHint': 'Indtast venligst beskrivelse',
'pleaseEnter': 'Indtast venligst', 'custom': 'Tilpasset',
'pleaseEnter': 'Indtast venligst',
'viewAll': 'Se alle', 'viewAll': 'Se alle',
'recordingLanguage': 'Optagelsessprog', 'recordingLanguage': 'Optagelsessprog',
'chineseSimplified': 'Kinesisk Mandarin (Forenklet)', 'chineseSimplified': 'Kinesisk Mandarin (Forenklet)',
@ -590,7 +607,7 @@ const Map<String, String> daDK = {
'Filbehandling mislykkedes: {filePath}, fejl: {error}', 'Filbehandling mislykkedes: {filePath}, fejl: {error}',
// Meeting模块 - 思维导图 // Meeting模块 - 思维导图
'saveMindMap': 'Gem tankekort', 'saveMindMap': 'Gem tankekort',
'shareMindMap': 'Del mindmap', 'shareMindMap': 'Del mindmap',
'shareSuccess': 'Deling succes', 'shareSuccess': 'Deling succes',
@ -612,7 +629,7 @@ const Map<String, String> daDK = {
'exportSummary': 'Eksportér sammendrag', 'exportSummary': 'Eksportér sammendrag',
'exportAs': 'Eksportér som', 'exportAs': 'Eksportér som',
'exportingPDF': 'Eksporterer PDF...', 'exportingPDF': 'Eksporterer PDF...',
'export': 'Eksportér', 'export': 'Eksportér',
// Meeting模块 - 发言者 // Meeting模块 - 发言者
'applyToAllParagraphs': 'Anvend på alle afsnit for denne taler', 'applyToAllParagraphs': 'Anvend på alle afsnit for denne taler',
@ -723,18 +740,18 @@ const Map<String, String> daDK = {
// Meeting模块 - 错误提示 // Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Ukendt sprog', 'meetingUnknownLanguage': 'Ukendt sprog',
'analysisFailed': 'Analyse mislykkedes, prøv igen senere', 'analysisFailed': 'Analyse mislykkedes, prøv igen senere',
'transcriptionFailed': 'Transskription mislykkedes, prøv igen senere', 'transcriptionFailed': 'Transskription mislykkedes, prøv igen senere',
'summaryFailed': 'Sammenfatning mislykkedes, prøv igen senere', 'summaryFailed': 'Sammenfatning mislykkedes, prøv igen senere',
'summaryFailedShort': 'Sammenfatning mislykkedes', 'summaryFailedShort': 'Sammenfatning mislykkedes',
'transcriptionFailedShort': 'Transskription mislykkedes', 'transcriptionFailedShort': 'Transskription mislykkedes',
// Meeting模块 - 播放器 // Meeting模块 - 播放器
'playerNotReady': 'Lydafspilleren er ikke klar, vent venligst', 'playerNotReady': 'Lydafspilleren er ikke klar, vent venligst',
'playFailed': 'Afspilning mislykkedes', 'playFailed': 'Afspilning mislykkedes',
'audioFileNotFound': 'Lydfil ikke fundet', 'audioFileNotFound': 'Lydfil ikke fundet',
'fetchingAudio': 'Henter lyd fra skyen...', 'fetchingAudio': 'Henter lyd fra skyen...',
'playerLoadFailed': 'Lydafspilleren kunne ikke indlæses', 'playerLoadFailed': 'Lydafspilleren kunne ikke indlæses',
// 设置页 // 设置页
"systemSettings": "Systemindstillinger", "systemSettings": "Systemindstillinger",
@ -743,8 +760,8 @@ const Map<String, String> daDK = {
"translationRecharge": "Opladning af oversetning", "translationRecharge": "Opladning af oversetning",
"meetingAssistantRecharge": "Opladning af mødeassistent", "meetingAssistantRecharge": "Opladning af mødeassistent",
"cloudSync": "Opladning af cloud-synkronisering", "cloudSync": "Opladning af cloud-synkronisering",
"memberService": "Member Service", "memberService": "Medlemsservice",
"bindRewardTitle": "Rewards", "bindRewardTitle": "Belønninger",
"bindRewardSimpleDesc": "bindRewardSimpleDesc":
"Belønning for første enhedsbinding er udstedt. Tryk OK for at lukke.", "Belønning for første enhedsbinding er udstedt. Tryk OK for at lukke.",
"joinDevice": "Tilsluttet enhed:", "joinDevice": "Tilsluttet enhed:",
@ -840,20 +857,21 @@ const Map<String, String> daDK = {
"loadFailedClickRetry": "Indlæsning mislykkedes, klik for at prøve igen", "loadFailedClickRetry": "Indlæsning mislykkedes, klik for at prøve igen",
"swipeUpForMore": "Stryg op for mere", "swipeUpForMore": "Stryg op for mere",
"callingTool": "Jeg hjælper dig, vent venligst!", // 正在帮您,请稍等! "callingTool": "Jeg hjælper dig, vent venligst!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断 "voice_interrupt": "Afbryd", // 语音打断
'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.', '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.',
// Agent模块 - 预设提示词 // Agent模块 - 预设提示词
"presetMusic": "Play some music", // 来点音乐 "presetMusic": "Spil musik", // 来点音乐
"presetNavigation": "Navigation to", // 导航 "presetNavigation": "Naviger til", // 导航
"presetWeather": "Today's weather", // 今日天气 "presetWeather": "Vejret i dag", // 今日天气
"presetNews": "Today's news", // 今日新闻 "presetNews": "Nyheder i dag", // 今日新闻
"presetFood": "Nearby food", // 美食 "presetFood": "Mad i nærheden", // 美食
"playSomeMusic": "Play some popular music", // 播放一些流行音乐 "playSomeMusic": "Spil noget populær musik", // 播放一些流行音乐
"navigationTo": "Hjælp mig venligst med at navigere til", // 导航到 "navigationTo": "Hjælp mig venligst med at navigere til", // 导航到
"todayWeather": "How's the weather today?", // 今日天气 "todayWeather": "Hvordan er vejret i dag?", // 今日天气
"todayNews": "What's the news today?", // 今日新闻 "todayNews": "Hvad er nyhederne i dag?", // 今日新闻
"nearbyFood": "What delicious food is nearby?", // 美食 "nearbyFood": "Hvilken lækker mad er der i nærheden?", // 美食
// Agent模块 - 欢迎消息与权限 // Agent模块 - 欢迎消息与权限
'welcomeMessage': 'Hej! Jeg er **Lily**, jeg kan hjælpe dig med:\n\n' 'welcomeMessage': 'Hej! Jeg er **Lily**, jeg kan hjælpe dig med:\n\n'
@ -937,7 +955,8 @@ const Map<String, String> daDK = {
'builtInNavigation': 'Indbygget navigation', 'builtInNavigation': 'Indbygget navigation',
'useBuiltInNavigation': 'Navigér med indbygget kort', 'useBuiltInNavigation': 'Navigér med indbygget kort',
'navigationStartFailed': 'Kunne ikke starte navigation', 'navigationStartFailed': 'Kunne ikke starte navigation',
'cannotPlayMusicListRetryLater': 'Kan ikke afspille musiklisten, prøv igen senere', 'cannotPlayMusicListRetryLater':
'Kan ikke afspille musiklisten, prøv igen senere',
'cannotPlaySong': 'Kan ikke afspille sangen', 'cannotPlaySong': 'Kan ikke afspille sangen',
'openMapError': 'Fejl ved åbning af kort', 'openMapError': 'Fejl ved åbning af kort',
'pleaseInstallAmapApp': 'Installér Amap-appen først', 'pleaseInstallAmapApp': 'Installér Amap-appen først',
@ -1023,8 +1042,10 @@ const Map<String, String> daDK = {
'disableFloatingWindow': 'Deaktivér flydende vindue', 'disableFloatingWindow': 'Deaktivér flydende vindue',
'enableFloatingWindow': 'Aktivér flydende vindue', 'enableFloatingWindow': 'Aktivér flydende vindue',
'permissionTip': 'Tilladelsestip', 'permissionTip': 'Tilladelsestip',
'micPermissionRequiredForRecording': 'Mikrofontilladelse kræves til optagelse', 'micPermissionRequiredForRecording':
'deleteTranslationRecordError': 'Fejl ved sletning af oversættelsespost: @error', 'Mikrofontilladelse kræves til optagelse',
'deleteTranslationRecordError':
'Fejl ved sletning af oversættelsespost: @error',
"translationFailed": "Oversættelse mislykkedes", "translationFailed": "Oversættelse mislykkedes",
"translating": "Oversætter", "translating": "Oversætter",
"translate": "Oversæt", "translate": "Oversæt",
@ -1300,17 +1321,18 @@ const Map<String, String> daDK = {
'permissionUtilConfirm': 'OK', 'permissionUtilConfirm': 'OK',
// 原生前台服务通知(Android) // 原生前台服务通知(Android)
'native.notification.appName': 'VOITRANS', 'native.notification.appName': 'VOITRANS',
'native.notification.navigation.title': 'Navigation i gang', 'native.notification.navigation.title': 'Navigation i gang',
'native.notification.navigation.keepRunning': 'Navigerer, hold appen kørende', 'native.notification.navigation.keepRunning': 'Navigerer, hold appen kørende',
'native.notification.bleAgent.running': 'Stemmeassistenten kører', 'native.notification.bleAgent.running': 'Stemmeassistenten kører',
'native.notification.audioRecording.recording': 'Optager lyd, tryk for at vende tilbage til appen', 'native.notification.audioRecording.recording':
'native.notification.music.waiting': 'Venter på afspilning', 'Optager lyd, tryk for at vende tilbage til appen',
'native.notification.music.previous': 'Forrige', 'native.notification.music.waiting': 'Venter på afspilning',
'native.notification.music.next': 'Næste', 'native.notification.music.previous': 'Forrige',
'native.notification.music.play': 'Afspil', 'native.notification.music.next': 'Næste',
'native.notification.music.pause': 'Pause', 'native.notification.music.play': 'Afspil',
'native.notification.qqMusic.playing': 'Afspiller musik', 'native.notification.music.pause': 'Pause',
'native.notification.qqMusic.playing': 'Afspiller musik',
// 版本更新 // 版本更新
'newVersionFound': 'Ny version fundet', // 版本更新对话框标题 'newVersionFound': 'Ny version fundet', // 版本更新对话框标题
@ -1398,14 +1420,14 @@ const Map<String, String> daDK = {
'iKnow': 'Jeg ved det', // 我知道了 'iKnow': 'Jeg ved det', // 我知道了
// 配对模块 - 绑定奖励 // 配对模块 - 绑定奖励
"firstBindRewardTitle": "Welcome Reward", "firstBindRewardTitle": "Velkomstbelønning",
"firstBindRewardDesc": "You've received binding rewards.", "firstBindRewardDesc": "Du har modtaget din belønning for binding.",
"vipLevelLabel": "VIP Level:", "vipLevelLabel": "VIP-niveau:",
"expiryLabel": "Expiration:", "expiryLabel": "Udløbsdato:",
"notActivated": "Not activated", "notActivated": "Ikke aktiveret",
"aiChatCreditsLabel": "AI Chat Credits:", "aiChatCreditsLabel": "Kreditter til AI-chat:",
"translationCreditsLabel": "Translation Credits:", "translationCreditsLabel": "Oversættelseskreditter:",
"meetingCreditsLabel": "Meeting Credits:", "meetingCreditsLabel": "Mødekreditter:",
"ok": "OK", "ok": "OK",
// 用户反馈模块 // 用户反馈模块
@ -1455,7 +1477,8 @@ const Map<String, String> daDK = {
'otaConfirmUpdateNow': 'Opdatér nu?', 'otaConfirmUpdateNow': 'Opdatér nu?',
'otaUpdate': 'Opdatér', 'otaUpdate': 'Opdatér',
'otaUpgradeSuccess': 'Opgradering gennemført', 'otaUpgradeSuccess': 'Opgradering gennemført',
'otaUpgradeCompleteRepair': 'Firmware-opgradering fuldført!\n\nEnheden skal parres igen. Gå til parringssiden?', 'otaUpgradeCompleteRepair':
'Firmware-opgradering fuldført!\n\nEnheden skal parres igen. Gå til parringssiden?',
'otaPairLater': 'Par senere', 'otaPairLater': 'Par senere',
'otaPairNow': 'Par nu', 'otaPairNow': 'Par nu',
'okConfirm': 'OK', 'okConfirm': 'OK',
@ -1463,24 +1486,32 @@ const Map<String, String> daDK = {
// OTA升级模块 - 设备检查 // OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'Fejl ved BLE-kontrol: @error', 'otaBleCheckErrorWithError': 'Fejl ved BLE-kontrol: @error',
'otaBleNotConnected': 'BLE-enhed ikke forbundet', 'otaBleNotConnected': 'BLE-enhed ikke forbundet',
'otaBleNeedConnection': 'Firmware-opgradering kræver BLE-forbindelse\nSørg for at enheden er forbundet og prøv igen', 'otaBleNeedConnection':
'Firmware-opgradering kræver BLE-forbindelse\nSørg for at enheden er forbundet og prøv igen',
'otaDeviceInfoUnavailableTitle': 'Enhedsinfo utilgængelig', 'otaDeviceInfoUnavailableTitle': 'Enhedsinfo utilgængelig',
'otaCannotGetDeviceInfo': 'Kan ikke hente enhedsinfo\nTilslut enheden igen eller prøv senere', 'otaCannotGetDeviceInfo':
'Kan ikke hente enhedsinfo\nTilslut enheden igen eller prøv senere',
'otaBleCheckFailed': 'BLE-kontrol mislykkedes', 'otaBleCheckFailed': 'BLE-kontrol mislykkedes',
'otaCannotGetDeviceInfoCheckConnection': 'Kan ikke hente enhedsinfo, kontrollér forbindelsen', 'otaCannotGetDeviceInfoCheckConnection':
'otaCannotGetProductInfoWithName': 'Kan ikke hente produktinfo, enhedsnavn: @deviceName', 'Kan ikke hente enhedsinfo, kontrollér forbindelsen',
'otaCannotGetProductInfoWithName':
'Kan ikke hente produktinfo, enhedsnavn: @deviceName',
'otaCannotGetBatteryInfo': 'Kan ikke hente batteriinfo', 'otaCannotGetBatteryInfo': 'Kan ikke hente batteriinfo',
'otaLowBattery': 'Lavt batteri', 'otaLowBattery': 'Lavt batteri',
'otaSingleBatteryLow': 'Batteriniveau for lavt til opgradering\nKrav: batteri over 20%\nNuværende: @ear @battery%\nOplad og prøv igen', 'otaSingleBatteryLow':
'otaDoubleBatteryLow': 'Batteriniveau for lavt til opgradering\nKrav: begge ørepropper over 20%\nNuværende: Venstre @left%, Højre @right%\nOplad og prøv igen', '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', 'otaBatteryCheckFailed': 'Batterikontrol mislykkedes',
// OTA升级模块 - 升级状态 // OTA升级模块 - 升级状态
'otaDefaultUpdateDesc': 'Opdateringen indeholder ydelsesforbedringer og fejlrettelser.', 'otaDefaultUpdateDesc':
'Opdateringen indeholder ydelsesforbedringer og fejlrettelser.',
'otaGetLatestVersionFailed': 'Kunne ikke hente seneste version', 'otaGetLatestVersionFailed': 'Kunne ikke hente seneste version',
'otaGetVersionInfoFailed': 'Kunne ikke hente versionsinfo', 'otaGetVersionInfoFailed': 'Kunne ikke hente versionsinfo',
'otaCheckingDeviceStatus': 'Kontrollerer enhedsstatus...', 'otaCheckingDeviceStatus': 'Kontrollerer enhedsstatus...',
'otaDownloadFailedCheckNetwork': 'Download mislykkedes, kontrollér netværksforbindelsen', 'otaDownloadFailedCheckNetwork':
'Download mislykkedes, kontrollér netværksforbindelsen',
'otaDownloadFailed': 'Download mislykkedes', 'otaDownloadFailed': 'Download mislykkedes',
'otaPreparingConnection': 'Forbereder enhedsforbindelse...', 'otaPreparingConnection': 'Forbereder enhedsforbindelse...',
'otaConnectingDevice': 'Forbinder til enhed...', 'otaConnectingDevice': 'Forbinder til enhed...',
@ -1489,7 +1520,8 @@ const Map<String, String> daDK = {
'otaUpgradeSuccessComplete': 'Opgradering gennemført', 'otaUpgradeSuccessComplete': 'Opgradering gennemført',
'otaUpgradeFailedWithCode': 'Opgradering mislykkedes, fejlkode: @code', 'otaUpgradeFailedWithCode': 'Opgradering mislykkedes, fejlkode: @code',
'otaUpgradeFailedTitle': 'Opgradering mislykkedes', 'otaUpgradeFailedTitle': 'Opgradering mislykkedes',
'otaUpgradeFailedDesc': 'Kontrollér forbindelse eller opdateringspakke, fejlkode: @code', 'otaUpgradeFailedDesc':
'Kontrollér forbindelse eller opdateringspakke, fejlkode: @code',
'otaDeviceDisconnected': 'Enhed frakoblet', 'otaDeviceDisconnected': 'Enhed frakoblet',
'otaDeviceConnected': 'Enhed forbundet', 'otaDeviceConnected': 'Enhed forbundet',

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

@ -1,3 +1,4 @@
//德语-德语
const Map<String, String> deDE = { const Map<String, String> deDE = {
// 通用 // 通用
'continue': 'Fortfahren', 'continue': 'Fortfahren',
@ -775,8 +776,8 @@ const Map<String, String> deDE = {
"translationRecharge": "Übersetzungs-Recharge", "translationRecharge": "Übersetzungs-Recharge",
"meetingAssistantRecharge": "Meeting-Assistent-Recharge", "meetingAssistantRecharge": "Meeting-Assistent-Recharge",
"cloudSync": "Cloud-Synchronisierung-Recharge", "cloudSync": "Cloud-Synchronisierung-Recharge",
"memberService": "Member Service", "memberService": "Mitgliederservice",
"bindRewardTitle": "Rewards", "bindRewardTitle": "Belohnungen",
"bindRewardSimpleDesc": "bindRewardSimpleDesc":
"Die Prämie für die erste Gerätebindung wurde ausgegeben. Tippen Sie auf OK, um zu schließen.", "Die Prämie für die erste Gerätebindung wurde ausgegeben. Tippen Sie auf OK, um zu schließen.",
"joinDevice": "Verbundenes Gerät:", "joinDevice": "Verbundenes Gerät:",

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

@ -1,3 +1,4 @@
//希腊-希腊语
const Map<String, String> elGR = { const Map<String, String> elGR = {
// 通用 // 通用
'continue': 'Συνέχεια', 'continue': 'Συνέχεια',
@ -937,9 +938,11 @@ const Map<String, String> elGR = {
// Agent模块 - 工具调用 // Agent模块 - 工具调用
'toolCall': 'Κλήση εργαλείου', 'toolCall': 'Κλήση εργαλείου',
'noResult': 'Κανένα αποτέλεσμα', 'noResult': 'Κανένα αποτέλεσμα',
'noToolCallContentToCopy': 'Δεν υπάρχει περιεχόμενο κλήσης εργαλείου για αντιγραφή', 'noToolCallContentToCopy':
'Δεν υπάρχει περιεχόμενο κλήσης εργαλείου για αντιγραφή',
'toolCallDetails': 'Λεπτομέρειες κλήσης εργαλείου:', 'toolCallDetails': 'Λεπτομέρειες κλήσης εργαλείου:',
'toolCallContentCopied': 'Το περιεχόμενο κλήσης εργαλείου αντιγράφηκε στο πρόχειρο', 'toolCallContentCopied':
'Το περιεχόμενο κλήσης εργαλείου αντιγράφηκε στο πρόχειρο',
// Agent模块 - 音乐卡片 // Agent模块 - 音乐卡片
'recommendedMusic': 'Ορίστε μερικές προτεινόμενες μουσικές:', 'recommendedMusic': 'Ορίστε μερικές προτεινόμενες μουσικές:',
@ -1063,7 +1066,8 @@ const Map<String, String> elGR = {
'permissionTip': 'Υπόδειξη δικαιώματος', 'permissionTip': 'Υπόδειξη δικαιώματος',
'micPermissionRequiredForRecording': 'micPermissionRequiredForRecording':
'Απαιτείται δικαίωμα μικροφώνου για εγγραφή', 'Απαιτείται δικαίωμα μικροφώνου για εγγραφή',
'deleteTranslationRecordError': 'Σφάλμα κατά τη διαγραφή εγγραφής μετάφρασης: @error', 'deleteTranslationRecordError':
'Σφάλμα κατά τη διαγραφή εγγραφής μετάφρασης: @error',
"translationFailed": "Αποτυχία μετάφρασης", "translationFailed": "Αποτυχία μετάφρασης",
"translating": "Μετάφραση σε εξέλιξη", "translating": "Μετάφραση σε εξέλιξη",
"translate": "Μετάφραση", "translate": "Μετάφραση",
@ -1118,13 +1122,15 @@ const Map<String, String> elGR = {
"imageTooLarge": "Το μέγεθος εικόνας υπερβαίνει το όριο των 4MB", "imageTooLarge": "Το μέγεθος εικόνας υπερβαίνει το όριο των 4MB",
"imageTooLargeHint": "imageTooLargeHint":
"Το μέγεθος εικόνας υπερβαίνει τα 4MB. Μειώστε την ποιότητα ή τις διαστάσεις και δοκιμάστε ξανά", "Το μέγεθος εικόνας υπερβαίνει τα 4MB. Μειώστε την ποιότητα ή τις διαστάσεις και δοκιμάστε ξανά",
"emptyTranslationResult": "Το API μετάφρασης εικόνας επέστρεψε κενό αποτέλεσμα", "emptyTranslationResult":
"Το API μετάφρασης εικόνας επέστρεψε κενό αποτέλεσμα",
"imageTranslationFailedTryLater": "imageTranslationFailedTryLater":
"Αποτυχία μετάφρασης εικόνας. Πρόβλημα δικτύου ή όριο αιτημάτων. Δοκιμάστε αργότερα", "Αποτυχία μετάφρασης εικόνας. Πρόβλημα δικτύου ή όριο αιτημάτων. Δοκιμάστε αργότερα",
"imageTranslationApiException": "imageTranslationApiException":
"Εξαίρεση API μετάφρασης εικόνας. Ελέγξτε το δίκτυο και δοκιμάστε ξανά", "Εξαίρεση API μετάφρασης εικόνας. Ελέγξτε το δίκτυο και δοκιμάστε ξανά",
"permissionRequired": "Απαιτείται δικαίωμα", "permissionRequired": "Απαιτείται δικαίωμα",
"cameraPermissionRequired": "Απαιτείται δικαίωμα κάμερας για λήψη φωτογραφιών", "cameraPermissionRequired":
"Απαιτείται δικαίωμα κάμερας για λήψη φωτογραφιών",
"photoAlbumPermissionRequired": "photoAlbumPermissionRequired":
"Απαιτείται δικαίωμα άλμπουμ φωτογραφιών για επιλογή εικόνων", "Απαιτείται δικαίωμα άλμπουμ φωτογραφιών για επιλογή εικόνων",
"translationDetails": "Λεπτομέρειες μετάφρασης", "translationDetails": "Λεπτομέρειες μετάφρασης",
@ -1186,7 +1192,8 @@ const Map<String, String> elGR = {
'deleteAccountTips': 'deleteAccountTips':
'Είστε βέβαιοι ότι θέλετε να διαγράψετε μόνιμα τον λογαριασμό σας; Αυτή η ενέργεια δεν μπορεί να αναιρεθεί', 'Είστε βέβαιοι ότι θέλετε να διαγράψετε μόνιμα τον λογαριασμό σας; Αυτή η ενέργεια δεν μπορεί να αναιρεθεί',
'clean': 'Εκκαθάριση προσωρινής μνήμης', 'clean': 'Εκκαθάριση προσωρινής μνήμης',
'cleanTips': 'Είστε βέβαιοι ότι θέλετε να εκκαθαρίσετε την προσωπική προσωρινή μνήμη;', 'cleanTips':
'Είστε βέβαιοι ότι θέλετε να εκκαθαρίσετε την προσωπική προσωρινή μνήμη;',
'networkConnectionFailed': 'networkConnectionFailed':
'Αποτυχία σύνδεσης δικτύου, ελέγξτε τις ρυθμίσεις δικτύου και δοκιμάστε ξανά', 'Αποτυχία σύνδεσης δικτύου, ελέγξτε τις ρυθμίσεις δικτύου και δοκιμάστε ξανά',
'serverTemporarilyUnavailable': 'serverTemporarilyUnavailable':
@ -1281,20 +1288,24 @@ const Map<String, String> elGR = {
'Η διαχείριση γεγονότων ημερολογίου χρειάζεται πλήρες δικαίωμα ημερολογίου', 'Η διαχείριση γεγονότων ημερολογίου χρειάζεται πλήρες δικαίωμα ημερολογίου',
'locationPermissionDetailDesc': 'locationPermissionDetailDesc':
'Η λήψη πληροφοριών τοποθεσίας χρειάζεται δικαίωμα τοποθεσίας', 'Η λήψη πληροφοριών τοποθεσίας χρειάζεται δικαίωμα τοποθεσίας',
'contactsPermissionDesc': 'Χρησιμοποιείται για πρόσβαση σε πληροφορίες επαφών', 'contactsPermissionDesc':
'Χρησιμοποιείται για πρόσβαση σε πληροφορίες επαφών',
'contactsPermissionDetailDesc': 'contactsPermissionDetailDesc':
'Η λειτουργία τηλεφωνικών κλήσεων και SMS χρειάζεται δικαίωμα επαφών για επιλογή επαφών', 'Η λειτουργία τηλεφωνικών κλήσεων και SMS χρειάζεται δικαίωμα επαφών για επιλογή επαφών',
'bluetoothPermissionDesc': 'bluetoothPermissionDesc':
'Χρησιμοποιείται για σύνδεση και διαχείριση συσκευών Bluetooth', 'Χρησιμοποιείται για σύνδεση και διαχείριση συσκευών Bluetooth',
'bluetoothPermissionDetailDesc': 'bluetoothPermissionDetailDesc':
'Η σύνδεση με ακουστικά Bluetooth και άλλες συσκευές απαιτεί δικαίωμα Bluetooth', 'Η σύνδεση με ακουστικά Bluetooth και άλλες συσκευές απαιτεί δικαίωμα Bluetooth',
'bluetoothScanPermissionDesc': 'Χρησιμοποιείται για σάρωση κοντινών συσκευών Bluetooth', 'bluetoothScanPermissionDesc':
'Χρησιμοποιείται για σάρωση κοντινών συσκευών Bluetooth',
'bluetoothScanPermissionDetailDesc': 'bluetoothScanPermissionDetailDesc':
'Η σάρωση κοντινών συσκευών Bluetooth απαιτεί δικαίωμα σάρωσης Bluetooth', 'Η σάρωση κοντινών συσκευών Bluetooth απαιτεί δικαίωμα σάρωσης Bluetooth',
'bluetoothConnectPermissionDesc': 'Χρησιμοποιείται για σύνδεση σε συσκευές Bluetooth', 'bluetoothConnectPermissionDesc':
'Χρησιμοποιείται για σύνδεση σε συσκευές Bluetooth',
'bluetoothConnectPermissionDetailDesc': 'bluetoothConnectPermissionDetailDesc':
'Η σύνδεση σε συσκευές Bluetooth απαιτεί δικαίωμα σύνδεσης Bluetooth', 'Η σύνδεση σε συσκευές Bluetooth απαιτεί δικαίωμα σύνδεσης Bluetooth',
'notificationPermissionDesc': 'Χρησιμοποιείται για αποστολή μηνυμάτων ειδοποίησης', 'notificationPermissionDesc':
'Χρησιμοποιείται για αποστολή μηνυμάτων ειδοποίησης',
'notificationPermissionDetailDesc': 'notificationPermissionDetailDesc':
'Η εφαρμογή χρειάζεται δικαίωμα ειδοποιήσεων για να σας στέλνει σημαντικές ειδοποιήσεις και μηνύματα', 'Η εφαρμογή χρειάζεται δικαίωμα ειδοποιήσεων για να σας στέλνει σημαντικές ειδοποιήσεις και μηνύματα',
'appNeedsPermissionForFullFunction': 'appNeedsPermissionForFullFunction':
@ -1429,7 +1440,8 @@ const Map<String, String> elGR = {
'bleConnectionFailed': 'Αποτυχία σύνδεσης BLE', 'bleConnectionFailed': 'Αποτυχία σύνδεσης BLE',
'deviceAuthorizationFailedCheckCode': 'deviceAuthorizationFailedCheckCode':
'Αποτυχία εξουσιοδότησης συσκευής, ελέγξτε τον κωδικό εξουσιοδότησης', 'Αποτυχία εξουσιοδότησης συσκευής, ελέγξτε τον κωδικό εξουσιοδότησης',
'bluetoothGuideTitle': 'Απαιτείται χειροκίνητη ενεργοποίηση Bluetooth', // 需要手动开启蓝牙 'bluetoothGuideTitle':
'Απαιτείται χειροκίνητη ενεργοποίηση Bluetooth', // 需要手动开启蓝牙
'bluetoothGuideSteps': 'Ακολουθήστε τα παρακάτω βήματα:', // 请按照以下步骤操作: 'bluetoothGuideSteps': 'Ακολουθήστε τα παρακάτω βήματα:', // 请按照以下步骤操作:
'bluetoothGuideStep1': 'bluetoothGuideStep1':
'Ενεργοποίηση Bluetooth: Ρυθμίσεις → Bluetooth → Ενεργοποίηση', // 开启蓝牙:设置 → 蓝牙 → 开启 'Ενεργοποίηση Bluetooth: Ρυθμίσεις → Bluetooth → Ενεργοποίηση', // 开启蓝牙:设置 → 蓝牙 → 开启
@ -1478,7 +1490,8 @@ const Map<String, String> elGR = {
"connectionFailed": "Αποτυχία σύνδεσης", "connectionFailed": "Αποτυχία σύνδεσης",
"retryConnection": "Επανάληψη σύνδεσης", "retryConnection": "Επανάληψη σύνδεσης",
"ota_updateNow": "Ενημέρωση τώρα", "ota_updateNow": "Ενημέρωση τώρα",
"otaVersionInfoFailed": "Αποτυχία λήψης πληροφοριών έκδοσης. Δοκιμάστε ξανά αργότερα.", "otaVersionInfoFailed":
"Αποτυχία λήψης πληροφοριών έκδοσης. Δοκιμάστε ξανά αργότερα.",
"otaDeviceInfoUnavailable": "otaDeviceInfoUnavailable":
"Αδυναμία λήψης πληροφοριών συσκευής. Ελέγξτε τη σύνδεση και δοκιμάστε ξανά.", "Αδυναμία λήψης πληροφοριών συσκευής. Ελέγξτε τη σύνδεση και δοκιμάστε ξανά.",
"otaProductInfoUnavailable": "otaProductInfoUnavailable":
@ -1531,8 +1544,7 @@ const Map<String, String> elGR = {
'otaGetLatestVersionFailed': 'Αποτυχία λήψης πληροφοριών τελευταίας έκδοσης', 'otaGetLatestVersionFailed': 'Αποτυχία λήψης πληροφοριών τελευταίας έκδοσης',
'otaGetVersionInfoFailed': 'Αποτυχία λήψης πληροφοριών έκδοσης', 'otaGetVersionInfoFailed': 'Αποτυχία λήψης πληροφοριών έκδοσης',
'otaCheckingDeviceStatus': 'Έλεγχος κατάστασης συσκευής...', 'otaCheckingDeviceStatus': 'Έλεγχος κατάστασης συσκευής...',
'otaDownloadFailedCheckNetwork': 'otaDownloadFailedCheckNetwork': 'Αποτυχία λήψης, ελέγξτε τη σύνδεση δικτύου',
'Αποτυχία λήψης, ελέγξτε τη σύνδεση δικτύου',
'otaDownloadFailed': 'Αποτυχία λήψης', 'otaDownloadFailed': 'Αποτυχία λήψης',
'otaPreparingConnection': 'Προετοιμασία σύνδεσης συσκευής...', 'otaPreparingConnection': 'Προετοιμασία σύνδεσης συσκευής...',
'otaConnectingDevice': 'Σύνδεση στη συσκευή...', 'otaConnectingDevice': 'Σύνδεση στη συσκευή...',

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

@ -1,3 +1,4 @@
//美国-英语
const Map<String, String> enUS = { const Map<String, String> enUS = {
// 通用 // 通用
'continue': 'Continue', 'continue': 'Continue',

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

@ -1,10 +1,11 @@
//西班牙-西班牙语
const Map<String, String> esES = { const Map<String, String> esES = {
// 通用 // 通用
'continue': 'Continuar', 'continue': 'Continuar',
'confirm': 'Confirmar', 'confirm': 'Confirmar',
'cancel': 'Cancelar', 'cancel': 'Cancelar',
'retry': 'Reintentar', 'retry': 'Reintentar',
'error': 'Error', 'error': 'Fallo',
'success': 'Éxito', 'success': 'Éxito',
'connected': 'Conectado', 'connected': 'Conectado',
'connecting': 'Conectando...', 'connecting': 'Conectando...',
@ -245,7 +246,7 @@ const Map<String, String> esES = {
"costStats": "Cost Stats", "costStats": "Cost Stats",
"estimatedCost": "Estimated Cost", "estimatedCost": "Estimated Cost",
"dailyCostThreshold": "Daily Cost Threshold", "dailyCostThreshold": "Daily Cost Threshold",
"monthlyCostThreshold": "Monthly Cost Threshold", "monthlyCostThreshold": "Umbral de costo mensual",
"usageBehaviorStats": "Usage Behavior Stats", "usageBehaviorStats": "Usage Behavior Stats",
"mostUsedLanguagePair": "Most-used language pair", "mostUsedLanguagePair": "Most-used language pair",
"mostUsedMode": "Most-used mode", "mostUsedMode": "Most-used mode",
@ -308,7 +309,7 @@ const Map<String, String> esES = {
'wechatPayWithAmount': 'WeChat Pay ¥@amount', 'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount', 'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': 'Estado del pago', 'paymentStatusTitle': 'Estado del pago',
'errorInfoWithMessage': 'Error: @message', 'errorInfoWithMessage': 'Fallo: @message',
'retest': 'Volver a probar', 'retest': 'Volver a probar',
'paymentTestInstructionsTitle': 'Instrucciones', 'paymentTestInstructionsTitle': 'Instrucciones',
'paymentTestInstructionsContent': 'paymentTestInstructionsContent':
@ -357,7 +358,7 @@ const Map<String, String> esES = {
'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points',
'helpCallAndSMS': 'Help with calls and SMS', 'helpCallAndSMS': 'Help with calls and SMS',
'templatedMessagesAndScheduleReminders': 'templatedMessagesAndScheduleReminders':
'Template messages and schedule reminders', 'Mensajes de plantilla y recordatorios programados',
'aiDisclaimer': 'aiDisclaimer':
'Las funciones dependen de los permisos del dispositivo, la disponibilidad del servicio y las condiciones de la red.', 'Las funciones dependen de los permisos del dispositivo, la disponibilidad del servicio y las condiciones de la red.',
@ -705,9 +706,9 @@ const Map<String, String> esES = {
'Importa fácilmente archivos de audio desde aplicaciones locales o de terceros, como notas de voz, Google Drive, etc.', 'Importa fácilmente archivos de audio desde aplicaciones locales o de terceros, como notas de voz, Google Drive, etc.',
'multipleExportFormatsDesc': 'multipleExportFormatsDesc':
'Exporta tus grabaciones de audio, textos de transcripción y resúmenes en varios formatos (TXT, PDF, JPEG) según tus necesidades.', 'Exporta tus grabaciones de audio, textos de transcripción y resúmenes en varios formatos (TXT, PDF, JPEG) según tus necesidades.',
'upgradeMembership': 'Upgrade Your Membership', 'upgradeMembership': 'Actualiza tu membresía',
'yearlySubscription': 'Yearly Subscription', 'yearlySubscription': 'Suscripción anual',
'monthlySubscription': 'Monthly Subscription', 'monthlySubscription': 'Suscripción mensual',
'proMonthly': 'Pro ¥60/month', 'proMonthly': 'Pro ¥60/month',
'proMonthlyDesc': 'proMonthlyDesc':
'7-day free trial, then ¥800/year. Cancel anytime before trial ends.', '7-day free trial, then ¥800/year. Cancel anytime before trial ends.',
@ -718,20 +719,20 @@ const Map<String, String> esES = {
'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.',
'proPrice': 'Pro ¥120', 'proPrice': 'Pro ¥120',
'proMonthlyPrice': '¥120/month', 'proMonthlyPrice': '¥120/month',
'subscribe': 'Subscribe', 'subscribe': 'Suscribirse',
'unlimitedPrice': 'Unlimited ¥198', 'unlimitedPrice': 'Unlimited ¥198',
'unlimitedMonthlyPrice': '¥198/month', 'unlimitedMonthlyPrice': '¥198/month',
'upgradeNote': 'upgradeNote':
'*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', '*Tras actualizar la suscripción, los días restantes de la suscripción original se calcularán automáticamente y se reembolsarán a tu cuenta de pago',
'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'buyMoreTranscriptionTime': 'Comprar más tiempo de transcripción',
'sixThousandMinutes': '6,000 minutes', 'sixThousandMinutes': '6,000 minutes',
'threeThousandMinutes': '3,000 minutes', 'threeThousandMinutes': '3,000 minutes',
'sixHundredMinutes': '600 minutes', 'sixHundredMinutes': '600 minutes',
'oneHundredTwentyMinutes': '120 minutes', 'oneHundredTwentyMinutes': '120 minutes',
'validityPeriod': '*Validity Period: ', 'validityPeriod': '*Validity Period: ',
'validityNote': 'validityNote':
'Activated immediately after purchase, valid for 2 years after activation.', 'Se activa inmediatamente tras la compra, válido durante 2 años después de la activación.',
'purchase': 'Purchase', 'purchase': 'Comprar',
// Meeting模块 - 录音语言 // Meeting模块 - 录音语言
'recordLanguage': 'Idioma de grabación', 'recordLanguage': 'Idioma de grabación',
@ -859,7 +860,7 @@ const Map<String, String> esES = {
"loadFailedClickRetry": "Carga fallida, haz clic para reintentar", "loadFailedClickRetry": "Carga fallida, haz clic para reintentar",
"swipeUpForMore": "Desliza hacia arriba para más", "swipeUpForMore": "Desliza hacia arriba para más",
"callingTool": "Estoy ayudándote, por favor espera.", // 正在帮您,请稍等! "callingTool": "Estoy ayudándote, por favor espera.", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断 "voice_interrupt": "Interrumpir", // 语音打断
'voice_interrupt_tip': 'voice_interrupt_tip':
'Cuando está activado: La IA no será interrumpida por tu voz mientras habla y solo podrá manejar una ronda de conversación a la vez. Para iniciar una nueva ronda, simplemente di la palabra de activación.', 'Cuando está activado: La IA no será interrumpida por tu voz mientras habla y solo podrá manejar una ronda de conversación a la vez. Para iniciar una nueva ronda, simplemente di la palabra de activación.',
@ -1438,14 +1439,14 @@ const Map<String, String> esES = {
'iKnow': 'Entendido', // 我知道了 'iKnow': 'Entendido', // 我知道了
// 配对模块 - 绑定奖励 // 配对模块 - 绑定奖励
"firstBindRewardTitle": "Welcome Reward", "firstBindRewardTitle": "Recompensa de bienvenida",
"firstBindRewardDesc": "You've received binding rewards.", "firstBindRewardDesc": "Has recibido recompensas por vinculación.",
"vipLevelLabel": "VIP Level:", "vipLevelLabel": "Nivel VIP:",
"expiryLabel": "Expiration:", "expiryLabel": "Caducidad:",
"notActivated": "Not activated", "notActivated": "No activado",
"aiChatCreditsLabel": "AI Chat Credits:", "aiChatCreditsLabel": "Créditos de chat de IA:",
"translationCreditsLabel": "Translation Credits:", "translationCreditsLabel": "Créditos de traducción:",
"meetingCreditsLabel": "Meeting Credits:", "meetingCreditsLabel": "Créditos de reuniones:",
"ok": "OK", "ok": "OK",
// 用户反馈模块 // 用户反馈模块

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

File diff suppressed because it is too large

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

@ -1,3 +1,4 @@
//伊朗-波斯语
const Map<String, String> faIR = { const Map<String, String> faIR = {
// 通用 // 通用
'continue': 'ادامه', 'continue': 'ادامه',
@ -21,8 +22,8 @@ const Map<String, String> faIR = {
"justNow": "همین الان", "justNow": "همین الان",
"minutesAgo": "@minutes دقیقه پیش", "minutesAgo": "@minutes دقیقه پیش",
"yesterday": "دیروز", "yesterday": "دیروز",
"daysAgo": "@days days ago", "daysAgo": "@days روز پیش",
"hoursAgo": "@hours hours ago", "hoursAgo": "@hours ساعت پیش",
// 启动页 // 启动页
"slogan": "دنیا را متصل کن، فراتر از صدا", "slogan": "دنیا را متصل کن، فراتر از صدا",
@ -1073,33 +1074,32 @@ const Map<String, String> faIR = {
"openingPhotoAlbum": "در حال باز کردن آلبوم عکس...", "openingPhotoAlbum": "در حال باز کردن آلبوم عکس...",
"cancelled": "لغو شد", "cancelled": "لغو شد",
"userCancelledSelection": "کاربر انتخاب را لغو کرد", "userCancelledSelection": "کاربر انتخاب را لغو کرد",
"translatingImage": "Translating Image", "translatingImage": "در حال ترجمه تصویر",
"callingImageTranslateService": "Calling image translation service...", "callingImageTranslateService": "در حال فراخوانی سرویس ترجمه تصویر...",
"savingRecord": "Saving Record", "savingRecord": "در حال ذخیره رکورد",
"savingTranslationResult": "Saving translation result...", "savingTranslationResult": "در حال ذخیره نتیجه ترجمه...",
"translationCompleted": "Translation Completed", "translationCompleted": "ترجمه تکمیل شد",
"allStepsCompleted": "All steps completed", "allStepsCompleted": "تمام مراحل تکمیل شد",
"processingFailed": "Processing Failed", "processingFailed": "پردازش ناموفق بود",
"imageProcessingOrTranslationFailed": "imageProcessingOrTranslationFailed":
"Image processing or translation failed. Please retry.\nError: {error}", "پردازش تصویر یا ترجمه ناموفق بود. لطفاً دوباره تلاش کنید.\nخطا: {error}",
"imageTooLarge": "Image size exceeds 4MB limit", "imageTooLarge": "حجم تصویر از محدودیت ۴ مگابایت بیشتر است",
"imageTooLargeHint": "imageTooLargeHint":
"Image size exceeds 4MB. Reduce quality or dimensions and retry", "حجم تصویر از ۴ مگابایت بیشتر است. کیفیت یا ابعاد را کاهش دهید و دوباره تلاش کنید",
"emptyTranslationResult": "Image translation API returned empty result", "emptyTranslationResult": "API ترجمه تصویر نتیجه‌ای خالی برگرداند",
"imageTranslationFailedTryLater": "imageTranslationFailedTryLater":
"Image translation failed. Network issue or rate limit. Please try later", "ترجمه تصویر ناموفق بود. مشکل شبکه یا محدودیت نرخ. لطفاً بعداً تلاش کنید",
"imageTranslationApiException": "imageTranslationApiException":
"Image translation API exception. Check network and retry", "استثنای API ترجمه تصویر. شبکه را بررسی کنید و دوباره تلاش کنید",
"permissionRequired": "Permission Required", "permissionRequired": "نیاز به مجوز",
"cameraPermissionRequired": "Camera permission required to take photos", "cameraPermissionRequired": "برای گرفتن عکس، مجوز دوربین لازم است",
"photoAlbumPermissionRequired": "photoAlbumPermissionRequired": "برای انتخاب تصویر، مجوز آلبوم عکس لازم است",
"Photo album permission required to pick images", "translationDetails": "جزئیات ترجمه",
"translationDetails": "Translation Details", "originalImage": "تصویر اصلی",
"originalImage": "Original Image", "sourceLanguage": "زبان مبدأ",
"sourceLanguage": "Source Language", "targetLanguage": "زبان مقصد",
"targetLanguage": "Target Language", "translationTime": "زمان ترجمه",
"translationTime": "Translation Time", "shareInDevelopment": "قابلیت اشتراک‌گذاری در حال توسعه است",
"shareInDevelopment": "Sharing feature under development",
// 翻译模块 - 录音文件 // 翻译模块 - 录音文件
"translateAudioFiles": "ترجمه فایل‌های صوتی", "translateAudioFiles": "ترجمه فایل‌های صوتی",
@ -1279,7 +1279,7 @@ const Map<String, String> faIR = {
'bluetoothConnectPermanentDenial': 'bluetoothConnectPermanentDenial':
'مجوز اتصال بلوتوث برای همیشه رد شده است، لطفاً برای فعال کردن آن به صورت دستی به تنظیمات بروید.', 'مجوز اتصال بلوتوث برای همیشه رد شده است، لطفاً برای فعال کردن آن به صورت دستی به تنظیمات بروید.',
'locationPermanentDenial': 'locationPermanentDenial':
'Location permission has been permanently denied, please go to settings to enable it manually.', 'مجوز موقعیت مکانی برای همیشه رد شده است، لطفاً برای فعال کردن آن به صورت دستی به تنظیمات بروید.',
'notificationPermission': 'اعلان', 'notificationPermission': 'اعلان',
'locationPermission': 'موقعیت مکانی', 'locationPermission': 'موقعیت مکانی',
'notificationPermissionExplanation': 'notificationPermissionExplanation':
@ -1406,14 +1406,14 @@ const Map<String, String> faIR = {
'iKnow': 'متوجه شدم', // 我知道了 'iKnow': 'متوجه شدم', // 我知道了
// 配对模块 - 绑定奖励 // 配对模块 - 绑定奖励
"firstBindRewardTitle": "Welcome Reward", "firstBindRewardTitle": "مباحث ویژه",
"firstBindRewardDesc": "You've received binding rewards.", "firstBindRewardDesc": "شما به جای награدهای معمولی دریافت خواهید کرد.",
"vipLevelLabel": "VIP Level:", "vipLevelLabel": "VIP سطح:",
"expiryLabel": "Expiration:", "expiryLabel": "تTL:",
"notActivated": "Not activated", "notActivated": "نامفعال",
"aiChatCreditsLabel": "AI Chat Credits:", "aiChatCreditsLabel": "اعتبار چت AI:",
"translationCreditsLabel": "Translation Credits:", "translationCreditsLabel": "اعتبار ترجمه:",
"meetingCreditsLabel": "Meeting Credits:", "meetingCreditsLabel": "مباحث:",
"ok": "OK", "ok": "OK",
// 用户反馈模块 // 用户反馈模块
@ -1443,13 +1443,14 @@ const Map<String, String> faIR = {
"connectionFailed": "اتصال ناموفق", "connectionFailed": "اتصال ناموفق",
"retryConnection": "تلاش مجدد برای اتصال", "retryConnection": "تلاش مجدد برای اتصال",
"ota_updateNow": "اکنون به‌روزرسانی کن", "ota_updateNow": "اکنون به‌روزرسانی کن",
"otaVersionInfoFailed": "Failed to get version info. Please try again later.", "otaVersionInfoFailed":
"دریافت اطلاعات نسخه ناموفق بود. لطفاً بعداً دوباره تلاش کنید.",
"otaDeviceInfoUnavailable": "otaDeviceInfoUnavailable":
"Unable to get device info. Please check the connection and retry.", "امکان دریافت اطلاعات دستگاه نیست. لطفاً اتصال را بررسی کرده و دوباره تلاش کنید.",
"otaProductInfoUnavailable": "otaProductInfoUnavailable":
"Unable to identify the device. Please reconnect and retry.", "شناسایی دستگاه ممکن نیست. لطفاً دوباره وصل کنید و تلاش کنید.",
"otaFirmwareVersionInvalid": "otaFirmwareVersionInvalid":
"Firmware version is abnormal. Please reconnect and retry.", "نسخه سفت‌افزار غیرعادی است. لطفاً دوباره وصل کنید و تلاش کنید.",
"keepConnectedDontClose": "لطفاً دستگاه را متصل نگه دارید، برنامه را نبندید", "keepConnectedDontClose": "لطفاً دستگاه را متصل نگه دارید، برنامه را نبندید",
"doNotDisconnect": "اتصال را قطع نکنید", "doNotDisconnect": "اتصال را قطع نکنید",
"charging": "در حال شارژ", "charging": "در حال شارژ",
@ -1458,57 +1459,57 @@ const Map<String, String> faIR = {
"هر دو ایرباد را بردارید و اطمینان حاصل کنید که سطح باتری بالای ۲۰٪ است", "هر دو ایرباد را بردارید و اطمینان حاصل کنید که سطح باتری بالای ۲۰٪ است",
// OTA升级模块 - 弹窗与对话框 // OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': 'New version @version found', 'otaNewVersionFoundWithVersion': 'نسخه جدید @version پیدا شد',
'otaConfirmUpdateNow': 'Update now?', 'otaConfirmUpdateNow': 'اکنون به‌روزرسانی شود؟',
'otaUpdate': 'Update', 'otaUpdate': 'به‌روزرسانی',
'otaUpgradeSuccess': 'Upgrade Successful', 'otaUpgradeSuccess': 'ارتقا با موفقیت انجام شد',
'otaUpgradeCompleteRepair': 'otaUpgradeCompleteRepair':
'Firmware upgrade complete!\n\nDevice needs to be re-paired to work properly. Go to pairing page now?', 'ارتقای سفت‌افزار کامل شد!\n\nبرای عملکرد صحیح، دستگاه باید دوباره جفت شود. اکنون به صفحه جفت‌سازی بروید؟',
'otaPairLater': 'Pair Later', 'otaPairLater': 'بعداً جفت شود',
'otaPairNow': 'Pair Now', 'otaPairNow': 'اکنون جفت شود',
'okConfirm': 'OK', 'okConfirm': 'OK',
// OTA升级模块 - 设备检查 // OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'Error checking BLE connection: @error', 'otaBleCheckErrorWithError': 'خطا در بررسی اتصال BLE: @error',
'otaBleNotConnected': 'BLE Device Not Connected', 'otaBleNotConnected': 'دستگاه BLE متصل نیست',
'otaBleNeedConnection': 'otaBleNeedConnection':
'Firmware upgrade requires BLE device connection\nPlease ensure device is properly connected and try again', 'ارتقای سفت‌افزار به اتصال دستگاه BLE نیاز دارد\nلطفاً مطمئن شوید دستگاه به درستی متصل است و دوباره تلاش کنید',
'otaDeviceInfoUnavailableTitle': 'Device Info Unavailable', 'otaDeviceInfoUnavailableTitle': 'اطلاعات دستگاه در دسترس نیست',
'otaCannotGetDeviceInfo': 'otaCannotGetDeviceInfo':
'Cannot get device info\nPlease reconnect device or try again later', 'امکان دریافت اطلاعات دستگاه نیست\nلطفاً دستگاه را دوباره متصل کنید یا بعداً تلاش کنید',
'otaBleCheckFailed': 'BLE Connection Check Failed', 'otaBleCheckFailed': 'بررسی اتصال BLE ناموفق بود',
'otaCannotGetDeviceInfoCheckConnection': 'otaCannotGetDeviceInfoCheckConnection':
'Cannot get device info, please check device connection', 'امکان دریافت اطلاعات دستگاه نیست، لطفاً اتصال دستگاه را بررسی کنید',
'otaCannotGetProductInfoWithName': 'otaCannotGetProductInfoWithName':
'Cannot get product info, device name: @deviceName', 'امکان دریافت اطلاعات محصول نیست، نام دستگاه: @deviceName',
'otaCannotGetBatteryInfo': 'Cannot get valid battery info', 'otaCannotGetBatteryInfo': 'امکان دریافت اطلاعات معتبر باتری نیست',
'otaLowBattery': 'Low Battery', 'otaLowBattery': 'باتری کم',
'otaSingleBatteryLow': 'otaSingleBatteryLow':
'Device battery too low for firmware upgrade\nRequirement: battery must be above 20%\nCurrent: @ear @battery%\nPlease charge and try again', 'باتری دستگاه برای ارتقای سفت‌افزار خیلی کم است\nشرط: باتری باید بالای ۲۰٪ باشد\nفعلی: @ear @battery%\nلطفاً شارژ کنید و دوباره تلاش کنید',
'otaDoubleBatteryLow': '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', 'باتری دستگاه برای ارتقای سفت‌افزار خیلی کم است\nشرط: هر دو ایرباد باید بالای ۲۰٪ باشند\nفعلی: چپ @left٪، راست @right٪\nلطفاً شارژ کنید و دوباره تلاش کنید',
'otaBatteryCheckFailed': 'Battery Check Failed', 'otaBatteryCheckFailed': 'بررسی باتری ناموفق بود',
// OTA升级模块 - 升级状态 // OTA升级模块 - 升级状态
'otaDefaultUpdateDesc': 'otaDefaultUpdateDesc':
'This update includes performance optimizations and bug fixes.', 'این به‌روزرسانی شامل بهینه‌سازی عملکرد و رفع باگ‌هاست.',
'otaGetLatestVersionFailed': 'Failed to get latest version info', 'otaGetLatestVersionFailed': 'دریافت اطلاعات آخرین نسخه ناموفق بود',
'otaGetVersionInfoFailed': 'Failed to get version info', 'otaGetVersionInfoFailed': 'دریافت اطلاعات نسخه ناموفق بود',
'otaCheckingDeviceStatus': 'Checking device status...', 'otaCheckingDeviceStatus': 'در حال بررسی وضعیت دستگاه...',
'otaDownloadFailedCheckNetwork': 'otaDownloadFailedCheckNetwork':
'Download failed, please check network connection', 'دانلود ناموفق بود، لطفاً اتصال شبکه را بررسی کنید',
'otaDownloadFailed': 'Download Failed', 'otaDownloadFailed': 'دانلود ناموفق بود',
'otaPreparingConnection': 'Preparing device connection...', 'otaPreparingConnection': 'در حال آماده‌سازی اتصال دستگاه...',
'otaConnectingDevice': 'Connecting to device...', 'otaConnectingDevice': 'در حال اتصال به دستگاه...',
'otaUpgradeStarted': 'OTA upgrade started...', 'otaUpgradeStarted': 'ارتقای OTA آغاز شد...',
'otaUpgradeProgressWithPercent': 'Upgrade progress: @percent%', 'otaUpgradeProgressWithPercent': 'پیشرفت ارتقا: @percent٪',
'otaUpgradeSuccessComplete': 'Upgrade completed successfully', 'otaUpgradeSuccessComplete': 'ارتقا با موفقیت تکمیل شد',
'otaUpgradeFailedWithCode': 'Upgrade failed, error code: @code', 'otaUpgradeFailedWithCode': 'ارتقا ناموفق بود، کد خطا: @code',
'otaUpgradeFailedTitle': 'Upgrade Failed', 'otaUpgradeFailedTitle': 'ارتقا ناموفق بود',
'otaUpgradeFailedDesc': 'otaUpgradeFailedDesc':
'Please check device connection or update package, error code: @code', 'لطفاً اتصال دستگاه یا بسته به‌روزرسانی را بررسی کنید، کد خطا: @code',
'otaDeviceDisconnected': 'Device disconnected', 'otaDeviceDisconnected': 'دستگاه قطع شد',
'otaDeviceConnected': 'Device connected', 'otaDeviceConnected': 'دستگاه متصل شد',
// 音乐模块 // 音乐模块
"noMusic": "بدون موسیقی", // 暂无音乐 "noMusic": "بدون موسیقی", // 暂无音乐

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

File diff suppressed because it is too large

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

@ -1,3 +1,4 @@
// 法国-法语
const Map<String, String> frFR = { const Map<String, String> frFR = {
// 通用 // 通用
'continue': 'Continuer', 'continue': 'Continuer',
@ -871,7 +872,7 @@ const Map<String, String> frFR = {
"loadFailedClickRetry": "Échec du chargement, cliquer pour réessayer", "loadFailedClickRetry": "Échec du chargement, cliquer pour réessayer",
"swipeUpForMore": "Glisser vers le haut pour plus", "swipeUpForMore": "Glisser vers le haut pour plus",
"callingTool": "Je vous aide, veuillez patienter…", // 正在帮您,请稍等! "callingTool": "Je vous aide, veuillez patienter…", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断 "voice_interrupt": "Interrompre", // 语音打断
'voice_interrupt_tip': 'voice_interrupt_tip':
"Lorsque cette option est activée : l'IA ne sera pas interrompue par votre voix lorsqu'elle parle et ne pourra traiter qu'un seul tour de conversation à la fois. Pour commencer un nouveau tour, il suffit de prononcer le mot de réveil.", "Lorsque cette option est activée : l'IA ne sera pas interrompue par votre voix lorsqu'elle parle et ne pourra traiter qu'un seul tour de conversation à la fois. Pour commencer un nouveau tour, il suffit de prononcer le mot de réveil.",
@ -1456,14 +1457,14 @@ const Map<String, String> frFR = {
'iKnow': 'Je comprends', // 我知道了 'iKnow': 'Je comprends', // 我知道了
// 配对模块 - 绑定奖励 // 配对模块 - 绑定奖励
"firstBindRewardTitle": "Welcome Reward", "firstBindRewardTitle": "Bienvenue Récompense",
"firstBindRewardDesc": "You've received binding rewards.", "firstBindRewardDesc": "Vous avez reçu des récompenses de liaison.",
"vipLevelLabel": "VIP Level:", "vipLevelLabel": "Niveau VIP:",
"expiryLabel": "Expiration:", "expiryLabel": "Date d'expiration :",
"notActivated": "Not activated", "notActivated": "Non activé",
"aiChatCreditsLabel": "AI Chat Credits:", "aiChatCreditsLabel": "Crédits de chat AI:",
"translationCreditsLabel": "Translation Credits:", "translationCreditsLabel": "Crédits de traduction :",
"meetingCreditsLabel": "Meeting Credits:", "meetingCreditsLabel": "Crédits de réunion:",
"ok": "OK", "ok": "OK",
// 用户反馈模块 // 用户反馈模块

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

File diff suppressed because it is too large

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

File diff suppressed because it is too large

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

File diff suppressed because it is too large

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

@ -1,3 +1,4 @@
//印尼-印尼语
const Map<String, String> idID = { const Map<String, String> idID = {
// 通用 // 通用
'continue': 'Lanjutkan', 'continue': 'Lanjutkan',
@ -855,21 +856,21 @@ const Map<String, String> idID = {
"loadFailedClickRetry": "Gagal memuat, klik untuk mencoba lagi", "loadFailedClickRetry": "Gagal memuat, klik untuk mencoba lagi",
"swipeUpForMore": "Geser ke atas untuk lebih banyak", "swipeUpForMore": "Geser ke atas untuk lebih banyak",
"callingTool": "Saya sedang membantu Anda, harap tunggu!", // 正在帮您,请稍等! "callingTool": "Saya sedang membantu Anda, harap tunggu!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断 "voice_interrupt": "Interupsi", // 语音打断
'voice_interrupt_tip': 'voice_interrupt_tip':
'Saat diaktifkan: AI tidak akan terganggu oleh suara Anda saat berbicara dan hanya dapat menangani satu putaran percakapan. Untuk memulai putaran baru, cukup ucapkan kata bangun.', 'Saat diaktifkan: AI tidak akan terganggu oleh suara Anda saat berbicara dan hanya dapat menangani satu putaran percakapan. Untuk memulai putaran baru, cukup ucapkan kata bangun.',
// Agent模块 - 预设提示词 // Agent模块 - 预设提示词
"presetMusic": "Play some music", // 来点音乐 "presetMusic": "Putar musik", // 来点音乐
"presetNavigation": "Navigation to", // 导航 "presetNavigation": "Navigasi ke", // 导航
"presetWeather": "Today's weather", // 今日天气 "presetWeather": "Cuaca hari ini", // 今日天气
"presetNews": "Today's news", // 今日新闻 "presetNews": "Berita hari ini", // 今日新闻
"presetFood": "Nearby food", // 美食 "presetFood": "Makanan di dekat sini", // 美食
"playSomeMusic": "Play some popular music", // 播放一些流行音乐 "playSomeMusic": "Putar musik populer", // 播放一些流行音乐
"navigationTo": "Tolong bantu saya menavigasi ke", // 导航到 "navigationTo": "Tolong bantu saya menavigasi ke", // 导航到
"todayWeather": "How's the weather today?", // 今日天气 "todayWeather": "Bagaimana cuaca hari ini?", // 今日天气
"todayNews": "What's the news today?", // 今日新闻 "todayNews": "Apa berita hari ini?", // 今日新闻
"nearbyFood": "What delicious food is nearby?", // 美食 "nearbyFood": "Makanan enak apa yang ada di dekat sini?", // 美食
// Agent模块 - 欢迎消息与权限 // Agent模块 - 欢迎消息与权限
'welcomeMessage': 'Halo! Saya **Lily**, saya bisa membantu Anda:\n\n' 'welcomeMessage': 'Halo! Saya **Lily**, saya bisa membantu Anda:\n\n'
@ -1419,14 +1420,14 @@ const Map<String, String> idID = {
'iKnow': 'Saya Mengerti', // 我知道了 'iKnow': 'Saya Mengerti', // 我知道了
// 配对模块 - 绑定奖励 // 配对模块 - 绑定奖励
"firstBindRewardTitle": "Welcome Reward", "firstBindRewardTitle": "Pembelian Terlebih Dahulu",
"firstBindRewardDesc": "You've received binding rewards.", "firstBindRewardDesc": "Anda telah menerima premi binding.",
"vipLevelLabel": "VIP Level:", "vipLevelLabel": "Level VIP:",
"expiryLabel": "Expiration:", "expiryLabel": "Kedaluwarsa:",
"notActivated": "Not activated", "notActivated": "Belum diaktifkan",
"aiChatCreditsLabel": "AI Chat Credits:", "aiChatCreditsLabel": "Kredit Chat AI:",
"translationCreditsLabel": "Translation Credits:", "translationCreditsLabel": "Kredit Terjemahan:",
"meetingCreditsLabel": "Meeting Credits:", "meetingCreditsLabel": "Kredit Meeting:",
"ok": "OK", "ok": "OK",
// 用户反馈模块 // 用户反馈模块

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

File diff suppressed because it is too large

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

File diff suppressed because it is too large

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

File diff suppressed because it is too large

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

@ -1,3 +1,4 @@
// 韩国-韩语
const Map<String, String> koKR = { const Map<String, String> koKR = {
// 通用 // 通用
'continue': '계속', 'continue': '계속',
@ -240,8 +241,7 @@ const Map<String, String> koKR = {
"audioFileSize": "오디오 파일 크기", "audioFileSize": "오디오 파일 크기",
"transcriptBytes": "전사 바이트 수", "transcriptBytes": "전사 바이트 수",
"loadFailed": "로드 실패", "loadFailed": "로드 실패",
"statsLoadFailedTryLater": "statsLoadFailedTryLater": "통계를 불러오지 못했습니다. 나중에 다시 시도해 주세요.",
"통계를 불러오지 못했습니다. 나중에 다시 시도해 주세요.",
"cleanupComplete": "정리 완료", "cleanupComplete": "정리 완료",
"cleanedOldData": "90일 이전 데이터를 정리했습니다", "cleanedOldData": "90일 이전 데이터를 정리했습니다",
"exportFeature": "내보내기 기능", "exportFeature": "내보내기 기능",
@ -309,11 +309,9 @@ const Map<String, String> koKR = {
'cannotLaunchAlipayPayment': 'Alipay를 실행할 수 없습니다', 'cannotLaunchAlipayPayment': 'Alipay를 실행할 수 없습니다',
'alipayPaymentException': 'Alipay 예외', 'alipayPaymentException': 'Alipay 예외',
"insufficientIntegral": "포인트 부족", "insufficientIntegral": "포인트 부족",
"insufficientBalanceDesc": "insufficientBalanceDesc": '잔액이 부족합니다. 해당 충전 페이지에서 충전해 주세요.',
'잔액이 부족합니다. 해당 충전 페이지에서 충전해 주세요.',
"recharge": '충전하러 가기', "recharge": '충전하러 가기',
"aiMemberExpiredDesc": "aiMemberExpiredDesc": 'AI 멤버십이 만료되었습니다. 멤버십 충전 페이지에서 갱신해 주세요.',
'AI 멤버십이 만료되었습니다. 멤버십 충전 페이지에서 갱신해 주세요.',
// 商品模块 - AI商品页 // 商品模块 - AI商品页
'musicAndRecommendation': '음악 및 추천', 'musicAndRecommendation': '음악 및 추천',
@ -321,15 +319,11 @@ const Map<String, String> koKR = {
'nearbySearch': '주변 검색', 'nearbySearch': '주변 검색',
'newsInformation': '뉴스', 'newsInformation': '뉴스',
'communicationAssistant': '커뮤니케이션 어시스턴트', 'communicationAssistant': '커뮤니케이션 어시스턴트',
'aiHeaderDesc1': 'aiHeaderDesc1': '더 긴 대화 한도, 더 많은 도구 호출, 확장된 컨텍스트 길이.',
'더 긴 대화 한도, 더 많은 도구 호출, 확장된 컨텍스트 길이.', 'aiHeaderDesc2': '에이전트 Q&A, 요약, 분석 및 작업 실행에 적합합니다.',
'aiHeaderDesc2':
'에이전트 Q&A, 요약, 분석 및 작업 실행에 적합합니다.',
'musicSearchPlaybackControl': '음악 라이브러리 검색 및 재생 제어', 'musicSearchPlaybackControl': '음악 라이브러리 검색 및 재생 제어',
'smartPlaylistAndSimilarRecommendations': 'smartPlaylistAndSimilarRecommendations': '스마트 재생목록 및 유사 곡 추천',
'스마트 재생목록 및 유사 곡 추천', 'routePlanningAndCongestionAvoidance': '경로 계획 및 정체 구간 우회',
'routePlanningAndCongestionAvoidance':
'경로 계획 및 정체 구간 우회',
'voiceBroadcastAndWaypoints': '음성 안내 및 경유지 설정', 'voiceBroadcastAndWaypoints': '음성 안내 및 경유지 설정',
'realTimeWeatherForecast': '실시간 날씨 및 예보', 'realTimeWeatherForecast': '실시간 날씨 및 예보',
'clothingAdviceAndTravelReminders': '의류 조언 및 여행 알림', 'clothingAdviceAndTravelReminders': '의류 조언 및 여행 알림',
@ -338,10 +332,8 @@ const Map<String, String> koKR = {
'hotNewsAndTopicOverview': '인기 뉴스 및 주제 개요', 'hotNewsAndTopicOverview': '인기 뉴스 및 주제 개요',
'longArticleSummariesAndKeyPoints': '긴 기사 요약 및 핵심 포인트', 'longArticleSummariesAndKeyPoints': '긴 기사 요약 및 핵심 포인트',
'helpCallAndSMS': '전화 및 문자 도움', 'helpCallAndSMS': '전화 및 문자 도움',
'templatedMessagesAndScheduleReminders': 'templatedMessagesAndScheduleReminders': '템플릿 메시지 및 일정 알림',
'템플릿 메시지 및 일정 알림', 'aiDisclaimer': '기능은 기기 권한, 서비스 가용성 및 네트워크 상태에 따라 달라집니다.',
'aiDisclaimer':
'기능은 기기 권한, 서비스 가용성 및 네트워크 상태에 따라 달라집니다.',
// 商品模块 - 翻译商品页 // 商品模块 - 翻译商品页
'realtimeTranscription': '실시간 받아쓰기', 'realtimeTranscription': '실시간 받아쓰기',
@ -364,10 +356,8 @@ const Map<String, String> koKR = {
'transcriptionAndSummary': '전사 및 요약', 'transcriptionAndSummary': '전사 및 요약',
'keywordSearch': '키워드 검색', 'keywordSearch': '키워드 검색',
'collaborationSharing': '협업 및 공유', 'collaborationSharing': '협업 및 공유',
'meetingHeaderDesc1': 'meetingHeaderDesc1': '오디오 녹음, 전사, 키워드 검색 및 자동 요약.',
'오디오 녹음, 전사, 키워드 검색 및 자동 요약.', 'meetingHeaderDesc2': '비즈니스 회의, 수업 필기 및 인터뷰 회의록에 적합합니다.',
'meetingHeaderDesc2':
'비즈니스 회의, 수업 필기 및 인터뷰 회의록에 적합합니다.',
'meetingAutoRecording': '자동 녹음 및 분할', 'meetingAutoRecording': '자동 녹음 및 분할',
'meetingSpeakerTagging': '발언자 태깅', 'meetingSpeakerTagging': '발언자 태깅',
'meetingLongAudioTranscription': '장시간 오디오 전사', 'meetingLongAudioTranscription': '장시간 오디오 전사',
@ -376,8 +366,7 @@ const Map<String, String> koKR = {
'meetingTimelineJump': '타임라인 이동', 'meetingTimelineJump': '타임라인 이동',
'meetingExportSummary': '회의록 내보내기', 'meetingExportSummary': '회의록 내보내기',
'meetingMultiPlatformShare': '멀티 플랫폼 공유', 'meetingMultiPlatformShare': '멀티 플랫폼 공유',
'meetingDisclaimer': 'meetingDisclaimer': '조용한 환경에서 사용하세요. 성능은 마이크와 네트워크에 따라 달라집니다.',
'조용한 환경에서 사용하세요. 성능은 마이크와 네트워크에 따라 달라집니다.',
// 商品模块 - VIP会员页 // 商品模块 - VIP会员页
'benefitsOverview': '혜택 개요', 'benefitsOverview': '혜택 개요',
@ -442,8 +431,7 @@ const Map<String, String> koKR = {
'guideNavInput': "선전 공항으로 안내해줘", 'guideNavInput': "선전 공항으로 안내해줘",
'guideNavSend': "Lily가 경로를 계획할 거예요", 'guideNavSend': "Lily가 경로를 계획할 거예요",
'guideNavEnd': "내비게이션이 설정되었어요—다른 명령도 시도해 보세요", 'guideNavEnd': "내비게이션이 설정되었어요—다른 명령도 시도해 보세요",
'guideMeetingStart': 'guideMeetingStart': "Lily에게 말하세요: “내일 오후 3시 회의 알림 만들어줘”",
"Lily에게 말하세요: “내일 오후 3시 회의 알림 만들어줘”",
'guideMeetingInput': "내일 오후 3시 회의 알림 만들어줘", 'guideMeetingInput': "내일 오후 3시 회의 알림 만들어줘",
'guideMeetingSend': "Lily가 회의 알림을 만들어드릴 거예요", 'guideMeetingSend': "Lily가 회의 알림을 만들어드릴 거예요",
'guideMeetingEnd': "알림이 생성되었어요—다른 명령도 시도해 보세요", 'guideMeetingEnd': "알림이 생성되었어요—다른 명령도 시도해 보세요",
@ -491,8 +479,7 @@ const Map<String, String> koKR = {
'downloadingFiles': '파일 다운로드 중...', 'downloadingFiles': '파일 다운로드 중...',
'downloadingFileProgress': '총 {total}개 파일 중 {current}번째 다운로드 중', 'downloadingFileProgress': '총 {total}개 파일 중 {current}번째 다운로드 중',
'downloadComplete': '다운로드 완료', 'downloadComplete': '다운로드 완료',
'downloadCompleteInfo': 'downloadCompleteInfo': '다운로드 완료, 총 {count}개 파일, 2초 후 자동으로 돌아갑니다',
'다운로드 완료, 총 {count}개 파일, 2초 후 자동으로 돌아갑니다',
// Meeting模块 - 录音功能 // Meeting模块 - 录音功能
'startRecording': '녹음 시작', 'startRecording': '녹음 시작',
@ -563,8 +550,7 @@ const Map<String, String> koKR = {
'chineseSimplified': '중국어 보통화(간체)', 'chineseSimplified': '중국어 보통화(간체)',
'meetingGenerateNow': '지금 생성', 'meetingGenerateNow': '지금 생성',
'keyEventsAnalyzed': '{count}개의 주요 이벤트를 분석했습니다.', 'keyEventsAnalyzed': '{count}개의 주요 이벤트를 분석했습니다.',
'aiAnalysisDesc': 'aiAnalysisDesc': 'AI 분석으로 녹음에서 주요 이벤트를 식별하고, 중요한 이벤트를 선택하여 AI로 생성할 수 있습니다.',
'AI 분석으로 녹음에서 주요 이벤트를 식별하고, 중요한 이벤트를 선택하여 AI로 생성할 수 있습니다.',
// Meeting模块 - 文件操作 // Meeting模块 - 文件操作
'importing': '가져오는 중...', 'importing': '가져오는 중...',
@ -611,8 +597,7 @@ const Map<String, String> koKR = {
'recentlyUsedNames': '최근 사용한 이름', 'recentlyUsedNames': '최근 사용한 이름',
'applyToCurrentParagraph': '현재 문단에 적용', 'applyToCurrentParagraph': '현재 문단에 적용',
'totalTime': '총 시간', 'totalTime': '총 시간',
'summarySpeakerWillBeUpdatedAutomatically': 'summarySpeakerWillBeUpdatedAutomatically': '요약의 발언자가 자동으로 업데이트됩니다',
'요약의 발언자가 자동으로 업데이트됩니다',
// Meeting模块 - 云端同步 // Meeting模块 - 云端同步
'syncToCloud': '클라우드에 동기화', 'syncToCloud': '클라우드에 동기화',
@ -655,52 +640,44 @@ const Map<String, String> koKR = {
'audioImport': '오디오 가져오기', 'audioImport': '오디오 가져오기',
'multipleExportFormats': '다양한 내보내기 형식', 'multipleExportFormats': '다양한 내보내기 형식',
'professionalSummaryTemplates': '전문 요약 템플릿', 'professionalSummaryTemplates': '전문 요약 템플릿',
'professionalTemplateDesc': 'professionalTemplateDesc': '업무 효율성을 높이는 전문 템플릿 디자인. 업종별 요구에 맞춰 맞춤 제작됩니다.',
'업무 효율성을 높이는 전문 템플릿 디자인. 업종별 요구에 맞춰 맞춤 제작됩니다.', 'customTemplateDesc': '필요에 따라 요약 프롬프트를 맞춤 설정하고, 이를 사용하여 필요한 요약을 생성할 수 있습니다.',
'customTemplateDesc':
'필요에 따라 요약 프롬프트를 맞춤 설정하고, 이를 사용하여 필요한 요약을 생성할 수 있습니다.',
'askAiDesc': 'askAiDesc':
'녹음에서 심층 정보를 지능적으로 추출하고, 데이터 표, 주요 논의 결론, 할 일 목록, 보고서 이메일 등 서식화된 콘텐츠를 원클릭으로 생성합니다.', '녹음에서 심층 정보를 지능적으로 추출하고, 데이터 표, 주요 논의 결론, 할 일 목록, 보고서 이메일 등 서식화된 콘텐츠를 원클릭으로 생성합니다.',
'visualMindMapDesc': 'visualMindMapDesc':
'요약을 넘어서 마인드맵으로 핵심 사항을 정리하고 시각화하여 전체 내용을 더 효과적으로 이해할 수 있습니다.', '요약을 넘어서 마인드맵으로 핵심 사항을 정리하고 시각화하여 전체 내용을 더 효과적으로 이해할 수 있습니다.',
'templateCommunityDesc': 'templateCommunityDesc': '사용자들이 만든 템플릿 라이브러리에서 영감을 발견하고 공유하세요.',
'사용자들이 만든 템플릿 라이브러리에서 영감을 발견하고 공유하세요.',
'speakerIdentificationDesc': 'speakerIdentificationDesc':
'오디오 전사에서 발언자 식별을 지원하여 회의 또는 통화 내용을 더 직관적으로 복원합니다. 동시에 요약의 정확도도 향상됩니다.', '오디오 전사에서 발언자 식별을 지원하여 회의 또는 통화 내용을 더 직관적으로 복원합니다. 동시에 요약의 정확도도 향상됩니다.',
'privateCloudSyncDesc': 'privateCloudSyncDesc':
'녹음과 전사 내용이 전용 클라우드 서버에 안전하게 저장되며, 업로드 및 다운로드 시 완전히 암호화되어 개인정보와 보안을 보장합니다.', '녹음과 전사 내용이 전용 클라우드 서버에 안전하게 저장되며, 업로드 및 다운로드 시 완전히 암호화되어 개인정보와 보안을 보장합니다.',
'aiVoiceEnhancementDesc': 'aiVoiceEnhancementDesc':
'AI 음성 향상은 다양한 노이즈 감소 설정을 지원하여 배경 소음을 지능적으로 제거하고, 음성 선명도를 높이며, 오디오 재생 품질을 향상시킵니다.', 'AI 음성 향상은 다양한 노이즈 감소 설정을 지원하여 배경 소음을 지능적으로 제거하고, 음성 선명도를 높이며, 오디오 재생 품질을 향상시킵니다.',
'audioImportDesc': 'audioImportDesc': '음성 메모, Google 드라이브 등 로컬 또는 타사 앱에서 오디오 파일을 쉽게 가져올 수 있습니다.',
'음성 메모, Google 드라이브 등 로컬 또는 타사 앱에서 오디오 파일을 쉽게 가져올 수 있습니다.',
'multipleExportFormatsDesc': 'multipleExportFormatsDesc':
'오디오 녹음, 전사 텍스트 및 요약을 다양한 형식(TXT, PDF, JPEG)으로 내보내 필요에 맞게 활용하세요.', '오디오 녹음, 전사 텍스트 및 요약을 다양한 형식(TXT, PDF, JPEG)으로 내보내 필요에 맞게 활용하세요.',
'upgradeMembership': '멤버십 업그레이드', 'upgradeMembership': '멤버십 업그레이드',
'yearlySubscription': '연간 구독', 'yearlySubscription': '연간 구독',
'monthlySubscription': '월간 구독', 'monthlySubscription': '월간 구독',
'proMonthly': 'Pro ¥60/월', 'proMonthly': 'Pro ¥60/월',
'proMonthlyDesc': 'proMonthlyDesc': '7일 무료 체험 후 ¥800/년. 체험 기간 종료 전 언제든지 취소 가능.',
'7일 무료 체험 후 ¥800/년. 체험 기간 종료 전 언제든지 취소 가능.',
'sevenDayTrial': '7일 무료 체험', 'sevenDayTrial': '7일 무료 체험',
'unlimitedMonthly': 'Unlimited ¥120/월', 'unlimitedMonthly': 'Unlimited ¥120/월',
'unlimitedMonthlyDesc': 'unlimitedMonthlyDesc': '7일 무료 체험 후 ¥1600/년. 체험 기간 종료 전 언제든지 취소 가능.',
'7일 무료 체험 후 ¥1600/년. 체험 기간 종료 전 언제든지 취소 가능.',
'trialNote': '*7일 무료 체험 후 연간 결제, 언제든지 취소 가능.', 'trialNote': '*7일 무료 체험 후 연간 결제, 언제든지 취소 가능.',
'proPrice': 'Pro ¥120', 'proPrice': 'Pro ¥120',
'proMonthlyPrice': '¥120/월', 'proMonthlyPrice': '¥120/월',
'subscribe': '구독', 'subscribe': '구독',
'unlimitedPrice': 'Unlimited ¥198', 'unlimitedPrice': 'Unlimited ¥198',
'unlimitedMonthlyPrice': '¥198/월', 'unlimitedMonthlyPrice': '¥198/월',
'upgradeNote': 'upgradeNote': '*구독 업그레이드 시, 기존 구독의 잔여 기간이 자동으로 계산되어 결제 계정으로 환불됩니다',
'*구독 업그레이드 시, 기존 구독의 잔여 기간이 자동으로 계산되어 결제 계정으로 환불됩니다',
'buyMoreTranscriptionTime': '전사 시간 추가 구매', 'buyMoreTranscriptionTime': '전사 시간 추가 구매',
'sixThousandMinutes': '6,000분', 'sixThousandMinutes': '6,000분',
'threeThousandMinutes': '3,000분', 'threeThousandMinutes': '3,000분',
'sixHundredMinutes': '600분', 'sixHundredMinutes': '600분',
'oneHundredTwentyMinutes': '120분', 'oneHundredTwentyMinutes': '120분',
'validityPeriod': '*유효 기간: ', 'validityPeriod': '*유효 기간: ',
'validityNote': 'validityNote': '구매 후 즉시 활성화되며, 활성화 후 2년간 유효합니다.',
'구매 후 즉시 활성화되며, 활성화 후 2년간 유효합니다.',
'purchase': '구매', 'purchase': '구매',
// Meeting模块 - 录音语言 // Meeting模块 - 录音语言
@ -733,8 +710,7 @@ const Map<String, String> koKR = {
"cloudSync": "클라우드 동기화료", "cloudSync": "클라우드 동기화료",
"memberService": "멤버 서비스", "memberService": "멤버 서비스",
"bindRewardTitle": "리워드", "bindRewardTitle": "리워드",
"bindRewardSimpleDesc": "bindRewardSimpleDesc": "첫 기기 연결 보상이 지급되었습니다. 확인을 탭하여 닫으세요.",
"첫 기기 연결 보상이 지급되었습니다. 확인을 탭하여 닫으세요.",
"joinDevice": "연결된 기기:", "joinDevice": "연결된 기기:",
"accountId": "계정 ID:", "accountId": "계정 ID:",
"systemSetting": "시스템 설정", "systemSetting": "시스템 설정",
@ -791,8 +767,7 @@ const Map<String, String> koKR = {
"noMacAddress": "MAC 주소 없음", "noMacAddress": "MAC 주소 없음",
"licenseCode": "라이선스 코드", "licenseCode": "라이선스 코드",
"confirmUnbind": "연결 해제 확인", "confirmUnbind": "연결 해제 확인",
"confirmUnbindMessage": "confirmUnbindMessage": "\"{deviceName}\" 기기의 연결을 해제하시겠습니까?",
"\"{deviceName}\" 기기의 연결을 해제하시겠습니까?",
"confirmUnbindAction": "연결 해제 확인", "confirmUnbindAction": "연결 해제 확인",
// Agent模块 - 主界面 // Agent模块 - 主界面
@ -983,8 +958,7 @@ const Map<String, String> koKR = {
"selectTargetLanguage": "대상 언어 선택", "selectTargetLanguage": "대상 언어 선택",
"me": "나", "me": "나",
"counterPart": "상대방", "counterPart": "상대방",
"bluetoothCallStateError": "bluetoothCallStateError": "블루투스 헤드셋이 휴대폰에 연결되어 있고 통화 중인지 확인해 주세요",
"블루투스 헤드셋이 휴대폰에 연결되어 있고 통화 중인지 확인해 주세요",
"autoDetect": "자동 감지", // 自动检测 "autoDetect": "자동 감지", // 自动检测
// 翻译模块 - 悬浮窗与权限 // 翻译模块 - 悬浮窗与权限
@ -1046,17 +1020,14 @@ const Map<String, String> koKR = {
"imageProcessingOrTranslationFailed": "imageProcessingOrTranslationFailed":
"이미지 처리 또는 번역에 실패했습니다. 다시 시도해 주세요.\nError: {error}", "이미지 처리 또는 번역에 실패했습니다. 다시 시도해 주세요.\nError: {error}",
"imageTooLarge": "이미지 크기가 4MB 제한을 초과합니다", "imageTooLarge": "이미지 크기가 4MB 제한을 초과합니다",
"imageTooLargeHint": "imageTooLargeHint": "이미지 크기가 4MB를 초과합니다. 품질이나 크기를 줄인 후 다시 시도해 주세요",
"이미지 크기가 4MB를 초과합니다. 품질이나 크기를 줄인 후 다시 시도해 주세요",
"emptyTranslationResult": "이미지 번역 API가 빈 결과를 반환했습니다", "emptyTranslationResult": "이미지 번역 API가 빈 결과를 반환했습니다",
"imageTranslationFailedTryLater": "imageTranslationFailedTryLater":
"이미지 번역 실패. 네트워크 문제 또는 요청 제한입니다. 나중에 다시 시도해 주세요", "이미지 번역 실패. 네트워크 문제 또는 요청 제한입니다. 나중에 다시 시도해 주세요",
"imageTranslationApiException": "imageTranslationApiException": "이미지 번역 API 예외. 네트워크를 확인하고 다시 시도해 주세요",
"이미지 번역 API 예외. 네트워크를 확인하고 다시 시도해 주세요",
"permissionRequired": "권한 필요", "permissionRequired": "권한 필요",
"cameraPermissionRequired": "사진 촬영에는 카메라 권한이 필요합니다", "cameraPermissionRequired": "사진 촬영에는 카메라 권한이 필요합니다",
"photoAlbumPermissionRequired": "photoAlbumPermissionRequired": "이미지를 선택하려면 사진 앨범 권한이 필요합니다",
"이미지를 선택하려면 사진 앨범 권한이 필요합니다",
"translationDetails": "번역 상세", "translationDetails": "번역 상세",
"originalImage": "원본 이미지", "originalImage": "원본 이미지",
"sourceLanguage": "원본 언어", "sourceLanguage": "원본 언어",
@ -1145,8 +1116,7 @@ const Map<String, String> koKR = {
// 权限模块 // 权限模块
'meetingStoragePermission': '저장소', 'meetingStoragePermission': '저장소',
'meetingStoragePermissionExplanation': 'meetingStoragePermissionExplanation': '오디오 파일을 선택하고 업로드하려면 저장소 권한이 필요합니다.',
'오디오 파일을 선택하고 업로드하려면 저장소 권한이 필요합니다.',
'meetingStoragePermissionPermanentDenial': 'meetingStoragePermissionPermanentDenial':
'저장소 권한을 영구적으로 거부하셨습니다. 이 기능을 계속 사용하려면 앱 설정에서 저장소 권한을 수동으로 활성화해 주세요.', '저장소 권한을 영구적으로 거부하셨습니다. 이 기능을 계속 사용하려면 앱 설정에서 저장소 권한을 수동으로 활성화해 주세요.',
'getPermissionStatusFailed': '권한 상태 가져오기 실패', 'getPermissionStatusFailed': '권한 상태 가져오기 실패',
@ -1168,8 +1138,7 @@ const Map<String, String> koKR = {
'locationInfo': '위치 정보', 'locationInfo': '위치 정보',
'phonePermissionDesc': '전화 걸기 기능에 사용됩니다', 'phonePermissionDesc': '전화 걸기 기능에 사용됩니다',
'smsPermissionDesc': '문자 보내기 기능에 사용됩니다', 'smsPermissionDesc': '문자 보내기 기능에 사용됩니다',
'alarmPermissionDesc': 'alarmPermissionDesc': '정확한 알람을 설정하여 알림이 정시에 울리도록 하는 데 사용됩니다',
'정확한 알람을 설정하여 알림이 정시에 울리도록 하는 데 사용됩니다',
'calendarWritePermissionDesc': '캘린더 이벤트 및 알림 생성에 사용됩니다', 'calendarWritePermissionDesc': '캘린더 이벤트 및 알림 생성에 사용됩니다',
'calendarFullAccessPermissionDesc': '캘린더 이벤트 및 알림 읽기 및 관리에 사용됩니다', 'calendarFullAccessPermissionDesc': '캘린더 이벤트 및 알림 읽기 및 관리에 사용됩니다',
'locationPermissionDesc': '현재 위치 정보 가져오기에 사용됩니다', 'locationPermissionDesc': '현재 위치 정보 가져오기에 사용됩니다',
@ -1183,59 +1152,43 @@ const Map<String, String> koKR = {
'permissionRequestError': '권한 요청 중 오류 발생', 'permissionRequestError': '권한 요청 중 오류 발생',
'phonePermissionDetailDesc': '전화 걸기 기능에는 전화 권한이 필요합니다', 'phonePermissionDetailDesc': '전화 걸기 기능에는 전화 권한이 필요합니다',
'smsPermissionDetailDesc': '문자 보내기 기능에는 문자 권한이 필요합니다', 'smsPermissionDetailDesc': '문자 보내기 기능에는 문자 권한이 필요합니다',
'alarmPermissionDetailDesc': 'alarmPermissionDetailDesc': '정확한 알람을 설정하고 알림이 정시에 울리도록 하려면 이 권한이 필요합니다',
'정확한 알람을 설정하고 알림이 정시에 울리도록 하려면 이 권한이 필요합니다',
'calendarWritePermissionDetailDesc': '캘린더 이벤트 생성에는 캘린더 쓰기 권한이 필요합니다', 'calendarWritePermissionDetailDesc': '캘린더 이벤트 생성에는 캘린더 쓰기 권한이 필요합니다',
'calendarFullAccessPermissionDetailDesc': '캘린더 이벤트 관리에는 전체 캘린더 권한이 필요합니다', 'calendarFullAccessPermissionDetailDesc': '캘린더 이벤트 관리에는 전체 캘린더 권한이 필요합니다',
'locationPermissionDetailDesc': '위치 정보 가져오기에는 위치 권한이 필요합니다', 'locationPermissionDetailDesc': '위치 정보 가져오기에는 위치 권한이 필요합니다',
'contactsPermissionDesc': '연락처 정보에 접근하는 데 사용됩니다', 'contactsPermissionDesc': '연락처 정보에 접근하는 데 사용됩니다',
'contactsPermissionDetailDesc': 'contactsPermissionDetailDesc': '전화 및 문자 기능에는 연락처를 선택하기 위해 연락처 권한이 필요합니다',
'전화 및 문자 기능에는 연락처를 선택하기 위해 연락처 권한이 필요합니다', 'bluetoothPermissionDesc': '블루투스 기기 연결 및 관리에 사용됩니다',
'bluetoothPermissionDesc': 'bluetoothPermissionDetailDesc': '블루투스 헤드폰 및 기타 기기에 연결하려면 블루투스 권한이 필요합니다',
'블루투스 기기 연결 및 관리에 사용됩니다',
'bluetoothPermissionDetailDesc':
'블루투스 헤드폰 및 기타 기기에 연결하려면 블루투스 권한이 필요합니다',
'bluetoothScanPermissionDesc': '주변 블루투스 기기 검색에 사용됩니다', 'bluetoothScanPermissionDesc': '주변 블루투스 기기 검색에 사용됩니다',
'bluetoothScanPermissionDetailDesc': 'bluetoothScanPermissionDetailDesc': '주변 블루투스 기기를 검색하려면 블루투스 검색 권한이 필요합니다',
'주변 블루투스 기기를 검색하려면 블루투스 검색 권한이 필요합니다',
'bluetoothConnectPermissionDesc': '블루투스 기기 연결에 사용됩니다', 'bluetoothConnectPermissionDesc': '블루투스 기기 연결에 사용됩니다',
'bluetoothConnectPermissionDetailDesc': 'bluetoothConnectPermissionDetailDesc': '블루투스 기기에 연결하려면 블루투스 연결 권한이 필요합니다',
'블루투스 기기에 연결하려면 블루투스 연결 권한이 필요합니다',
'notificationPermissionDesc': '알림 메시지 전송에 사용됩니다', 'notificationPermissionDesc': '알림 메시지 전송에 사용됩니다',
'notificationPermissionDetailDesc': 'notificationPermissionDetailDesc': '중요한 알림과 메시지를 보내려면 알림 권한이 필요합니다',
'중요한 알림과 메시지를 보내려면 알림 권한이 필요합니다',
'appNeedsPermissionForFullFunction': '앱이 전체 기능을 제공하려면 이 권한이 필요합니다', 'appNeedsPermissionForFullFunction': '앱이 전체 기능을 제공하려면 이 권한이 필요합니다',
'permanentDenialText': '{permission} 권한을 영구적으로 거부하셨습니다. 앱 설정에서 활성화해주세요', 'permanentDenialText': '{permission} 권한을 영구적으로 거부하셨습니다. 앱 설정에서 활성화해주세요',
'goToSettings': '설정으로 이동', 'goToSettings': '설정으로 이동',
'bluetoothScan': '블루투스 검색', 'bluetoothScan': '블루투스 검색',
'bluetoothConnect': '블루투스 연결', 'bluetoothConnect': '블루투스 연결',
'bluetoothScanExplanation': 'bluetoothScanExplanation': '앱이 주변 블루투스 기기를 검색하려면 블루투스 검색 권한이 필요합니다.',
'앱이 주변 블루투스 기기를 검색하려면 블루투스 검색 권한이 필요합니다.', 'bluetoothConnectExplanation': '앱이 블루투스 기기에 연결하려면 블루투스 연결 권한이 필요합니다.',
'bluetoothConnectExplanation': 'locationForBluetoothExplanation': '앱이 블루투스 기기를 검색하려면 위치 권한이 필요합니다.',
'앱이 블루투스 기기에 연결하려면 블루투스 연결 권한이 필요합니다.',
'locationForBluetoothExplanation':
'앱이 블루투스 기기를 검색하려면 위치 권한이 필요합니다.',
'bluetoothScanPermanentDenial': 'bluetoothScanPermanentDenial':
'블루투스 검색 권한이 영구적으로 거부되었습니다. 설정에서 수동으로 활성화해 주세요.', '블루투스 검색 권한이 영구적으로 거부되었습니다. 설정에서 수동으로 활성화해 주세요.',
'bluetoothConnectPermanentDenial': 'bluetoothConnectPermanentDenial':
'블루투스 연결 권한이 영구적으로 거부되었습니다. 설정에서 수동으로 활성화해 주세요.', '블루투스 연결 권한이 영구적으로 거부되었습니다. 설정에서 수동으로 활성화해 주세요.',
'locationPermanentDenial': 'locationPermanentDenial': '위치 권한이 영구적으로 거부되었습니다. 설정에서 수동으로 활성화해 주세요.',
'위치 권한이 영구적으로 거부되었습니다. 설정에서 수동으로 활성화해 주세요.',
'notificationPermission': '알림', 'notificationPermission': '알림',
'locationPermission': '위치', 'locationPermission': '위치',
'notificationPermissionExplanation': 'notificationPermissionExplanation': '음악 재생 상태를 표시하려면 알림 권한이 필요합니다.',
'음악 재생 상태를 표시하려면 알림 권한이 필요합니다.', 'locationPermissionExplanation': '현재 위치를 가져오려면 위치 권한이 필요합니다.',
'locationPermissionExplanation':
'현재 위치를 가져오려면 위치 권한이 필요합니다.',
'notificationPermissionPermanentDenial': 'notificationPermissionPermanentDenial':
'알림 권한을 영구적으로 거부하셨습니다. 설정에서 활성화해 주세요.', '알림 권한을 영구적으로 거부하셨습니다. 설정에서 활성화해 주세요.',
'locationPermissionPermanentDenial': 'locationPermissionPermanentDenial': '위치 권한을 영구적으로 거부하셨습니다. 설정에서 활성화해 주세요.',
'위치 권한을 영구적으로 거부하셨습니다. 설정에서 활성화해 주세요.',
'storagePermission': '저장소', 'storagePermission': '저장소',
'microphonePermissionExplanation': 'microphonePermissionExplanation': '오디오 콘텐츠를 녹음하려면 마이크 권한이 필요합니다.',
'오디오 콘텐츠를 녹음하려면 마이크 권한이 필요합니다.', 'storagePermissionExplanation': '오디오 파일을 선택하고 업로드하려면 저장소 권한이 필요합니다.',
'storagePermissionExplanation':
'오디오 파일을 선택하고 업로드하려면 저장소 권한이 필요합니다.',
'microphonePermissionPermanentDenial': 'microphonePermissionPermanentDenial':
'마이크 권한이 영구적으로 거부되었습니다. 이 기능을 계속 사용하려면 앱 설정에서 마이크 권한을 수동으로 활성화해 주세요.', '마이크 권한이 영구적으로 거부되었습니다. 이 기능을 계속 사용하려면 앱 설정에서 마이크 권한을 수동으로 활성화해 주세요.',
'storagePermissionPermanentDenial': 'storagePermissionPermanentDenial':
@ -1325,12 +1278,10 @@ const Map<String, String> koKR = {
'deviceAuthorizationFailedCheckCode': '기기 인증 실패, 인증 코드를 확인하세요', 'deviceAuthorizationFailedCheckCode': '기기 인증 실패, 인증 코드를 확인하세요',
'bluetoothGuideTitle': '수동 블루투스 활성화 필요', // 需要手动开启蓝牙 'bluetoothGuideTitle': '수동 블루투스 활성화 필요', // 需要手动开启蓝牙
'bluetoothGuideSteps': '다음 단계를 따라 주세요:', // 请按照以下步骤操作: 'bluetoothGuideSteps': '다음 단계를 따라 주세요:', // 请按照以下步骤操作:
'bluetoothGuideStep1': 'bluetoothGuideStep1': '블루투스 켜기: 설정 → 블루투스 → 켜기', // 开启蓝牙:设置 → 蓝牙 → 开启
'블루투스 켜기: 설정 → 블루투스 → 켜기', // 开启蓝牙:设置 → 蓝牙 → 开启
'bluetoothGuideStep2': 'bluetoothGuideStep2':
'기기 연결: "나의 기기"에서 기기를 찾아 탭하여 연결', // 连接设备:在"我的设备"中找到您的设备并点击连接 '기기 연결: "나의 기기"에서 기기를 찾아 탭하여 연결', // 连接设备:在"我的设备"中找到您的设备并点击连接
'bluetoothGuideStep3': 'bluetoothGuideStep3': '앱으로 돌아와서 페어링 과정을 계속하세요', // 返回应用继续配对流程
'앱으로 돌아와서 페어링 과정을 계속하세요', // 返回应用继续配对流程
'bluetoothGuideTip': 'bluetoothGuideTip':
'팁: 제어 센터에서 블루투스 아이콘을 길게 눌러 블루투스 설정에 빠르게 접근할 수도 있습니다', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 '팁: 제어 센터에서 블루투스 아이콘을 길게 눌러 블루투스 설정에 빠르게 접근할 수도 있습니다', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置
'iKnow': '알겠습니다', // 我知道了 'iKnow': '알겠습니다', // 我知道了
@ -1372,12 +1323,9 @@ const Map<String, String> koKR = {
"retryConnection": "연결 재시도", "retryConnection": "연결 재시도",
"ota_updateNow": "지금 업데이트", "ota_updateNow": "지금 업데이트",
"otaVersionInfoFailed": "버전 정보를 가져오지 못했습니다. 나중에 다시 시도해 주세요.", "otaVersionInfoFailed": "버전 정보를 가져오지 못했습니다. 나중에 다시 시도해 주세요.",
"otaDeviceInfoUnavailable": "otaDeviceInfoUnavailable": "기기 정보를 가져올 수 없습니다. 연결을 확인하고 다시 시도해 주세요.",
"기기 정보를 가져올 수 없습니다. 연결을 확인하고 다시 시도해 주세요.", "otaProductInfoUnavailable": "기기를 식별할 수 없습니다. 다시 연결하고 시도해 주세요.",
"otaProductInfoUnavailable": "otaFirmwareVersionInvalid": "펌웨어 버전이 비정상입니다. 다시 연결하고 시도해 주세요.",
"기기를 식별할 수 없습니다. 다시 연결하고 시도해 주세요.",
"otaFirmwareVersionInvalid":
"펌웨어 버전이 비정상입니다. 다시 연결하고 시도해 주세요.",
"keepConnectedDontClose": "기기를 연결된 상태로 유지하고 앱을 닫지 마세요", "keepConnectedDontClose": "기기를 연결된 상태로 유지하고 앱을 닫지 마세요",
"doNotDisconnect": "연결을 끊지 마세요", "doNotDisconnect": "연결을 끊지 마세요",
"charging": "충전 중", "charging": "충전 중",

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

File diff suppressed because it is too large

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

@ -658,95 +658,97 @@ const Map<String, String> lvLV = {
'transcriptionRecord': 'Transkripcijas ieraksts', 'transcriptionRecord': 'Transkripcijas ieraksts',
// Meeting模块 - 我的页面 // Meeting模块 - 我的页面
'transcriptionRecords': 'Transcription Records', 'transcriptionRecords': 'Transkripciju ieraksti',
'templateCommunity': 'Template Community', 'templateCommunity': 'Veidņu kopiena',
'comingSoon': 'Coming Soon', 'comingSoon': 'Drīzumā',
'integration': 'Integration', 'integration': 'Integrācija',
'voitransPrivateCloud': 'VOITRANS PRIVATE CLOUD', 'voitransPrivateCloud': 'VOITRANS PRIVATE CLOUD',
'enabled': 'Enabled', 'enabled': 'Ieslēgts',
'disabled': 'Disabled', 'disabled': 'Izslēgts',
'myVoitransDevice': 'My VOITRANS Device', 'myVoitransDevice': 'Mana VOITRANS ierīce',
'helpAndFeedback': 'Help & Feedback', 'helpAndFeedback': 'Palīdzība un atsauksmes',
'aboutVoitrans': 'About VOITRANS', 'aboutVoitrans': 'Par VOITRANS',
'meetingDays': 'Days', 'meetingDays': 'Dienas',
'meetingHours': 'Hours', 'meetingHours': 'Stundas',
'voitransAiMember': 'Voitrans AI Member', 'voitransAiMember': 'Voitrans AI dalība',
'unlockStarterMember': 'Unlock Starter Member', 'unlockStarterMember': 'Atbloķēt Starter dalību',
'bindDeviceToActivate': 'Bind Voitrans device to activate Starter membership', 'bindDeviceToActivate':
'unlockNow': 'Unlock Now', 'Saistiet Voitrans ierīci, lai aktivizētu Starter dalību',
'unlockNow': 'Atbloķēt tagad',
// Meeting模块 - 会员与升级 // Meeting模块 - 会员与升级
'comparison': 'Comparison', 'comparison': 'Salīdzinājums',
'detailedInfo': 'Detailed Information', 'detailedInfo': 'Detalizēta informācija',
'monthlyTranscriptionTime': 'Monthly Transcription Time', 'monthlyTranscriptionTime': 'Mēneša transkripcijas laiks',
'unlimited': 'Unlimited', 'unlimited': 'Neierobežots',
'professionalTemplates': 'Professional Templates', 'professionalTemplates': 'Profesionālas veidnes',
'limited': 'Limited', 'limited': 'Ierobežots',
'fullTemplates': 'Full Templates', 'fullTemplates': 'Pilnas veidnes',
'professionalTerms': 'Professional Terms', 'professionalTerms': 'Profesionāli termini',
'customTemplates': 'Custom Templates', 'customTemplates': 'Pielāgotas veidnes',
'visualMindMap': 'Visual Mind Map', 'visualMindMap': 'Vizuāla prāta karte',
'speakerIdentification': 'Speaker Identification', 'speakerIdentification': 'Runātāju atpazīšana',
'aiVoiceEnhancement': 'AI Voice Enhancement', 'aiVoiceEnhancement': 'AI balss uzlabošana',
'audioImport': 'Audio Import', 'audioImport': 'Audio importēšana',
'multipleExportFormats': 'Multiple Export Formats', 'multipleExportFormats': 'Vairāki eksporta formāti',
'professionalSummaryTemplates': 'Professional Summary Templates', 'professionalSummaryTemplates': 'Profesionālas kopsavilkuma veidnes',
'professionalTemplateDesc': 'professionalTemplateDesc':
'Professional template design to improve your work efficiency. Customized according to industry needs.', 'Profesionāls veidņu dizains, lai uzlabotu jūsu darba efektivitāti. Pielāgots nozares vajadzībām.',
'customTemplateDesc': 'customTemplateDesc':
'You can customize summary prompts according to your needs and use them to generate the required summaries.', 'Jūs varat pielāgot kopsavilkuma uzvednes atbilstoši savām vajadzībām un izmantot tās, lai ģenerētu nepieciešamos kopsavilkumus.',
'askAiDesc': 'askAiDesc':
'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', 'Gudri izvelciet dziļāku informāciju no ierakstiem, ģenerējiet datu tabulas, galvenos diskusiju secinājumus, uzdevumu sarakstus, atskaišu e‑pastus un citu formatētu saturu ar vienu klikšķi.',
'visualMindMapDesc': 'visualMindMapDesc':
'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', 'Vairāk nekā kopsavilkumi — organizējiet un vizualizējiet galvenos punktus prāta kartēs, lai efektīvāk izprastu visu tekstu.',
'templateCommunityDesc': 'templateCommunityDesc':
'Discover, share, and get inspiration from the template library created by users.', 'Atklājiet, kopīgojiet un smelieties iedvesmu no lietotāju veidoto veidņu bibliotēkas.',
'speakerIdentificationDesc': 'speakerIdentificationDesc':
'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', 'Audio transkripcija atbalstīs runātāju atpazīšanu, intuitīvāk atjaunojot sapulces vai telefona zvana saturu. Tajā pašā laikā kopsavilkums būs precīzāks.',
'privateCloudSyncDesc': 'privateCloudSyncDesc':
'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', 'Jūsu ieraksti un transkripcijas tiks droši glabāti īpašos mākoņserveros ar pilnīgu šifrēšanu augšupielādes un lejupielādes laikā, lai nodrošinātu privātumu un drošību.',
'aiVoiceEnhancementDesc': 'aiVoiceEnhancementDesc':
'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', 'AI balss uzlabošana atbalsta vairākus trokšņu slāpēšanas iestatījumus, gudri novērš fona troksni, uzlabo balss skaidrību un uzlabo audio atskaņošanas kvalitāti.',
'audioImportDesc': 'audioImportDesc':
'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', 'Viegli importējiet audio failus no ierīces vai trešo pušu lietotnēm, piemēram, balss piezīmēm, Google Drive u.c.',
'multipleExportFormatsDesc': 'multipleExportFormatsDesc':
'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', 'Eksportējiet audio ierakstus, transkripciju tekstu un kopsavilkumus dažādos formātos (TXT, PDF, JPEG), lai atbilstu jūsu vajadzībām.',
'upgradeMembership': 'Upgrade Your Membership', 'upgradeMembership': 'Jaunināt dalību',
'yearlySubscription': 'Yearly Subscription', 'yearlySubscription': 'Gada abonements',
'monthlySubscription': 'Monthly Subscription', 'monthlySubscription': 'Mēneša abonements',
'proMonthly': 'Pro ¥60/month', 'proMonthly': 'Pro ¥60/month',
'proMonthlyDesc': 'proMonthlyDesc':
'7-day free trial, then ¥800/year. Cancel anytime before trial ends.', '7 dienu bezmaksas izmēģinājums, pēc tam ¥800/gadā. Atceliet jebkurā laikā pirms izmēģinājuma beigām.',
'sevenDayTrial': '7-day Free Trial', 'sevenDayTrial': '7 dienu bezmaksas izmēģinājums',
'unlimitedMonthly': 'Unlimited ¥120/month', 'unlimitedMonthly': 'Unlimited ¥120/month',
'unlimitedMonthlyDesc': 'unlimitedMonthlyDesc':
'7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', '7 dienu bezmaksas izmēģinājums, pēc tam ¥1600/gadā. Atceliet jebkurā laikā pirms izmēģinājuma beigām.',
'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'trialNote':
'*Bezmaksas izmēģinājums 7 dienas, pēc tam rēķins reizi gadā; var atcelt jebkurā laikā.',
'proPrice': 'Pro ¥120', 'proPrice': 'Pro ¥120',
'proMonthlyPrice': '¥120/month', 'proMonthlyPrice': '¥120/month',
'subscribe': 'Subscribe', 'subscribe': 'Abonēt',
'unlimitedPrice': 'Unlimited ¥198', 'unlimitedPrice': 'Unlimited ¥198',
'unlimitedMonthlyPrice': '¥198/month', 'unlimitedMonthlyPrice': '¥198/month',
'upgradeNote': 'upgradeNote':
'*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', '*Pēc abonementa jaunināšanas atlikušās dienas no iepriekšējā abonementa tiks automātiski aprēķinātas un atmaksātas jūsu maksājumu kontā',
'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'buyMoreTranscriptionTime': 'Pirkt vairāk transkripcijas laika',
'sixThousandMinutes': '6,000 minutes', 'sixThousandMinutes': '6,000 minutes',
'threeThousandMinutes': '3,000 minutes', 'threeThousandMinutes': '3,000 minutes',
'sixHundredMinutes': '600 minutes', 'sixHundredMinutes': '600 minutes',
'oneHundredTwentyMinutes': '120 minutes', 'oneHundredTwentyMinutes': '120 minutes',
'validityPeriod': '*Validity Period: ', 'validityPeriod': '*Derīguma termiņš: ',
'validityNote': 'validityNote':
'Activated immediately after purchase, valid for 2 years after activation.', 'Aktivizējas uzreiz pēc iegādes, derīgs 2 gadus pēc aktivizēšanas.',
'purchase': 'Purchase', 'purchase': 'Iegādāties',
// Meeting模块 - 录音语言 // Meeting模块 - 录音语言
'recordLanguage': 'Recording Language', 'recordLanguage': 'Ieraksta valoda',
'cantonese': 'Cantonese', 'cantonese': 'Kantoniešu',
'sichuan': 'Sichuan Dialect', 'sichuan': 'Sičuaņas dialekts',
'shanghai': 'Shanghai Dialect', 'shanghai': 'Šanhajas dialekts',
// Meeting模块 - 错误提示 // Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Unknown Language', 'meetingUnknownLanguage': 'Nezināma valoda',
'analysisFailed': 'Analīze neizdevās, lūdzu, mēģiniet vēlreiz vēlāk', 'analysisFailed': 'Analīze neizdevās, lūdzu, mēģiniet vēlreiz vēlāk',
'transcriptionFailed': 'transcriptionFailed':
'Transkripcija neizdevās, lūdzu, mēģiniet vēlreiz vēlāk', 'Transkripcija neizdevās, lūdzu, mēģiniet vēlreiz vēlāk',
@ -768,10 +770,10 @@ const Map<String, String> lvLV = {
"translationRecharge": "Tulkošanas pārrakstīšana", "translationRecharge": "Tulkošanas pārrakstīšana",
"meetingAssistantRecharge": "Sapulces palīgs pārrakstīšana", "meetingAssistantRecharge": "Sapulces palīgs pārrakstīšana",
"cloudSync": "Tīkla sincronizācijas pārrakstīšana", "cloudSync": "Tīkla sincronizācijas pārrakstīšana",
"memberService": "Member Service", "memberService": "Dalībnieku pakalpojums",
"bindRewardTitle": "Rewards", "bindRewardTitle": "Atlīdzības",
"bindRewardSimpleDesc": "bindRewardSimpleDesc":
"First bind device reward has been issued. Tap OK to close.", "Pirmās ierīces piesaistes atlīdzība ir piešķirta. Pieskarieties OK, lai aizvērtu.",
"joinDevice": "Savienotā ierīce:", "joinDevice": "Savienotā ierīce:",
"accountId": "Konta ID:", "accountId": "Konta ID:",
"systemSetting": "Sistēmas iestatījumi", "systemSetting": "Sistēmas iestatījumi",
@ -822,20 +824,21 @@ const Map<String, String> lvLV = {
"loading": "Ielādē...", "loading": "Ielādē...",
// 设备管理模块 // 设备管理模块
"deviceTypeUnknown": "Unknown Device", "deviceTypeUnknown": "Nezināma ierīce",
"deviceTypeClassicBluetoothHeadset": "Classic Bluetooth Headset", "deviceTypeClassicBluetoothHeadset": "Klasiskās Bluetooth austiņas",
"deviceTypeBleBluetoothHeadset": "BLE Bluetooth Headset", "deviceTypeBleBluetoothHeadset": "BLE Bluetooth austiņas",
"deviceTypeSmartVoiceRecorder": "Smart Voice Recorder", "deviceTypeSmartVoiceRecorder": "Viedais balss ierakstītājs",
"deviceTypeSmartEye": "Smart Glasses", "deviceTypeSmartEye": "Viedās brilles",
"unbind": "Atsaistīt", "unbind": "Atsaistīt",
"noDevicesBound": "No devices bound yet", "noDevicesBound": "Vēl nav piesaistītu ierīču",
"pleaseBindDeviceFirst": "Please bind a device first to manage", "pleaseBindDeviceFirst":
"noMacAddress": "No MAC Address", "Lūdzu, vispirms piesaistiet ierīci, lai to pārvaldītu",
"licenseCode": "License Code", "noMacAddress": "Nav MAC adreses",
"confirmUnbind": "Confirm Unbind", "licenseCode": "Licences kods",
"confirmUnbind": "Apstiprināt atsaisti",
"confirmUnbindMessage": "confirmUnbindMessage":
"Are you sure you want to unbind device \"{deviceName}\"?", "Vai tiešām vēlaties atsaitīt ierīci \"{deviceName}\"?",
"confirmUnbindAction": "Confirm Unbind", "confirmUnbindAction": "Apstiprināt atsaisti",
// Agent模块 - 主界面 // Agent模块 - 主界面
"Lily": "Lily", "Lily": "Lily",
@ -866,22 +869,22 @@ const Map<String, String> lvLV = {
"loadFailedClickRetry": "loadFailedClickRetry":
"Ielāde neizdevās, noklikšķiniet, lai mēģinātu vēlreiz", "Ielāde neizdevās, noklikšķiniet, lai mēģinātu vēlreiz",
"swipeUpForMore": "Velciet uz augšu, lai redzētu vairāk", "swipeUpForMore": "Velciet uz augšu, lai redzētu vairāk",
"callingTool": "I'm helping you, please wait!", // 正在帮您,请稍等! "callingTool": "Es jums palīdzu, lūdzu, uzgaidiet!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断 "voice_interrupt": "Pārtraukt", // 语音打断
'voice_interrupt_tip': 'voice_interrupt_tip':
'Kad iespējots: AI netiks pārtraukts ar jūsu balsi, kamēr tas runā, un var apstrādāt tikai vienu sarunas kārtu vienlaicīgi. Lai sāktu jaunu kārtu, vienkārši pasakiet modināšanas vārdu.', 'Kad iespējots: AI netiks pārtraukts ar jūsu balsi, kamēr tas runā, un var apstrādāt tikai vienu sarunas kārtu vienlaicīgi. Lai sāktu jaunu kārtu, vienkārši pasakiet modināšanas vārdu.',
// Agent模块 - 预设提示词 // Agent模块 - 预设提示词
"presetMusic": "Play some music", // 来点音乐 "presetMusic": "Uzliec mūziku", // 来点音乐
"presetNavigation": "Navigation to", // 导航 "presetNavigation": "Navigēt uz", // 导航
"presetWeather": "Today's weather", // 今日天气 "presetWeather": "Šodienas laikapstākļi", // 今日天气
"presetNews": "Today's news", // 今日新闻 "presetNews": "Šodienas ziņas", // 今日新闻
"presetFood": "Nearby food", // 美食 "presetFood": "Ēdiens tuvumā", // 美食
"playSomeMusic": "Play some popular music", // 播放一些流行音乐 "playSomeMusic": "Atskaņo populāru mūziku", // 播放一些流行音乐
"navigationTo": "Please help me navigate to", // 导航到 "navigationTo": "Lūdzu, palīdzi man nokļūt uz", // 导航到
"todayWeather": "How's the weather today?", // 今日天气 "todayWeather": "Kādi šodien ir laikapstākļi?", // 今日天气
"todayNews": "What's the news today?", // 今日新闻 "todayNews": "Kādas ir šodienas ziņas?", // 今日新闻
"nearbyFood": "What delicious food is nearby?", // 美食 "nearbyFood": "Kāds garšīgs ēdiens ir tuvumā?", // 美食
// Agent模块 - 欢迎消息与权限 // Agent模块 - 欢迎消息与权限
'welcomeMessage': 'Sveiki! Esmu **SjaoJaņ**, es varu jums palīdzēt:\n\n' 'welcomeMessage': 'Sveiki! Esmu **SjaoJaņ**, es varu jums palīdzēt:\n\n'
@ -954,27 +957,27 @@ const Map<String, String> lvLV = {
"tsransit": "Sabiedriskais transports", "tsransit": "Sabiedriskais transports",
// Agent模块 - 导航选择 // Agent模块 - 导航选择
'selectNavigationApp': 'Select Navigation App', 'selectNavigationApp': 'Izvēlēties navigācijas lietotni',
'amapMap': 'Amap', 'amapMap': 'Amap',
'useAmapNavigation': 'Navigate with Amap', 'useAmapNavigation': 'Navigēt ar Amap',
'baiduMap': 'Baidu Maps', 'baiduMap': 'Baidu Maps',
'useBaiduNavigation': 'Navigate with Baidu Maps', 'useBaiduNavigation': 'Navigēt ar Baidu Maps',
'googleMap': 'Google Maps', 'googleMap': 'Google Maps',
'useGoogleNavigation': 'Navigate with Google Maps', 'useGoogleNavigation': 'Navigēt ar Google Maps',
'appleMap': 'Apple Maps', 'appleMap': 'Apple Maps',
'useAppleNavigation': 'Navigate with Apple Maps', 'useAppleNavigation': 'Navigēt ar Apple Maps',
'builtInNavigation': 'Built-in Navigation', 'builtInNavigation': 'Iebūvētā navigācija',
'useBuiltInNavigation': 'Navigate with built-in map', 'useBuiltInNavigation': 'Navigēt ar iebūvēto karti',
'navigationStartFailed': 'Failed to start navigation', 'navigationStartFailed': 'Neizdevās sākt navigāciju',
'cannotPlayMusicListRetryLater': 'cannotPlayMusicListRetryLater':
'Cannot play music list, please try again later', 'Nevar atskaņot mūzikas sarakstu, lūdzu, mēģiniet vēlāk',
'cannotPlaySong': 'Cannot play song', 'cannotPlaySong': 'Nevar atskaņot dziesmu',
'openMapError': 'Error opening map', 'openMapError': 'Kļūda, atverot karti',
'pleaseInstallAmapApp': 'Please install the Amap app first', 'pleaseInstallAmapApp': 'Lūdzu, vispirms instalējiet Amap lietotni',
'pleaseInstallBaiduMapApp': 'Please install the Baidu Maps app first', 'pleaseInstallBaiduMapApp': 'Lūdzu, vispirms instalējiet Baidu Maps lietotni',
'appleMapStartFailed': 'Apple Maps failed to start', 'appleMapStartFailed': 'Apple Maps neizdevās palaist',
'appleMapUnavailable': 'Apple Maps unavailable', 'appleMapUnavailable': 'Apple Maps nav pieejams',
'openAppleMapError': 'Error opening Apple Maps', 'openAppleMapError': 'Kļūda, atverot Apple Maps',
// Agent模块 - 天气卡片 // Agent模块 - 天气卡片
'weatherQuery': 'Laikapstākļu pieprasījums:', 'weatherQuery': 'Laikapstākļu pieprasījums:',
@ -1029,8 +1032,8 @@ const Map<String, String> lvLV = {
"strongWind": "Stiprs vējš", "strongWind": "Stiprs vējš",
// 翻译模块 - 中间层 // 翻译模块 - 中间层
"pictureTranslation": "Picture Translation", "pictureTranslation": "Attēlu tulkošana",
"textTranslation": "Text Translation", "textTranslation": "Teksta tulkošana",
// 翻译模块 - 主页 // 翻译模块 - 主页
"translationHistory": "Tulkošanas vēsture", "translationHistory": "Tulkošanas vēsture",
@ -1040,33 +1043,33 @@ const Map<String, String> lvLV = {
"phoneUser": "Tālruņa lietotājs", "phoneUser": "Tālruņa lietotājs",
"selectSourceLanguage": "Izvēlēties avota valodu", "selectSourceLanguage": "Izvēlēties avota valodu",
"selectTargetLanguage": "Izvēlēties mērķa valodu", "selectTargetLanguage": "Izvēlēties mērķa valodu",
"me": "Me", "me": "Es",
"counterPart": "Counterpart", "counterPart": "Sarunu biedrs",
"bluetoothCallStateError": "bluetoothCallStateError":
"Please make sure the Bluetooth headset is connected to the phone and in a call state", "Lūdzu, pārliecinieties, ka Bluetooth austiņas ir pievienotas tālrunim un notiek zvans",
"autoDetect": "Auto Detect", // 自动检测 "autoDetect": "Automātiska noteikšana", // 自动检测
// 翻译模块 - 文本翻译 // 翻译模块 - 文本翻译
"languageDetectionFailed": "Language detection failed", "languageDetectionFailed": "Neizdevās noteikt valodu",
// 翻译模块 - 悬浮窗与权限 // 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'Disable Floating Window', 'disableFloatingWindow': 'Atspējot peldošo logu',
'enableFloatingWindow': 'Enable Floating Window', 'enableFloatingWindow': 'Iespējot peldošo logu',
'permissionTip': 'Permission Tip', 'permissionTip': 'Atļauju padoms',
'micPermissionRequiredForRecording': 'micPermissionRequiredForRecording':
'Microphone permission is required for recording', 'Ierakstīšanai nepieciešama mikrofona atļauja',
'deleteTranslationRecordError': 'Error deleting translation record: @error', 'deleteTranslationRecordError': 'Kļūda, dzēšot tulkošanas ierakstu: @error',
"translationFailed": "Translation failed", "translationFailed": "Tulkošana neizdevās",
"translating": "Translating", "translating": "Tulko...",
"translate": "Translate", "translate": "Tulkot",
"pleaseInputText": "Please input text", "pleaseInputText": "Lūdzu, ievadiet tekstu",
"inputTextToTranslate": "Lūdzu, ievadiet tulkojamo tekstu", "inputTextToTranslate": "Lūdzu, ievadiet tulkojamo tekstu",
"textTooLong": "Text too long, max 5000 characters", "textTooLong": "Teksts ir pārāk garš, maksimums 5000 rakstzīmes",
// 翻译模块 - 历史记录 // 翻译模块 - 历史记录
"noTranslationHistory": "Vēl nav vēstures", "noTranslationHistory": "Vēl nav vēstures",
"historyRecords": "History Records", "historyRecords": "Vēstures ieraksti",
"clearResults": "Clear Results", "clearResults": "Notīrīt rezultātus",
"clearHistory": "Notīrīt vēsturi", "clearHistory": "Notīrīt vēsturi",
"clearHistoryConfirm": "clearHistoryConfirm":
"Vai esat pārliecināts, ka vēlaties notīrīt visu tulkošanas vēsturi? Šī darbība nav atgriezeniska.", "Vai esat pārliecināts, ka vēlaties notīrīt visu tulkošanas vēsturi? Šī darbība nav atgriezeniska.",
@ -1076,55 +1079,56 @@ const Map<String, String> lvLV = {
"Vai esat pārliecināts, ka vēlaties dzēst visus šīs sesijas tulkošanas ierakstus? Šī darbība nav atgriezeniska.", "Vai esat pārliecināts, ka vēlaties dzēst visus šīs sesijas tulkošanas ierakstus? Šī darbība nav atgriezeniska.",
// 翻译模块 - 图片翻译 // 翻译模块 - 图片翻译
"selectImageSource": "Select Image Source", "selectImageSource": "Izvēlēties attēla avotu",
"imagePreview": "Image Preview", "imagePreview": "Attēla priekšskatījums",
"translationResult": "Translation Result", "translationResult": "Tulkošanas rezultāts",
"recognitionResult": "Recognition Result", "recognitionResult": "Atpazīšanas rezultāts",
"translatedImagePreview": "Translated Image Preview", "translatedImagePreview": "Tulkotā attēla priekšskatījums",
"translatedImageLoadFailed": "Failed to load translated image", "translatedImageLoadFailed": "Neizdevās ielādēt tulkoto attēlu",
"pleaseSelectImage": "Please select an image", "pleaseSelectImage": "Lūdzu, izvēlieties attēlu",
"imageLoadFailed": "Image load failed", "imageLoadFailed": "Attēla ielāde neizdevās",
"imageQuality": "Image Quality", "imageQuality": "Attēla kvalitāte",
"maxSize": "Max Size", "maxSize": "Maksimālais izmērs",
"close": "Close", "close": "Aizvērt",
"setImageQuality": "Set Image Quality", "setImageQuality": "Iestatīt attēla kvalitāti",
"currentQuality": "Current quality: @value%", "currentQuality": "Pašreizējā kvalitāte: @value%",
"setMaxSize": "Set Max Size", "setMaxSize": "Iestatīt maksimālo izmēru",
"currentMaxSize": "Current: @pxpx", "currentMaxSize": "Pašreizējais: @pxpx",
"waitingForAction": "Waiting for action", "waitingForAction": "Gaida darbību",
"pleaseSelectImageToStart": "Please select an image to start", "pleaseSelectImageToStart": "Lūdzu, izvēlieties attēlu, lai sāktu",
"chooseImage": "Choose Image", "chooseImage": "Izvēlēties attēlu",
"openingCamera": "Opening camera...", "openingCamera": "Atver kameru...",
"openingPhotoAlbum": "Opening photo album...", "openingPhotoAlbum": "Atver fotoalbumu...",
"cancelled": "Cancelled", "cancelled": "Atcelts",
"userCancelledSelection": "User cancelled selection", "userCancelledSelection": "Lietotājs atcēla izvēli",
"translatingImage": "Translating Image", "translatingImage": "Tulko attēlu",
"callingImageTranslateService": "Calling image translation service...", "callingImageTranslateService": "Izsauc attēlu tulkošanas pakalpojumu...",
"savingRecord": "Saving Record", "savingRecord": "Saglabā ierakstu",
"savingTranslationResult": "Saving translation result...", "savingTranslationResult": "Saglabā tulkošanas rezultātu...",
"translationCompleted": "Translation Completed", "translationCompleted": "Tulkošana pabeigta",
"allStepsCompleted": "All steps completed", "allStepsCompleted": "Visas darbības pabeigtas",
"processingFailed": "Processing Failed", "processingFailed": "Apstrāde neizdevās",
"imageProcessingOrTranslationFailed": "imageProcessingOrTranslationFailed":
"Image processing or translation failed. Please retry.\nError: {error}", "Attēla apstrāde vai tulkošana neizdevās. Lūdzu, mēģiniet vēlreiz.\nKļūda: {error}",
"imageTooLarge": "Image size exceeds 4MB limit", "imageTooLarge": "Image size exceeds 4MB limit",
"imageTooLargeHint": "imageTooLargeHint":
"Image size exceeds 4MB. Reduce quality or dimensions and retry", "Image size exceeds 4MB. Reduce quality or dimensions and retry",
"emptyTranslationResult": "Image translation API returned empty result", "emptyTranslationResult": "Attēlu tulkošanas API atgrieza tukšu rezultātu",
"imageTranslationFailedTryLater": "imageTranslationFailedTryLater":
"Image translation failed. Network issue or rate limit. Please try later", "Attēla tulkošana neizdevās. Tīkla problēma vai ātruma ierobežojums. Lūdzu, mēģiniet vēlāk",
"imageTranslationApiException": "imageTranslationApiException":
"Image translation API exception. Check network and retry", "Attēlu tulkošanas API izņēmums. Pārbaudiet tīklu un mēģiniet vēlreiz",
"permissionRequired": "Permission Required", "permissionRequired": "Nepieciešama atļauja",
"cameraPermissionRequired": "Camera permission required to take photos", "cameraPermissionRequired":
"Lai uzņemtu fotoattēlus, nepieciešama kameras atļauja",
"photoAlbumPermissionRequired": "photoAlbumPermissionRequired":
"Photo album permission required to pick images", "Lai izvēlētos attēlus, nepieciešama fotoalbuma atļauja",
"translationDetails": "Translation Details", "translationDetails": "Tulkošanas detaļas",
"originalImage": "Original Image", "originalImage": "Oriģinālais attēls",
"sourceLanguage": "Source Language", "sourceLanguage": "Avota valoda",
"targetLanguage": "Target Language", "targetLanguage": "Mērķa valoda",
"translationTime": "Translation Time", "translationTime": "Tulkošanas laiks",
"shareInDevelopment": "Sharing feature under development", "shareInDevelopment": "Kopīgošanas funkcija tiek izstrādāta",
// 翻译模块 - 录音文件 // 翻译模块 - 录音文件
"translateAudioFiles": "Tulkot audio failus", "translateAudioFiles": "Tulkot audio failus",
@ -1222,32 +1226,32 @@ const Map<String, String> lvLV = {
'Konta pakalpojums ir inicializēts', // AccountService 已初始化 'Konta pakalpojums ir inicializēts', // AccountService 已初始化
// 权限模块 // 权限模块
'meetingStoragePermission': 'Storage', 'meetingStoragePermission': 'Glabātuve',
'meetingStoragePermissionExplanation': 'meetingStoragePermissionExplanation':
'We need access to storage permissions so you can select and upload audio files.', 'Mums ir nepieciešama glabātuves atļauja, lai jūs varētu izvēlēties un augšupielādēt audio failus.',
'meetingStoragePermissionPermanentDenial': 'meetingStoragePermissionPermanentDenial':
'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', 'Konstatēts, ka jūs esat neatgriezeniski atteicis glabātuves atļauju. Lai turpinātu izmantot šo funkciju, atveriet lietotnes iestatījumus un manuāli iespējojiet glabātuves atļauju.',
'getPermissionStatusFailed': 'Neizdevās iegūt atļaujas statusu', 'getPermissionStatusFailed': 'Neizdevās iegūt atļaujas statusu',
'communicationPermissions': 'Komunikācijas atļaujas', 'communicationPermissions': 'Komunikācijas atļaujas',
'bluetoothPermissions': 'Bluetooth Permissions', 'bluetoothPermissions': 'Bluetooth atļaujas',
'notificationPermissions': 'Notification Permissions', 'notificationPermissions': 'Paziņojumu atļaujas',
'storagePermissions': 'Storage Permissions', 'storagePermissions': 'Glabātuves atļaujas',
'microphonePermissions': 'Microphone Permissions', 'microphonePermissions': 'Mikrofona atļaujas',
'alarmPermissions': 'Alarm Permissions', 'alarmPermissions': 'Modinātāja atļaujas',
'calendarPermissions': 'Kalendāra atļaujas', 'calendarPermissions': 'Kalendāra atļaujas',
'locationPermissions': 'Atrašanās vietas atļaujas', 'locationPermissions': 'Atrašanās vietas atļaujas',
'phone': 'Tālrunis', 'phone': 'Tālrunis',
'sms': 'SMS', 'sms': 'SMS',
'contacts': 'Contacts', 'contacts': 'Kontakti',
'notification': 'Notification', 'notification': 'Paziņojumi',
'alarm': 'Alarm', 'alarm': 'Modinātājs',
'calendarWrite': 'Rakstīt kalendārā', 'calendarWrite': 'Rakstīt kalendārā',
'calendarFullAccess': 'Pilna piekļuve kalendāram', 'calendarFullAccess': 'Pilna piekļuve kalendāram',
'locationInfo': 'Atrašanās vietas informācija', 'locationInfo': 'Atrašanās vietas informācija',
'phonePermissionDesc': 'Izmanto zvanīšanas funkcijai', 'phonePermissionDesc': 'Izmanto zvanīšanas funkcijai',
'smsPermissionDesc': 'Izmanto SMS sūtīšanas funkcijai', 'smsPermissionDesc': 'Izmanto SMS sūtīšanas funkcijai',
'alarmPermissionDesc': 'alarmPermissionDesc':
'Used to set exact alarms to ensure reminders trigger on time', 'Izmanto precīzu modinātāju iestatīšanai, lai atgādinājumi ieslēgtos laikā',
'calendarWritePermissionDesc': 'calendarWritePermissionDesc':
'Izmanto kalendāra notikumu un atgādinājumu izveidei', 'Izmanto kalendāra notikumu un atgādinājumu izveidei',
'calendarFullAccessPermissionDesc': 'calendarFullAccessPermissionDesc':
@ -1266,72 +1270,73 @@ const Map<String, String> lvLV = {
'Zvanīšanas funkcijai nepieciešama tālruņa atļauja', 'Zvanīšanas funkcijai nepieciešama tālruņa atļauja',
'smsPermissionDetailDesc': 'SMS sūtīšanas funkcijai nepieciešama SMS atļauja', 'smsPermissionDetailDesc': 'SMS sūtīšanas funkcijai nepieciešama SMS atļauja',
'alarmPermissionDetailDesc': 'alarmPermissionDetailDesc':
'This permission is required to set exact alarms and ensure reminders trigger on time', 'Šī atļauja ir nepieciešama precīzu modinātāju iestatīšanai, lai atgādinājumi ieslēgtos laikā',
'calendarWritePermissionDetailDesc': 'calendarWritePermissionDetailDesc':
'Kalendāra notikumu izveidei nepieciešama kalendāra rakstīšanas atļauja', 'Kalendāra notikumu izveidei nepieciešama kalendāra rakstīšanas atļauja',
'calendarFullAccessPermissionDetailDesc': 'calendarFullAccessPermissionDetailDesc':
'Kalendāra notikumu pārvaldībai nepieciešama pilna kalendāra atļauja', 'Kalendāra notikumu pārvaldībai nepieciešama pilna kalendāra atļauja',
'locationPermissionDetailDesc': 'locationPermissionDetailDesc':
'Atrašanās vietas informācijas iegūšanai nepieciešama atrašanās vietas atļauja', 'Atrašanās vietas informācijas iegūšanai nepieciešama atrašanās vietas atļauja',
'contactsPermissionDesc': 'Used for accessing contact information', 'contactsPermissionDesc': 'Izmanto kontaktinformācijas piekļuvei',
'contactsPermissionDetailDesc': 'contactsPermissionDetailDesc':
'Phone call and SMS functionality requires contacts permission to select contacts', 'Zvanīšanas un SMS funkcijām ir nepieciešama kontaktu atļauja, lai izvēlētos kontaktus',
'bluetoothPermissionDesc': 'bluetoothPermissionDesc':
'Used for connecting and managing Bluetooth devices', 'Izmanto Bluetooth ierīču savienošanai un pārvaldībai',
'bluetoothPermissionDetailDesc': 'bluetoothPermissionDetailDesc':
'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'Lai savienotos ar Bluetooth austiņām un citām ierīcēm, nepieciešama Bluetooth atļauja',
'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', 'bluetoothScanPermissionDesc':
'Izmanto tuvumā esošo Bluetooth ierīču skenēšanai',
'bluetoothScanPermissionDetailDesc': 'bluetoothScanPermissionDetailDesc':
'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'Tuvumā esošo Bluetooth ierīču skenēšanai nepieciešama Bluetooth skenēšanas atļauja',
'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', 'bluetoothConnectPermissionDesc': 'Izmanto savienošanai ar Bluetooth ierīcēm',
'bluetoothConnectPermissionDetailDesc': 'bluetoothConnectPermissionDetailDesc':
'Connecting to Bluetooth devices requires Bluetooth connect permission', 'Savienošanai ar Bluetooth ierīcēm nepieciešama Bluetooth savienošanas atļauja',
'notificationPermissionDesc': 'Used for sending notification messages', 'notificationPermissionDesc': 'Izmanto paziņojumu ziņojumu sūtīšanai',
'notificationPermissionDetailDesc': 'notificationPermissionDetailDesc':
'App needs notification permission to send you important alerts and messages', 'Lietotnei ir nepieciešama paziņojumu atļauja, lai nosūtītu jums svarīgus brīdinājumus un ziņas',
'appNeedsPermissionForFullFunction': 'appNeedsPermissionForFullFunction':
'Lietotnei ir nepieciešama šī atļauja pilnai funkcionalitātei', 'Lietotnei ir nepieciešama šī atļauja pilnai funkcionalitātei',
'permanentDenialText': 'permanentDenialText':
'Jūs esat neatgriezeniski atteicis {permission} atļauju, lūdzu, dodieties uz lietotnes iestatījumiem, lai to iespējotu', 'Jūs esat neatgriezeniski atteicis {permission} atļauju, lūdzu, dodieties uz lietotnes iestatījumiem, lai to iespējotu',
'goToSettings': 'Doties uz iestatījumiem', 'goToSettings': 'Doties uz iestatījumiem',
'bluetoothScan': 'Bluetooth Scan', 'bluetoothScan': 'Bluetooth skenēšana',
'bluetoothConnect': 'Bluetooth Connect', 'bluetoothConnect': 'Bluetooth savienošana',
'bluetoothScanExplanation': 'bluetoothScanExplanation':
'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', 'Lietotnei ir nepieciešama Bluetooth skenēšanas atļauja, lai skenētu tuvumā esošās Bluetooth ierīces.',
'bluetoothConnectExplanation': 'bluetoothConnectExplanation':
'The app needs Bluetooth connect permission to connect to Bluetooth devices.', 'Lietotnei ir nepieciešama Bluetooth savienošanas atļauja, lai savienotos ar Bluetooth ierīcēm.',
'locationForBluetoothExplanation': 'locationForBluetoothExplanation':
'The app needs location permission to scan Bluetooth devices.', 'Lietotnei ir nepieciešama atrašanās vietas atļauja, lai skenētu Bluetooth ierīces.',
'bluetoothScanPermanentDenial': 'bluetoothScanPermanentDenial':
'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', 'Bluetooth skenēšanas atļauja ir neatgriezeniski atteikta; atveriet iestatījumus un manuāli to iespējojiet.',
'bluetoothConnectPermanentDenial': 'bluetoothConnectPermanentDenial':
'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', 'Bluetooth savienošanas atļauja ir neatgriezeniski atteikta; atveriet iestatījumus un manuāli to iespējojiet.',
'locationPermanentDenial': 'locationPermanentDenial':
'Location permission has been permanently denied, please go to settings to enable it manually.', 'Atrašanās vietas atļauja ir neatgriezeniski atteikta; atveriet iestatījumus un manuāli to iespējojiet.',
'notificationPermission': 'Notification', 'notificationPermission': 'Paziņojumi',
'locationPermission': 'Location', 'locationPermission': 'Atrašanās vieta',
'notificationPermissionExplanation': 'notificationPermissionExplanation':
'Notification permission is required to display music playback status.', 'Paziņojumu atļauja ir nepieciešama, lai parādītu mūzikas atskaņošanas statusu.',
'locationPermissionExplanation': 'locationPermissionExplanation':
'Location permission is required to get current location.', 'Atrašanās vietas atļauja ir nepieciešama, lai iegūtu pašreizējo atrašanās vietu.',
'notificationPermissionPermanentDenial': 'notificationPermissionPermanentDenial':
'You have permanently denied notification permission, please go to settings to enable it.', 'Jūs esat neatgriezeniski atteicis paziņojumu atļauju; atveriet iestatījumus un to iespējojiet.',
'locationPermissionPermanentDenial': 'locationPermissionPermanentDenial':
'You have permanently denied location permission, please go to settings to enable it.', 'Jūs esat neatgriezeniski atteicis atrašanās vietas atļauju; atveriet iestatījumus un to iespējojiet.',
'storagePermission': 'Storage', 'storagePermission': 'Glabātuve',
'microphonePermissionExplanation': 'microphonePermissionExplanation':
'We need microphone permission to record audio content.', 'Mums ir nepieciešama mikrofona atļauja, lai ierakstītu audio.',
'storagePermissionExplanation': 'storagePermissionExplanation':
'We need storage permission so you can select and upload audio files.', 'Mums ir nepieciešama glabātuves atļauja, lai jūs varētu izvēlēties un augšupielādēt audio failus.',
'microphonePermissionPermanentDenial': 'microphonePermissionPermanentDenial':
'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', 'Mikrofona atļauja ir neatgriezeniski atteikta. Lai turpinātu izmantot šo funkciju, atveriet lietotnes iestatījumus un manuāli iespējojiet mikrofona atļauju.',
'storagePermissionPermanentDenial': 'storagePermissionPermanentDenial':
'Storage permission has been permanently denied. To continue using this feature, please go to app settings to manually enable storage permission.', 'Glabātuves atļauja ir neatgriezeniski atteikta. Lai turpinātu izmantot šo funkciju, atveriet lietotnes iestatījumus un manuāli iespējojiet glabātuves atļauju.',
'permissionUtilNeed': 'Need ', 'permissionUtilNeed': 'Nepieciešama ',
'permissionUtilPermission': ' Permission', 'permissionUtilPermission': ' atļauja',
'permissionUtilRestricted': ' Permission Restricted', 'permissionUtilRestricted': ' atļauja ir ierobežota',
'permissionUtilRestrictedMessage': 'permissionUtilRestrictedMessage':
'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'Šī funkcija pašreizējā ierīcē nav pieejama vai ir ierobežota; pārbaudiet ierīces iestatījumus vai sistēmas ierobežojumus',
'permissionUtilConfirm': 'OK', 'permissionUtilConfirm': 'OK',
// 原生前台服务通知(Android) // 原生前台服务通知(Android)
@ -1422,27 +1427,28 @@ const Map<String, String> lvLV = {
'bleConnectionFailed': 'BLE savienojums neizdevās', 'bleConnectionFailed': 'BLE savienojums neizdevās',
'deviceAuthorizationFailedCheckCode': 'deviceAuthorizationFailedCheckCode':
'Ierīces autorizācija neizdevās, lūdzu, pārbaudiet autorizācijas kodu', 'Ierīces autorizācija neizdevās, lūdzu, pārbaudiet autorizācijas kodu',
'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideTitle':
'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: 'Nepieciešama manuāla Bluetooth aktivizēšana', // 需要手动开启蓝牙
'bluetoothGuideSteps': 'Lūdzu, sekojiet šiem soļiem:', // 请按照以下步骤操作:
'bluetoothGuideStep1': 'bluetoothGuideStep1':
'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 'Ieslēdziet Bluetooth: Iestatījumi → Bluetooth → Ieslēgt', // 开启蓝牙:设置 → 蓝牙 → 开启
'bluetoothGuideStep2': 'bluetoothGuideStep2':
'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 'Savienojiet ierīci: sadaļā "Manas ierīces" atrodiet savu ierīci un pieskarieties, lai savienotu', // 连接设备:在"我的设备"中找到您的设备并点击连接
'bluetoothGuideStep3': 'bluetoothGuideStep3':
'Return to app to continue pairing process', // 返回应用继续配对流程 'Atgriezieties lietotnē, lai turpinātu savienošanas pārī procesu', // 返回应用继续配对流程
'bluetoothGuideTip': 'bluetoothGuideTip':
'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'Padoms: varat arī turēt nospiestu Bluetooth ikonu Vadības centrā, lai ātri atvērtu Bluetooth iestatījumus', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置
'iKnow': 'I Know', // 我知道了 'iKnow': 'Sapratu', // 我知道了
// 配对模块 - 绑定奖励 // 配对模块 - 绑定奖励
"firstBindRewardTitle": "Welcome Reward", "firstBindRewardTitle": "Pirmā saistīšana",
"firstBindRewardDesc": "You've received binding rewards.", "firstBindRewardDesc": "Jūs esat saistīts ar kontu.",
"vipLevelLabel": "VIP Level:", "vipLevelLabel": "VIP Nivēls:",
"expiryLabel": "Expiration:", "expiryLabel": "Apmēr:",
"notActivated": "Not activated", "notActivated": "Nepieciešama aktivizācija",
"aiChatCreditsLabel": "AI Chat Credits:", "aiChatCreditsLabel": "AI Pieslēgšanas kredīti:",
"translationCreditsLabel": "Translation Credits:", "translationCreditsLabel": "Tulkošanas kredīti:",
"meetingCreditsLabel": "Meeting Credits:", "meetingCreditsLabel": "Mēnešēšanas kredīti:",
"ok": "OK", "ok": "OK",
// 用户反馈模块 // 用户反馈模块
@ -1474,13 +1480,14 @@ const Map<String, String> lvLV = {
"connectionFailed": "Savienojums neizdevās", "connectionFailed": "Savienojums neizdevās",
"retryConnection": "Mēģināt savienot vēlreiz", "retryConnection": "Mēģināt savienot vēlreiz",
"ota_updateNow": "Atjaunināt tagad", "ota_updateNow": "Atjaunināt tagad",
"otaVersionInfoFailed": "Failed to get version info. Please try again later.", "otaVersionInfoFailed":
"Neizdevās iegūt versijas informāciju. Lūdzu, mēģiniet vēlāk.",
"otaDeviceInfoUnavailable": "otaDeviceInfoUnavailable":
"Unable to get device info. Please check the connection and retry.", "Nevar iegūt ierīces informāciju. Pārbaudiet savienojumu un mēģiniet vēlreiz.",
"otaProductInfoUnavailable": "otaProductInfoUnavailable":
"Unable to identify the device. Please reconnect and retry.", "Nevar identificēt ierīci. Lūdzu, pievienojiet no jauna un mēģiniet vēlreiz.",
"otaFirmwareVersionInvalid": "otaFirmwareVersionInvalid":
"Firmware version is abnormal. Please reconnect and retry.", "Programmaparatūras versija ir nepareiza. Lūdzu, pievienojiet no jauna un mēģiniet vēlreiz.",
"keepConnectedDontClose": "Turiet ierīci savienotu, neaizveriet lietotni", "keepConnectedDontClose": "Turiet ierīci savienotu, neaizveriet lietotni",
"doNotDisconnect": "Neatvienojiet", "doNotDisconnect": "Neatvienojiet",
"charging": "Uzlādējas", "charging": "Uzlādējas",
@ -1489,57 +1496,57 @@ const Map<String, String> lvLV = {
"Izņemiet abas austiņas un pārliecinieties, ka abu baterijas līmenis ir virs 20%", "Izņemiet abas austiņas un pārliecinieties, ka abu baterijas līmenis ir virs 20%",
// OTA升级模块 - 弹窗与对话框 // OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': 'New version @version found', 'otaNewVersionFoundWithVersion': 'Atrasta jauna versija @version',
'otaConfirmUpdateNow': 'Update now?', 'otaConfirmUpdateNow': 'Atjaunināt tagad?',
'otaUpdate': 'Update', 'otaUpdate': 'Atjaunināt',
'otaUpgradeSuccess': 'Upgrade Successful', 'otaUpgradeSuccess': 'Jaunināšana veiksmīga',
'otaUpgradeCompleteRepair': 'otaUpgradeCompleteRepair':
'Firmware upgrade complete!\n\nDevice needs to be re-paired to work properly. Go to pairing page now?', 'Programmaparatūras jaunināšana pabeigta!\n\nIerīce jāsavieno pārī no jauna, lai tā darbotos pareizi. Vai doties uz savienošanas lapu tagad?',
'otaPairLater': 'Pair Later', 'otaPairLater': 'Savienot vēlāk',
'otaPairNow': 'Pair Now', 'otaPairNow': 'Savienot tagad',
'okConfirm': 'OK', 'okConfirm': 'OK',
// OTA升级模块 - 设备检查 // OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'Error checking BLE connection: @error', 'otaBleCheckErrorWithError': 'Kļūda, pārbaudot BLE savienojumu: @error',
'otaBleNotConnected': 'BLE Device Not Connected', 'otaBleNotConnected': 'BLE ierīce nav savienota',
'otaBleNeedConnection': 'otaBleNeedConnection':
'Firmware upgrade requires BLE device connection\nPlease ensure device is properly connected and try again', 'Programmaparatūras jaunināšanai nepieciešams BLE savienojums\nLūdzu, pārliecinieties, ka ierīce ir pareizi savienota, un mēģiniet vēlreiz',
'otaDeviceInfoUnavailableTitle': 'Device Info Unavailable', 'otaDeviceInfoUnavailableTitle': 'Ierīces informācija nav pieejama',
'otaCannotGetDeviceInfo': 'otaCannotGetDeviceInfo':
'Cannot get device info\nPlease reconnect device or try again later', 'Nevar iegūt ierīces informāciju\nLūdzu, pievienojiet ierīci no jauna vai mēģiniet vēlāk',
'otaBleCheckFailed': 'BLE Connection Check Failed', 'otaBleCheckFailed': 'BLE savienojuma pārbaude neizdevās',
'otaCannotGetDeviceInfoCheckConnection': 'otaCannotGetDeviceInfoCheckConnection':
'Cannot get device info, please check device connection', 'Nevar iegūt ierīces informāciju, lūdzu, pārbaudiet ierīces savienojumu',
'otaCannotGetProductInfoWithName': 'otaCannotGetProductInfoWithName':
'Cannot get product info, device name: @deviceName', 'Nevar iegūt produkta informāciju, ierīces nosaukums: @deviceName',
'otaCannotGetBatteryInfo': 'Cannot get valid battery info', 'otaCannotGetBatteryInfo': 'Cannot get valid battery info',
'otaLowBattery': 'Low Battery', 'otaLowBattery': 'Low Battery',
'otaSingleBatteryLow': 'otaSingleBatteryLow':
'Device battery too low for firmware upgrade\nRequirement: battery must be above 20%\nCurrent: @ear @battery%\nPlease charge and try again', 'Ierīces baterija ir pārāk zema programmaparatūras jaunināšanai\nPrasība: baterijai jābūt virs 20%\nPašlaik: @ear @battery%\nLūdzu, uzlādējiet un mēģiniet vēlreiz',
'otaDoubleBatteryLow': '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', 'Ierīces baterija ir pārāk zema programmaparatūras jaunināšanai\nPrasība: abām austiņām jābūt virs 20%\nPašlaik: Kreisā @left%, Labā @right%\nLūdzu, uzlādējiet un mēģiniet vēlreiz',
'otaBatteryCheckFailed': 'Battery Check Failed', 'otaBatteryCheckFailed': 'Baterijas pārbaude neizdevās',
// OTA升级模块 - 升级状态 // OTA升级模块 - 升级状态
'otaDefaultUpdateDesc': 'otaDefaultUpdateDesc':
'This update includes performance optimizations and bug fixes.', 'Šajā atjauninājumā ir veiktas veiktspējas optimizācijas un kļūdu labojumi.',
'otaGetLatestVersionFailed': 'Failed to get latest version info', 'otaGetLatestVersionFailed': 'Neizdevās iegūt jaunākās versijas informāciju',
'otaGetVersionInfoFailed': 'Failed to get version info', 'otaGetVersionInfoFailed': 'Neizdevās iegūt versijas informāciju',
'otaCheckingDeviceStatus': 'Checking device status...', 'otaCheckingDeviceStatus': 'Pārbauda ierīces statusu...',
'otaDownloadFailedCheckNetwork': 'otaDownloadFailedCheckNetwork':
'Download failed, please check network connection', 'Lejupielāde neizdevās, lūdzu, pārbaudiet tīkla savienojumu',
'otaDownloadFailed': 'Download Failed', 'otaDownloadFailed': 'Lejupielāde neizdevās',
'otaPreparingConnection': 'Preparing device connection...', 'otaPreparingConnection': 'Sagatavo ierīces savienojumu...',
'otaConnectingDevice': 'Connecting to device...', 'otaConnectingDevice': 'Savienojas ar ierīci...',
'otaUpgradeStarted': 'OTA upgrade started...', 'otaUpgradeStarted': 'OTA upgrade started...',
'otaUpgradeProgressWithPercent': 'Upgrade progress: @percent%', 'otaUpgradeProgressWithPercent': 'Upgrade progress: @percent%',
'otaUpgradeSuccessComplete': 'Upgrade completed successfully', 'otaUpgradeSuccessComplete': 'Jaunināšana pabeigta veiksmīgi',
'otaUpgradeFailedWithCode': 'Upgrade failed, error code: @code', 'otaUpgradeFailedWithCode': 'Jaunināšana neizdevās, kļūdas kods: @code',
'otaUpgradeFailedTitle': 'Upgrade Failed', 'otaUpgradeFailedTitle': 'Jaunināšana neizdevās',
'otaUpgradeFailedDesc': 'otaUpgradeFailedDesc':
'Please check device connection or update package, error code: @code', 'Lūdzu, pārbaudiet ierīces savienojumu vai atjauninājuma pakotni, kļūdas kods: @code',
'otaDeviceDisconnected': 'Device disconnected', 'otaDeviceDisconnected': 'Ierīce atvienota',
'otaDeviceConnected': 'Device connected', 'otaDeviceConnected': 'Ierīce savienota',
// 音乐模块 // 音乐模块
"noMusic": "Nav mūzikas", // 暂无音乐 "noMusic": "Nav mūzikas", // 暂无音乐

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

@ -1,3 +1,4 @@
// 马来西亚-马来语
const Map<String, String> msMY = { const Map<String, String> msMY = {
// 通用 // 通用
'continue': 'Teruskan', 'continue': 'Teruskan',
@ -701,42 +702,43 @@ const Map<String, String> msMY = {
'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.',
'multipleExportFormatsDesc': 'multipleExportFormatsDesc':
'Eksport rakaman audio, teks transkripsi dan ringkasan anda dalam pelbagai format (TXT, PDF, JPEG) mengikut keperluan.', 'Eksport rakaman audio, teks transkripsi dan ringkasan anda dalam pelbagai format (TXT, PDF, JPEG) mengikut keperluan.',
'upgradeMembership': 'Upgrade Your Membership', 'upgradeMembership': 'Naik taraf keahlian',
'yearlySubscription': 'Yearly Subscription', 'yearlySubscription': 'Langganan tahunan',
'monthlySubscription': 'Monthly Subscription', 'monthlySubscription': 'Langganan bulanan',
'proMonthly': 'Pro ¥60/month', 'proMonthly': 'Pro ¥60/bulan',
'proMonthlyDesc': 'proMonthlyDesc':
'7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'Percubaan percuma 7 hari, kemudian ¥800/tahun. Batal bila-bila masa sebelum percubaan tamat.',
'sevenDayTrial': '7-day Free Trial', 'sevenDayTrial': 'Percubaan percuma 7 hari',
'unlimitedMonthly': 'Unlimited ¥120/month', 'unlimitedMonthly': 'Tanpa had ¥120/bulan',
'unlimitedMonthlyDesc': 'unlimitedMonthlyDesc':
'7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'Percubaan percuma 7 hari, kemudian ¥1600/tahun. Batal bila-bila masa sebelum percubaan tamat.',
'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'trialNote':
'*Percubaan percuma 7 hari, kemudian dikenakan caj tahunan; boleh dibatalkan bila-bila masa.',
'proPrice': 'Pro ¥120', 'proPrice': 'Pro ¥120',
'proMonthlyPrice': '¥120/month', 'proMonthlyPrice': '¥120/bulan',
'subscribe': 'Subscribe', 'subscribe': 'Langgan',
'unlimitedPrice': 'Unlimited ¥198', 'unlimitedPrice': 'Unlimited ¥198',
'unlimitedMonthlyPrice': '¥198/month', 'unlimitedMonthlyPrice': '¥198/bulan',
'upgradeNote': 'upgradeNote':
'*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', '*Selepas menaik taraf langganan, baki hari langganan asal akan dikira secara automatik dan dipulangkan ke akaun pembayaran anda',
'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'buyMoreTranscriptionTime': 'Beli lebih masa transkripsi',
'sixThousandMinutes': '6,000 minutes', 'sixThousandMinutes': '6,000 minit',
'threeThousandMinutes': '3,000 minutes', 'threeThousandMinutes': '3,000 minit',
'sixHundredMinutes': '600 minutes', 'sixHundredMinutes': '600 minit',
'oneHundredTwentyMinutes': '120 minutes', 'oneHundredTwentyMinutes': '120 minit',
'validityPeriod': '*Validity Period: ', 'validityPeriod': '*Tempoh sah: ',
'validityNote': 'validityNote':
'Activated immediately after purchase, valid for 2 years after activation.', 'Diaktifkan serta-merta selepas pembelian, sah selama 2 tahun selepas pengaktifan.',
'purchase': 'Purchase', 'purchase': 'Beli',
// Meeting模块 - 录音语言 // Meeting模块 - 录音语言
'recordLanguage': 'Bahasa Rakaman', 'recordLanguage': 'Bahasa Rakaman',
'cantonese': 'Cantonese', 'cantonese': 'Kantonis',
'sichuan': 'Sichuan Dialect', 'sichuan': 'Dialek Sichuan',
'shanghai': 'Shanghai Dialect', 'shanghai': 'Dialek Shanghai',
// Meeting模块 - 错误提示 // Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Unknown Language', 'meetingUnknownLanguage': 'Bahasa tidak diketahui',
'analysisFailed': 'Analisis gagal, sila cuba lagi kemudian', 'analysisFailed': 'Analisis gagal, sila cuba lagi kemudian',
'transcriptionFailed': 'Transkripsi gagal, sila cuba lagi kemudian', 'transcriptionFailed': 'Transkripsi gagal, sila cuba lagi kemudian',
'summaryFailed': 'Ringkasan gagal, sila cuba lagi kemudian', 'summaryFailed': 'Ringkasan gagal, sila cuba lagi kemudian',
@ -853,21 +855,21 @@ const Map<String, String> msMY = {
"loadFailedClickRetry": "Gagal memuatkan, klik untuk cuba lagi", "loadFailedClickRetry": "Gagal memuatkan, klik untuk cuba lagi",
"swipeUpForMore": "Leret ke atas untuk lebih banyak", "swipeUpForMore": "Leret ke atas untuk lebih banyak",
"callingTool": "Saya sedang membantu anda, sila tunggu!", // 正在帮您,请稍等! "callingTool": "Saya sedang membantu anda, sila tunggu!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断 "voice_interrupt": "Hentikan", // 语音打断
'voice_interrupt_tip': 'voice_interrupt_tip':
'Apabila diaktifkan: AI tidak akan terganggu oleh suara anda semasa bercakap dan hanya boleh mengendalikan satu pusingan perbualan pada satu masa. Untuk memulakan pusingan baharu, sebut sahaja kata bangun.', 'Apabila diaktifkan: AI tidak akan terganggu oleh suara anda semasa bercakap dan hanya boleh mengendalikan satu pusingan perbualan pada satu masa. Untuk memulakan pusingan baharu, sebut sahaja kata bangun.',
// Agent模块 - 预设提示词 // Agent模块 - 预设提示词
"presetMusic": "Play some music", // 来点音乐 "presetMusic": "Mainkan muzik", // 来点音乐
"presetNavigation": "Navigation to", // 导航 "presetNavigation": "Navigasi ke", // 导航
"presetWeather": "Today's weather", // 今日天气 "presetWeather": "Cuaca hari ini", // 今日天气
"presetNews": "Today's news", // 今日新闻 "presetNews": "Berita hari ini", // 今日新闻
"presetFood": "Nearby food", // 美食 "presetFood": "Makanan berdekatan", // 美食
"playSomeMusic": "Play some popular music", // 播放一些流行音乐 "playSomeMusic": "Mainkan muzik popular", // 播放一些流行音乐
"navigationTo": "Tolong bantu saya menavigasi ke", // 导航到 "navigationTo": "Tolong bantu saya menavigasi ke", // 导航到
"todayWeather": "How's the weather today?", // 今日天气 "todayWeather": "Bagaimana cuaca hari ini?", // 今日天气
"todayNews": "What's the news today?", // 今日新闻 "todayNews": "Apakah berita hari ini?", // 今日新闻
"nearbyFood": "What delicious food is nearby?", // 美食 "nearbyFood": "Apa makanan sedap yang berdekatan?", // 附近有什么好吃的
// Agent模块 - 欢迎消息与权限 // Agent模块 - 欢迎消息与权限
'welcomeMessage': 'Helo! Saya **Lily**, saya boleh bantu anda:\n\n' 'welcomeMessage': 'Helo! Saya **Lily**, saya boleh bantu anda:\n\n'
@ -1417,14 +1419,14 @@ const Map<String, String> msMY = {
'iKnow': 'Saya Faham', // 我知道了 'iKnow': 'Saya Faham', // 我知道了
// 配对模块 - 绑定奖励 // 配对模块 - 绑定奖励
"firstBindRewardTitle": "Welcome Reward", "firstBindRewardTitle": "Pembelian Terlebih Dahulu",
"firstBindRewardDesc": "You've received binding rewards.", "firstBindRewardDesc": "Anda telah menerima premi binding.",
"vipLevelLabel": "VIP Level:", "vipLevelLabel": "Level VIP:",
"expiryLabel": "Expiration:", "expiryLabel": "Tamat tempoh:",
"notActivated": "Not activated", "notActivated": "Belum diaktifkan",
"aiChatCreditsLabel": "AI Chat Credits:", "aiChatCreditsLabel": "Kredit Chat AI:",
"translationCreditsLabel": "Translation Credits:", "translationCreditsLabel": "Kredit Terjemahan:",
"meetingCreditsLabel": "Meeting Credits:", "meetingCreditsLabel": "Kredit Meeting:",
"ok": "OK", "ok": "OK",
// 用户反馈模块 // 用户反馈模块

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

File diff suppressed because it is too large

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

@ -1,3 +1,4 @@
// 荷兰-荷兰语
const Map<String, String> nlNL = { const Map<String, String> nlNL = {
// 通用 // 通用
'continue': 'Doorgaan', 'continue': 'Doorgaan',
@ -218,55 +219,55 @@ const Map<String, String> nlNL = {
"scene": "Scenario", "scene": "Scenario",
// 用量统计模块 // 用量统计模块
"aiChat": "AI Chat", "aiChat": "AI-chat",
"translationStats": "Translation Statistics", "translationStats": "Vertaalstatistieken",
"meetingStats": "Meeting Statistics", "meetingStats": "Vergaderstatistieken",
"today": "Today", "today": "Vandaag",
"thisWeek": "This Week", "thisWeek": "Deze week",
"thisMonth": "This Month", "thisMonth": "Deze maand",
"history": "History", "history": "Geschiedenis",
"currentSessionStats": "Current Session Stats", "currentSessionStats": "Statistieken van huidige sessie",
"translationCount": "Translation Count", "translationCount": "Aantal vertalingen",
"sessionDuration": "Session Duration", "sessionDuration": "Sessieduur",
"characters": "Characters", "characters": "Tekens",
"recordingDuration": "Recording Duration", "recordingDuration": "Opnameduur",
"totalApiCalls": "Total API Calls", "totalApiCalls": "Totaal aantal API-aanroepen",
"sessionCount": "Session Count", "sessionCount": "Aantal sessies",
"totalCharacters": "Total Characters", "totalCharacters": "Totaal aantal tekens",
"apiCallStats": "API Call Stats", "apiCallStats": "Statistieken API-aanroepen",
"translationApi": "Translation API", "translationApi": "Vertaal-API",
"asr": "ASR", "asr": "ASR",
"tts": "TTS", "tts": "TTS",
"dataVolumeStats": "Data Volume Stats", "dataVolumeStats": "Statistieken datavolume",
"sourceTextCharacters": "Source Text Characters", "sourceTextCharacters": "Tekens in brontekst",
"ttsTextCharacters": "TTS Text Characters", "ttsTextCharacters": "TTS-tekens",
"effectiveAudioDuration": "Effective Audio Duration", "effectiveAudioDuration": "Effectieve audiolengte",
"totalSessionDuration": "Total Session Duration", "totalSessionDuration": "Totale sessieduur",
"costStats": "Cost Stats", "costStats": "Kostenstatistieken",
"estimatedCost": "Estimated Cost", "estimatedCost": "Geschatte kosten",
"dailyCostThreshold": "Daily Cost Threshold", "dailyCostThreshold": "Dagelijkse kostendrempel",
"monthlyCostThreshold": "Monthly Cost Threshold", "monthlyCostThreshold": "Maandelijkse kostendrempel",
"usageBehaviorStats": "Usage Behavior Stats", "usageBehaviorStats": "Statistieken gebruiksgedrag",
"mostUsedLanguagePair": "Most-used language pair", "mostUsedLanguagePair": "Meest gebruikte talenpaar",
"mostUsedMode": "Most-used mode", "mostUsedMode": "Meest gebruikte modus",
"asrApiCalls": "ASR Calls", "asrApiCalls": "ASR-aanroepen",
"totalAudioDuration": "Total Audio Duration", "totalAudioDuration": "Totale audiolengte",
"audioFileSize": "Audio File Size", "audioFileSize": "Grootte audiobestand",
"transcriptBytes": "Transcript Bytes", "transcriptBytes": "Transcriptbytes",
"loadFailed": "Load Failed", "loadFailed": "Laden mislukt",
"statsLoadFailedTryLater": "statsLoadFailedTryLater":
"Statistics failed to load. Please try again later.", "Statistieken konden niet worden geladen. Probeer het later opnieuw.",
"cleanupComplete": "Cleanup Complete", "cleanupComplete": "Cleanup Complete",
"cleanedOldData": "Cleaned data older than 90 days", "cleanedOldData": "Cleaned data older than 90 days",
"exportFeature": "Export Feature", "exportFeature": "Export Feature",
"exportInDevelopment": "Data export is under development", "exportInDevelopment": "Data export is under development",
// 商品模块 - 通用 // 商品模块 - 通用
'availablePackages': 'Available Packages', 'availablePackages': 'Beschikbare pakketten',
'remainingQuota': 'Remaining Quota', 'remainingQuota': 'Resterend tegoed',
'totalQuota': 'Total Quota', 'totalQuota': 'Totaal tegoed',
'remaining': 'Remaining', 'remaining': 'Resterend',
'featureDescription': 'Feature Description', 'featureDescription': 'Functiebeschrijving',
'paymentSuccess': 'Betaling geslaagd', 'paymentSuccess': 'Betaling geslaagd',
'paymentFailed': 'Betaling mislukt', 'paymentFailed': 'Betaling mislukt',
'gotIt': 'Begrepen', 'gotIt': 'Begrepen',
@ -325,12 +326,12 @@ const Map<String, String> nlNL = {
'alipayPaymentLaunchFailed': 'Kan Alipay niet starten', 'alipayPaymentLaunchFailed': 'Kan Alipay niet starten',
'cannotLaunchAlipayPayment': 'Kan Alipay niet starten', 'cannotLaunchAlipayPayment': 'Kan Alipay niet starten',
'alipayPaymentException': 'Alipay-uitzondering', 'alipayPaymentException': 'Alipay-uitzondering',
"insufficientIntegral": "Insufficient integral", "insufficientIntegral": "Onvoldoende punten",
"insufficientBalanceDesc": "insufficientBalanceDesc":
'Insufficient balance, please go to the corresponding recharge page to recharge.', 'Onvoldoende saldo. Ga naar de bijbehorende opwaardeerpagina om op te waarderen.',
"recharge": 'Go to Recharge', "recharge": 'Naar opwaarderen',
"aiMemberExpiredDesc": "aiMemberExpiredDesc":
'AI membership expired, please go to the membership recharge page to renew.', 'AI-lidmaatschap verlopen. Ga naar de opwaardeerpagina om te verlengen.',
// 商品模块 - AI商品页 // 商品模块 - AI商品页
'musicAndRecommendation': 'Music & Recommendation', 'musicAndRecommendation': 'Music & Recommendation',
@ -358,37 +359,38 @@ const Map<String, String> nlNL = {
'templatedMessagesAndScheduleReminders': 'templatedMessagesAndScheduleReminders':
'Template messages and schedule reminders', 'Template messages and schedule reminders',
'aiDisclaimer': 'aiDisclaimer':
'Features depend on device permissions, service availability, and network conditions.', 'Functies zijn afhankelijk van apparaatmachtigingen, beschikbaarheid van de service en netwerkomstandigheden.',
// 商品模块 - 翻译商品页 // 商品模块 - 翻译商品页
'realtimeTranscription': 'Real-time Transcription', 'realtimeTranscription': 'Realtime transcriptie',
'sceneLexicon': 'Scenario Glossary', 'sceneLexicon': 'Scenario-woordenlijst',
'subtitleDisplay': 'Subtitles', 'subtitleDisplay': 'Ondertitels',
'transHeaderDesc1': 'transHeaderDesc1':
'Real-time simultaneous interpretation and text translation with low-latency voice.', 'Realtime simultaan tolken en tekstvertaling met spraak met lage latentie.',
'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'transHeaderDesc2': 'Geschikt voor reizen, zaken, lezingen en onderwijs.',
'translateZhEn': 'Chinese-English translation', 'translateZhEn': 'Chinees-Engelse vertaling',
'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'lowLatencyVoiceBroadcast': 'Spraakweergave met lage latentie',
'multiLangTextTranslation': 'Multilingual text translation', 'multiLangTextTranslation': 'Meertalige tekstvertaling',
'termOptimizationContextPreserve': 'termOptimizationContextPreserve':
'Terminology optimization and context preservation', 'Terminologie-optimalisatie en contextbehoud',
'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'lexiconTourBusinessLife':
'personalVocabularyMemory': 'Personal vocabulary memory', 'Woordenlijsten voor reizen/zakelijk/dagelijks leven',
'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'personalVocabularyMemory': 'Persoonlijk woordenboekgeheugen',
'colorHighContrast': 'High color contrast', 'conversationSubtitleLargeText': 'Gespreksondertitels / grote-tekstmodus',
'colorHighContrast': 'Hoog kleurcontrast',
'transDisclaimer': 'transDisclaimer':
'Translation performance depends on microphone, network latency, and ambient noise.', 'Vertaalprestaties zijn afhankelijk van microfoon, netwerklatentie en omgevingsgeluid.',
// 商品模块 - 会议商品页 // 商品模块 - 会议商品页
'meetingRecording': 'Meeting Recording', 'meetingRecording': 'Vergaderopname',
'transcriptionAndSummary': 'Transcription & Summary', 'transcriptionAndSummary': 'Transcription & Summary',
'keywordSearch': 'Keyword Search', 'keywordSearch': 'Keyword Search',
'collaborationSharing': 'Collaboration & Sharing', 'collaborationSharing': 'Collaboration & Sharing',
'meetingHeaderDesc1': 'meetingHeaderDesc1':
'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', 'Audio opnemen, transcriberen, zoeken op trefwoord en automatische samenvatting om vergaderefficiëntie te verhogen.',
'meetingHeaderDesc2': 'meetingHeaderDesc2':
'Suitable for business meetings, class notes, and interview minutes.', 'Suitable for business meetings, class notes, and interview minutes.',
'meetingAutoRecording': 'Auto recording and segmentation', 'meetingAutoRecording': 'Automatisch opnemen en segmenteren',
'meetingSpeakerTagging': 'Speaker labeling', 'meetingSpeakerTagging': 'Speaker labeling',
'meetingLongAudioTranscription': 'Long audio transcription', 'meetingLongAudioTranscription': 'Long audio transcription',
'meetingKeyPointSummary': 'Key point extraction', 'meetingKeyPointSummary': 'Key point extraction',
@ -397,7 +399,7 @@ const Map<String, String> nlNL = {
'meetingExportSummary': 'Export minutes', 'meetingExportSummary': 'Export minutes',
'meetingMultiPlatformShare': 'Share across platforms', 'meetingMultiPlatformShare': 'Share across platforms',
'meetingDisclaimer': 'meetingDisclaimer':
'Use in quiet environments; performance depends on microphone and network.', 'Gebruik in een rustige omgeving; prestaties zijn afhankelijk van microfoon en netwerk.',
// 商品模块 - VIP会员页 // 商品模块 - VIP会员页
'benefitsOverview': 'Benefits overview', 'benefitsOverview': 'Benefits overview',
@ -411,7 +413,7 @@ const Map<String, String> nlNL = {
'longTermDiscountPlan': 'Long-term discount plan', 'longTermDiscountPlan': 'Long-term discount plan',
'generalPrivileges': 'General privileges', 'generalPrivileges': 'General privileges',
'earlyAccessNewFeatures': 'Early access to new features', 'earlyAccessNewFeatures': 'Early access to new features',
'crossDeviceSync': 'Cross-device sync', 'crossDeviceSync': 'Synchronisatie tussen apparaten',
'vipDisclaimer': 'vipDisclaimer':
'Actual benefits depend on the package details and may change with versions.', 'Actual benefits depend on the package details and may change with versions.',
@ -422,18 +424,18 @@ const Map<String, String> nlNL = {
'meet_001_name': 'Meeting Basic 100', 'meet_001_name': 'Meeting Basic 100',
'meet_002_name': 'Meeting Basic 500', 'meet_002_name': 'Meeting Basic 500',
'meet_003_name': 'Meeting Basic 1000', 'meet_003_name': 'Meeting Basic 1000',
'trans_001_name': 'Translation Basic 100', 'trans_001_name': 'Vertaling Basis 100',
'trans_002_name': 'Translation Basic 500', 'trans_002_name': 'Vertaling Basis 500',
'trans_003_name': 'Translation Basic 1000', 'trans_003_name': 'Vertaling Basis 1000',
'ai_001_desc': 'Includes 100 uses. Access core AI features.', 'ai_001_desc': 'Includes 100 uses. Access core AI features.',
'ai_002_desc': 'Includes 500 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.', 'ai_003_desc': 'Includes 1000 uses. Access core AI features.',
'meet_001_desc': 'Includes 100 meeting recordings/transcriptions.', 'meet_001_desc': 'Bevat 100 vergaderopnames/transcripties.',
'meet_002_desc': 'Includes 500 meeting recordings/transcriptions.', 'meet_002_desc': 'Bevat 500 vergaderopnames/transcripties.',
'meet_003_desc': 'Includes 1000 meeting recordings/transcriptions.', 'meet_003_desc': 'Bevat 1000 vergaderopnames/transcripties.',
'trans_001_desc': 'Includes 100 translations (voice/text).', 'trans_001_desc': 'Bevat 100 vertalingen (spraak/tekst).',
'trans_002_desc': 'Includes 500 translations (voice/text).', 'trans_002_desc': 'Bevat 500 vertalingen (spraak/tekst).',
'trans_003_desc': 'Includes 1000 translations (voice/text).', 'trans_003_desc': 'Bevat 1000 vertalingen (spraak/tekst).',
// 商品模块 - 页脚 // 商品模块 - 页脚
'appNameProvider': 'App: VoiTrans · Provided by: VoiTrans', 'appNameProvider': 'App: VoiTrans · Provided by: VoiTrans',
@ -489,37 +491,38 @@ const Map<String, String> nlNL = {
'recordingDetails': 'Opnamedetails', 'recordingDetails': 'Opnamedetails',
'aiSummary': 'AI-samenvatting', 'aiSummary': 'AI-samenvatting',
'meetingTranscript': 'Vergadertranscript', 'meetingTranscript': 'Vergadertranscript',
'files': 'Files', 'files': 'Bestanden',
'mine': 'Mine', 'mine': 'Mijn',
'connect': 'Connect', 'connect': 'Verbinden',
'allFiles': 'All Files', 'allFiles': 'Alle bestanden',
'searchInAllFiles': 'Search in all files', 'searchInAllFiles': 'Zoeken in alle bestanden',
'from': 'From', 'from': 'Van',
'sortBy': 'Sort by', 'sortBy': 'Sorteren op',
'creationTime': 'Creation Time', 'creationTime': 'Aanmaaktijd',
'bluetoothConnection': 'Bluetooth Connection', 'bluetoothConnection': 'Bluetooth-verbinding',
'meetingReconnect': 'Reconnect', 'meetingReconnect': 'Opnieuw verbinden',
'searching': 'Searching...', 'searching': 'Zoeken...',
'searchFailed': 'Search failed, please check if Bluetooth is enabled', 'searchFailed': 'Zoeken mislukt. Controleer of Bluetooth is ingeschakeld',
'aiPenNotFound': 'AI PEN device not found', 'aiPenNotFound': 'AI PEN-apparaat niet gevonden',
'connectedToAiPen': 'Connected to AI PEN device', 'connectedToAiPen': 'Verbonden met AI PEN-apparaat',
'checkingNewFiles': 'Checking for new files to import', 'checkingNewFiles': 'Nieuwe bestanden voor import controleren',
'startingWifi': 'Starting Wi-Fi...', 'startingWifi': 'Starting Wi-Fi...',
'newFilesDetected': 'New files detected, preparing to import', 'newFilesDetected': 'New files detected, preparing to import',
'noNewFiles': 'No new files to import', 'noNewFiles': 'No new files to import',
'connectingWifi': 'Connecting to Wi-Fi...', 'connectingWifi': 'Verbinden met wifi...',
'wifiConnected': 'Wi-Fi connected successfully', 'wifiConnected': 'Wifi-verbinding geslaagd',
'downloadingFiles': 'Downloading files...', 'downloadingFiles': 'Bestanden downloaden...',
'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadingFileProgress':
'downloadComplete': 'Download complete', 'Totaal {total} bestanden, bestand {current} downloaden',
'downloadComplete': 'Download voltooid',
'downloadCompleteInfo': 'downloadCompleteInfo':
'Download complete, {count} files in total, returning automatically in 2 seconds', 'Download voltooid, {count} bestanden in totaal. Keert over 2 seconden automatisch terug',
// Meeting模块 - 录音功能 // Meeting模块 - 录音功能
'startRecording': 'Start Recording', 'startRecording': 'Opname starten',
'liveRecording': 'Live Recording', 'liveRecording': 'Live opname',
'audioVideoRecording': 'Audio/Video Recording', 'audioVideoRecording': 'Audio-/video-opname',
'callRecording': 'Call Recording', 'callRecording': 'Gespreksopname',
'importAudio': 'Import Audio', 'importAudio': 'Import Audio',
'meetingRecordExitTitle': 'Opname verlaten', // 退出录音 'meetingRecordExitTitle': 'Opname verlaten', // 退出录音
'meetingRecordExitMessage': 'meetingRecordExitMessage':
@ -584,31 +587,32 @@ const Map<String, String> nlNL = {
'inputDescHint': 'Voer een beschrijving in', 'inputDescHint': 'Voer een beschrijving in',
'custom': 'Aangepast', 'custom': 'Aangepast',
'pleaseEnter': 'Voer alstublieft in', 'pleaseEnter': 'Voer alstublieft in',
'viewAll': 'View All', 'viewAll': 'Alles bekijken',
'recordingLanguage': 'Recording Language', 'recordingLanguage': 'Opnametaal',
'chineseSimplified': 'Chinese Mandarin (Simplified)', 'chineseSimplified': 'Chinees Mandarijn (vereenvoudigd)',
'meetingGenerateNow': 'Generate Now', 'meetingGenerateNow': 'Nu genereren',
'keyEventsAnalyzed': 'Analyzed {count} key events.', 'keyEventsAnalyzed': '{count} belangrijke gebeurtenissen geanalyseerd.',
'aiAnalysisDesc': 'aiAnalysisDesc':
'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', 'AI-analyse identificeert belangrijke gebeurtenissen in opnames, zodat u belangrijke gebeurtenissen kunt selecteren voor AI-generatie.',
// Meeting模块 - 文件操作 // Meeting模块 - 文件操作
'importing': 'Importing...', 'importing': 'Importing...',
'batchImporting': 'Batch importing...', 'batchImporting': 'Batch importing...',
'importingLocalRecordings': 'Importing local recordings...', 'importingLocalRecordings': 'Lokale opnames importeren...',
'importFailed': 'Import file failed: {filePath}, error: {error}', 'importFailed': 'Importeren mislukt: {filePath}, fout: {error}',
'importSuccess': 'Successfully imported {count} local recordings', 'importSuccess': '{count} lokale opnames succesvol geïmporteerd',
'importError': 'Import failed: {error}', 'importError': 'Importeren mislukt: {error}',
'pleaseSelectAudioFile': 'Please select audio file', 'pleaseSelectAudioFile': 'Selecteer een audiobestand',
'shareAudio': 'Share Meeting Audio', 'shareAudio': 'Share Meeting Audio',
'shareComplete': 'Share complete!', 'shareComplete': 'Share complete!',
'shareFailed': 'Share failed: {error}', 'shareFailed': 'Delen mislukt: {error}',
'fileProcessingFailed': 'File processing failed: {filePath}, error: {error}', 'fileProcessingFailed':
'Bestandsverwerking mislukt: {filePath}, fout: {error}',
// Meeting模块 - 思维导图 // Meeting模块 - 思维导图
'saveMindMap': 'Mindmap opslaan', 'saveMindMap': 'Mindmap opslaan',
'shareMindMap': 'Share Mind Map', 'shareMindMap': 'Share Mind Map',
'shareSuccess': 'Share Success', 'shareSuccess': 'Delen geslaagd',
// Meeting模块 - AI问答 // Meeting模块 - AI问答
'askAI': 'Ask AI ...', 'askAI': 'Ask AI ...',
@ -642,29 +646,30 @@ const Map<String, String> nlNL = {
'Summary speakers will be updated automatically', 'Summary speakers will be updated automatically',
// Meeting模块 - 云端同步 // Meeting模块 - 云端同步
'syncToCloud': 'Sync to Cloud', 'syncToCloud': 'Synchroniseren met cloud',
'syncToCloudTip': '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).', 'Synchroniseer uw opnames automatisch naar de cloud; u kunt opnames afspelen, beheren en delen via elke VOITRANS-app of VOITRANS Web (web.voitrans.com).',
'syncToVoitransApp': 'Sync VOITRANS APP', 'syncToVoitransApp': 'Synchroniseren met VOITRANS-app',
'transcriptionRecord': 'Transcription Record', 'transcriptionRecord': 'Transcriptierecord',
// Meeting模块 - 我的页面 // Meeting模块 - 我的页面
'transcriptionRecords': 'Transcription Records', 'transcriptionRecords': 'Transcriptierecords',
'templateCommunity': 'Template Community', 'templateCommunity': 'Sjablooncommunity',
'comingSoon': 'Coming Soon', 'comingSoon': 'Binnenkort',
'integration': 'Integration', 'integration': 'Integratie',
'voitransPrivateCloud': 'VOITRANS PRIVATE CLOUD', 'voitransPrivateCloud': 'VOITRANS PRIVATE CLOUD',
'enabled': 'Enabled', 'enabled': 'Ingeschakeld',
'disabled': 'Disabled', 'disabled': 'Uitgeschakeld',
'myVoitransDevice': 'My VOITRANS Device', 'myVoitransDevice': 'Mijn VOITRANS-apparaat',
'helpAndFeedback': 'Help & Feedback', 'helpAndFeedback': 'Help & Feedback',
'aboutVoitrans': 'About VOITRANS', 'aboutVoitrans': 'About VOITRANS',
'meetingDays': 'Days', 'meetingDays': 'Days',
'meetingHours': 'Hours', 'meetingHours': 'Hours',
'voitransAiMember': 'Voitrans AI Member', 'voitransAiMember': 'Voitrans AI Member',
'unlockStarterMember': 'Unlock Starter Member', 'unlockStarterMember': 'Unlock Starter Member',
'bindDeviceToActivate': 'Bind Voitrans device to activate Starter membership', 'bindDeviceToActivate':
'unlockNow': 'Unlock Now', 'Koppel Voitrans-apparaat om Starter-lidmaatschap te activeren',
'unlockNow': 'Nu ontgrendelen',
// Meeting模块 - 会员与升级 // Meeting模块 - 会员与升级
'comparison': 'Comparison', 'comparison': 'Comparison',
@ -687,7 +692,7 @@ const Map<String, String> nlNL = {
'customTemplateDesc': 'customTemplateDesc':
'You can customize summary prompts according to your needs and use them to generate the required summaries.', 'You can customize summary prompts according to your needs and use them to generate the required summaries.',
'askAiDesc': 'askAiDesc':
'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', 'Haal op intelligente wijze diepere informatie uit opnames en genereer met één tik datatabellen, belangrijke conclusies, takenlijsten, rapport-e-mails en andere opgemaakte inhoud.',
'visualMindMapDesc': 'visualMindMapDesc':
'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.',
'templateCommunityDesc': 'templateCommunityDesc':
@ -695,13 +700,13 @@ const Map<String, String> nlNL = {
'speakerIdentificationDesc': 'speakerIdentificationDesc':
'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.',
'privateCloudSyncDesc': 'privateCloudSyncDesc':
'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', 'Uw opnames en transcripties worden veilig opgeslagen op speciale cloudservers, met volledige versleuteling tijdens upload en download om privacy en veiligheid te waarborgen.',
'aiVoiceEnhancementDesc': 'aiVoiceEnhancementDesc':
'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.',
'audioImportDesc': 'audioImportDesc':
'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.',
'multipleExportFormatsDesc': 'multipleExportFormatsDesc':
'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', 'Exporteer uw audio-opnames, transcriptietekst en samenvattingen in verschillende indelingen (TXT, PDF, JPEG) naar wens.',
'upgradeMembership': 'Upgrade Your Membership', 'upgradeMembership': 'Upgrade Your Membership',
'yearlySubscription': 'Yearly Subscription', 'yearlySubscription': 'Yearly Subscription',
'monthlySubscription': 'Monthly Subscription', 'monthlySubscription': 'Monthly Subscription',
@ -731,7 +736,7 @@ const Map<String, String> nlNL = {
'purchase': 'Purchase', 'purchase': 'Purchase',
// Meeting模块 - 录音语言 // Meeting模块 - 录音语言
'recordLanguage': 'Recording Language', 'recordLanguage': 'Opnametaal',
'cantonese': 'Cantonese', 'cantonese': 'Cantonese',
'sichuan': 'Sichuan Dialect', 'sichuan': 'Sichuan Dialect',
'shanghai': 'Shanghai Dialect', 'shanghai': 'Shanghai Dialect',
@ -758,10 +763,10 @@ const Map<String, String> nlNL = {
"translationRecharge": "Vertalingspayering", "translationRecharge": "Vertalingspayering",
"meetingAssistantRecharge": "Vergaderassistentpayering", "meetingAssistantRecharge": "Vergaderassistentpayering",
"cloudSync": "Cloud-synchronisatiepayering", "cloudSync": "Cloud-synchronisatiepayering",
"memberService": "Member Service", "memberService": "Ledenservice",
"bindRewardTitle": "Rewards", "bindRewardTitle": "Beloningen",
"bindRewardSimpleDesc": "bindRewardSimpleDesc":
"First bind device reward has been issued. Tap OK to close.", "Beloning voor het eerste koppelen van een apparaat is uitgegeven. Tik op OK om te sluiten.",
"joinDevice": "Verbonden apparaat:", "joinDevice": "Verbonden apparaat:",
"accountId": "Account-ID:", "accountId": "Account-ID:",
"systemSetting": "Systeeminstellingen", "systemSetting": "Systeeminstellingen",
@ -810,20 +815,20 @@ const Map<String, String> nlNL = {
"loading": "Laden...", "loading": "Laden...",
// 设备管理模块 // 设备管理模块
"deviceTypeUnknown": "Unknown Device", "deviceTypeUnknown": "Onbekend apparaat",
"deviceTypeClassicBluetoothHeadset": "Classic Bluetooth Headset", "deviceTypeClassicBluetoothHeadset": "Klassieke Bluetooth-headset",
"deviceTypeBleBluetoothHeadset": "BLE Bluetooth Headset", "deviceTypeBleBluetoothHeadset": "BLE Bluetooth-headset",
"deviceTypeSmartVoiceRecorder": "Smart Voice Recorder", "deviceTypeSmartVoiceRecorder": "Slimme voicerecorder",
"deviceTypeSmartEye": "Smart Glasses", "deviceTypeSmartEye": "Slimme bril",
"unbind": "Ontkoppelen", "unbind": "Ontkoppelen",
"noDevicesBound": "No devices bound yet", "noDevicesBound": "Nog geen apparaten gekoppeld",
"pleaseBindDeviceFirst": "Please bind a device first to manage", "pleaseBindDeviceFirst": "Koppel eerst een apparaat om te beheren",
"noMacAddress": "No MAC Address", "noMacAddress": "Geen MAC-adres",
"licenseCode": "License Code", "licenseCode": "Licentiecode",
"confirmUnbind": "Confirm Unbind", "confirmUnbind": "Ontkoppelen bevestigen",
"confirmUnbindMessage": "confirmUnbindMessage":
"Are you sure you want to unbind device \"{deviceName}\"?", "Weet u zeker dat u apparaat \"{deviceName}\" wilt ontkoppelen?",
"confirmUnbindAction": "Confirm Unbind", "confirmUnbindAction": "Ontkoppelen bevestigen",
// Agent模块 - 主界面 // Agent模块 - 主界面
"Lily": "Lily", "Lily": "Lily",
@ -854,22 +859,22 @@ const Map<String, String> nlNL = {
"loadMoreMessages": "Meer berichten laden...", "loadMoreMessages": "Meer berichten laden...",
"loadFailedClickRetry": "Laden mislukt, klik om opnieuw te proberen", "loadFailedClickRetry": "Laden mislukt, klik om opnieuw te proberen",
"swipeUpForMore": "Veeg omhoog voor meer", "swipeUpForMore": "Veeg omhoog voor meer",
"callingTool": "I'm helping you, please wait!", // 正在帮您,请稍等! "callingTool": "Ik help u, even geduld!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断 "voice_interrupt": "Onderbreken", // 语音打断
'voice_interrupt_tip': '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.', '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模块 - 预设提示词 // Agent模块 - 预设提示词
"presetMusic": "Play some music", // 来点音乐 "presetMusic": "Speel muziek", // 来点音乐
"presetNavigation": "Navigation to", // 导航 "presetNavigation": "Navigeer naar", // 导航
"presetWeather": "Today's weather", // 今日天气 "presetWeather": "Weer vandaag", // 今日天气
"presetNews": "Today's news", // 今日新闻 "presetNews": "Nieuws vandaag", // 今日新闻
"presetFood": "Nearby food", // 美食 "presetFood": "Eten in de buurt", // 美食
"playSomeMusic": "Play some popular music", // 播放一些流行音乐 "playSomeMusic": "Speel populaire muziek", // 播放一些流行音乐
"navigationTo": "Please help me navigate to", // 导航到 "navigationTo": "Navigeer naar", // 导航到
"todayWeather": "How's the weather today?", // 今日天气 "todayWeather": "Hoe is het weer vandaag?", // 今日天气
"todayNews": "What's the news today?", // 今日新闻 "todayNews": "Wat is het nieuws vandaag?", // 今日新闻
"nearbyFood": "What delicious food is nearby?", // 美食 "nearbyFood": "Waar kan ik lekker eten in de buurt?", // 附近有什么好吃的
// Agent模块 - 欢迎消息与权限 // Agent模块 - 欢迎消息与权限
'welcomeMessage': 'Hallo! Ik ben **Lily**, ik kan u helpen met:\n\n' 'welcomeMessage': 'Hallo! Ik ben **Lily**, ik kan u helpen met:\n\n'
@ -1017,8 +1022,8 @@ const Map<String, String> nlNL = {
"strongWind": "Harde wind", "strongWind": "Harde wind",
// 翻译模块 - 中间层 // 翻译模块 - 中间层
"pictureTranslation": "Picture Translation", "pictureTranslation": "Afbeeldingsvertaling",
"textTranslation": "Text Translation", "textTranslation": "Tekstvertaling",
// 翻译模块 - 主页 // 翻译模块 - 主页
"translationHistory": "Vertaalgeschiedenis", "translationHistory": "Vertaalgeschiedenis",
@ -1028,14 +1033,14 @@ const Map<String, String> nlNL = {
"phoneUser": "Telefoongebruiker", "phoneUser": "Telefoongebruiker",
"selectSourceLanguage": "Selecteer brontaal", "selectSourceLanguage": "Selecteer brontaal",
"selectTargetLanguage": "Selecteer doeltaal", "selectTargetLanguage": "Selecteer doeltaal",
"me": "Me", "me": "Ik",
"counterPart": "Counterpart", "counterPart": "Gesprekspartner",
"bluetoothCallStateError": "bluetoothCallStateError":
"Please make sure the Bluetooth headset is connected to the phone and in a call state", "Zorg ervoor dat de Bluetooth-headset met de telefoon is verbonden en in gesprek is",
"autoDetect": "Auto Detect", // 自动检测 "autoDetect": "Automatisch detecteren", // 自动检测
// 翻译模块 - 文本翻译 // 翻译模块 - 文本翻译
"languageDetectionFailed": "Language detection failed", "languageDetectionFailed": "Taaldetectie mislukt",
// 翻译模块 - 悬浮窗与权限 // 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'Zwevend venster uitschakelen', 'disableFloatingWindow': 'Zwevend venster uitschakelen',
@ -1044,17 +1049,17 @@ const Map<String, String> nlNL = {
'micPermissionRequiredForRecording': 'micPermissionRequiredForRecording':
'Microfoonmachtiging vereist voor opname', 'Microfoonmachtiging vereist voor opname',
'deleteTranslationRecordError': 'Fout bij verwijderen vertaalrecord: @error', 'deleteTranslationRecordError': 'Fout bij verwijderen vertaalrecord: @error',
"translationFailed": "Translation failed", "translationFailed": "Vertalen mislukt",
"translating": "Vertalen", "translating": "Vertalen",
"translate": "Vertaal", "translate": "Vertaal",
"pleaseInputText": "Please input text", "pleaseInputText": "Voer tekst in",
"inputTextToTranslate": "Voer de tekst in om te vertalen", "inputTextToTranslate": "Voer de tekst in om te vertalen",
"textTooLong": "Text too long, max 5000 characters", "textTooLong": "Tekst te lang, max. 5000 tekens",
// 翻译模块 - 历史记录 // 翻译模块 - 历史记录
"noTranslationHistory": "Nog geen geschiedenis", "noTranslationHistory": "Nog geen geschiedenis",
"historyRecords": "History Records", "historyRecords": "Geschiedenisrecords",
"clearResults": "Clear Results", "clearResults": "Resultaten wissen",
"clearHistory": "Geschiedenis wissen", "clearHistory": "Geschiedenis wissen",
"clearHistoryConfirm": "clearHistoryConfirm":
"Weet u zeker dat u alle vertaalgeschiedenis wilt wissen? Deze actie kan niet ongedaan worden gemaakt.", "Weet u zeker dat u alle vertaalgeschiedenis wilt wissen? Deze actie kan niet ongedaan worden gemaakt.",
@ -1064,54 +1069,55 @@ const Map<String, String> nlNL = {
"Weet u zeker dat u alle vertaalopnamen voor deze sessie wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt.", "Weet u zeker dat u alle vertaalopnamen voor deze sessie wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt.",
// 翻译模块 - 图片翻译 // 翻译模块 - 图片翻译
"selectImageSource": "Select Image Source", "selectImageSource": "Selecteer afbeeldingsbron",
"imagePreview": "Image Preview", "imagePreview": "Voorbeeld van afbeelding",
"translationResult": "Translation Result", "translationResult": "Vertaalresultaat",
"recognitionResult": "Recognition Result", "recognitionResult": "Herkenningsresultaat",
"translatedImagePreview": "Translated Image Preview", "translatedImagePreview": "Voorbeeld van vertaalde afbeelding",
"translatedImageLoadFailed": "Failed to load translated image", "translatedImageLoadFailed": "Kan vertaalde afbeelding niet laden",
"pleaseSelectImage": "Please select an image", "pleaseSelectImage": "Selecteer een afbeelding",
"imageLoadFailed": "Image load failed", "imageLoadFailed": "Afbeelding laden mislukt",
"imageQuality": "Image Quality", "imageQuality": "Beeldkwaliteit",
"maxSize": "Max Size", "maxSize": "Maximale grootte",
"close": "Close", "close": "Sluiten",
"setImageQuality": "Set Image Quality", "setImageQuality": "Beeldkwaliteit instellen",
"currentQuality": "Current quality: @value%", "currentQuality": "Current quality: @value%",
"setMaxSize": "Set Max Size", "setMaxSize": "Maximale grootte instellen",
"currentMaxSize": "Current: @pxpx", "currentMaxSize": "Current: @pxpx",
"waitingForAction": "Waiting for action", "waitingForAction": "Wachten op actie",
"pleaseSelectImageToStart": "Please select an image to start", "pleaseSelectImageToStart": "Selecteer een afbeelding om te starten",
"chooseImage": "Choose Image", "chooseImage": "Afbeelding kiezen",
"openingCamera": "Opening camera...", "openingCamera": "Camera openen...",
"openingPhotoAlbum": "Opening photo album...", "openingPhotoAlbum": "Fotoalbum openen...",
"cancelled": "Cancelled", "cancelled": "Geannuleerd",
"userCancelledSelection": "User cancelled selection", "userCancelledSelection": "Gebruiker heeft selectie geannuleerd",
"translatingImage": "Translating Image", "translatingImage": "Afbeelding vertalen",
"callingImageTranslateService": "Calling image translation service...", "callingImageTranslateService": "Afbeeldingsvertaalservice aanroepen...",
"savingRecord": "Saving Record", "savingRecord": "Record opslaan",
"savingTranslationResult": "Saving translation result...", "savingTranslationResult": "Vertaalresultaat opslaan...",
"translationCompleted": "Translation Completed", "translationCompleted": "Vertaling voltooid",
"allStepsCompleted": "All steps completed", "allStepsCompleted": "Alle stappen voltooid",
"processingFailed": "Processing Failed", "processingFailed": "Verwerking mislukt",
"imageProcessingOrTranslationFailed": "imageProcessingOrTranslationFailed":
"Image processing or translation failed. Please retry.\nError: {error}", "Afbeeldingsverwerking of vertaling mislukt. Probeer het opnieuw.\nFout: {error}",
"imageTooLarge": "Image size exceeds 4MB limit", "imageTooLarge": "Image size exceeds 4MB limit",
"imageTooLargeHint": "imageTooLargeHint":
"Image size exceeds 4MB. Reduce quality or dimensions and retry", "Image size exceeds 4MB. Reduce quality or dimensions and retry",
"emptyTranslationResult": "Image translation API returned empty result", "emptyTranslationResult":
"Afbeeldingsvertaal-API retourneerde een leeg resultaat",
"imageTranslationFailedTryLater": "imageTranslationFailedTryLater":
"Image translation failed. Network issue or rate limit. Please try later", "Afbeeldingsvertaling mislukt. Netwerkprobleem of snelheidslimiet. Probeer het later opnieuw",
"imageTranslationApiException": "imageTranslationApiException":
"Image translation API exception. Check network and retry", "Uitzondering in afbeeldingsvertaal-API. Controleer het netwerk en probeer het opnieuw",
"permissionRequired": "Permission Required", "permissionRequired": "Machtiging vereist",
"cameraPermissionRequired": "Camera permission required to take photos", "cameraPermissionRequired": "Cameramachtiging vereist om foto's te maken",
"photoAlbumPermissionRequired": "photoAlbumPermissionRequired":
"Photo album permission required to pick images", "Fotoalbumtoestemming vereist om afbeeldingen te kiezen",
"translationDetails": "Translation Details", "translationDetails": "Vertaaldetails",
"originalImage": "Original Image", "originalImage": "Original Image",
"sourceLanguage": "Source Language", "sourceLanguage": "Source Language",
"targetLanguage": "Target Language", "targetLanguage": "Target Language",
"translationTime": "Translation Time", "translationTime": "Vertaaltijd",
"shareInDevelopment": "Sharing feature under development", "shareInDevelopment": "Sharing feature under development",
// 翻译模块 - 录音文件 // 翻译模块 - 录音文件
@ -1211,24 +1217,24 @@ const Map<String, String> nlNL = {
'Accountservice is geïnitialiseerd', // AccountService 已初始化 'Accountservice is geïnitialiseerd', // AccountService 已初始化
// 权限模块 // 权限模块
'meetingStoragePermission': 'Storage', 'meetingStoragePermission': 'Opslag',
'meetingStoragePermissionExplanation': 'meetingStoragePermissionExplanation':
'We need access to storage permissions so you can select and upload audio files.', 'We hebben opslagmachtiging nodig zodat u audiobestanden kunt selecteren en uploaden.',
'meetingStoragePermissionPermanentDenial': 'meetingStoragePermissionPermanentDenial':
'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', 'We hebben gedetecteerd dat u opslagmachtiging permanent hebt geweigerd. Ga naar de app-instellingen om de opslagmachtiging handmatig in te schakelen.',
'getPermissionStatusFailed': 'Ophalen van toestemmingsstatus mislukt', 'getPermissionStatusFailed': 'Ophalen van toestemmingsstatus mislukt',
'communicationPermissions': 'Communicatietoestemmingen', 'communicationPermissions': 'Communicatietoestemmingen',
'bluetoothPermissions': 'Bluetooth Permissions', 'bluetoothPermissions': 'Bluetooth-machtigingen',
'notificationPermissions': 'Notification Permissions', 'notificationPermissions': 'Meldingsmachtigingen',
'storagePermissions': 'Storage Permissions', 'storagePermissions': 'Opslagmachtigingen',
'microphonePermissions': 'Microphone Permissions', 'microphonePermissions': 'Microfoonmachtigingen',
'alarmPermissions': 'Alarm Permissions', 'alarmPermissions': 'Alarmmachtigingen',
'calendarPermissions': 'Kalendertoestemmingen', 'calendarPermissions': 'Kalendertoestemmingen',
'locationPermissions': 'Locatietoestemmingen', 'locationPermissions': 'Locatietoestemmingen',
'phone': 'Telefoon', 'phone': 'Telefoon',
'sms': 'SMS', 'sms': 'SMS',
'contacts': 'Contacts', 'contacts': 'Contacten',
'notification': 'Notification', 'notification': 'Meldingen',
'alarm': 'Alarm', 'alarm': 'Alarm',
'calendarWrite': 'Kalender schrijven', 'calendarWrite': 'Kalender schrijven',
'calendarFullAccess': 'Volledige kalendertoegang', 'calendarFullAccess': 'Volledige kalendertoegang',
@ -1237,7 +1243,7 @@ const Map<String, String> nlNL = {
'smsPermissionDesc': 'smsPermissionDesc':
'Gebruikt voor de functie voor het verzenden van sms-berichten', 'Gebruikt voor de functie voor het verzenden van sms-berichten',
'alarmPermissionDesc': 'alarmPermissionDesc':
'Used to set exact alarms to ensure reminders trigger on time', 'Gebruikt om exacte alarmen in te stellen zodat herinneringen op tijd worden geactiveerd',
'calendarWritePermissionDesc': 'calendarWritePermissionDesc':
'Gebruikt voor het maken van kalenderafspraken en herinneringen', 'Gebruikt voor het maken van kalenderafspraken en herinneringen',
'calendarFullAccessPermissionDesc': 'calendarFullAccessPermissionDesc':
@ -1257,72 +1263,74 @@ const Map<String, String> nlNL = {
'smsPermissionDetailDesc': 'smsPermissionDetailDesc':
'De functie voor het verzenden van sms-berichten vereist sms-toestemming', 'De functie voor het verzenden van sms-berichten vereist sms-toestemming',
'alarmPermissionDetailDesc': 'alarmPermissionDetailDesc':
'This permission is required to set exact alarms and ensure reminders trigger on time', 'Deze machtiging is vereist om exacte alarmen in te stellen en ervoor te zorgen dat herinneringen op tijd worden geactiveerd',
'calendarWritePermissionDetailDesc': 'calendarWritePermissionDetailDesc':
'Het maken van kalenderafspraken vereist schrijftoestemming voor de kalender', 'Het maken van kalenderafspraken vereist schrijftoestemming voor de kalender',
'calendarFullAccessPermissionDetailDesc': 'calendarFullAccessPermissionDetailDesc':
'Het beheren van kalenderafspraken vereist volledige kalendertoegang', 'Het beheren van kalenderafspraken vereist volledige kalendertoegang',
'locationPermissionDetailDesc': 'locationPermissionDetailDesc':
'Het ophalen van locatie-informatie vereist locatietoestemming', 'Het ophalen van locatie-informatie vereist locatietoestemming',
'contactsPermissionDesc': 'Used for accessing contact information', 'contactsPermissionDesc': 'Gebruikt voor toegang tot contactgegevens',
'contactsPermissionDetailDesc': 'contactsPermissionDetailDesc':
'Phone call and SMS functionality requires contacts permission to select contacts', 'Belfunctie en sms-functionaliteit vereisen contactenmachtiging om contacten te selecteren',
'bluetoothPermissionDesc': 'bluetoothPermissionDesc':
'Used for connecting and managing Bluetooth devices', 'Gebruikt om Bluetooth-apparaten te verbinden en te beheren',
'bluetoothPermissionDetailDesc': 'bluetoothPermissionDetailDesc':
'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'Voor het verbinden met Bluetooth-koptelefoons en andere apparaten is Bluetooth-machtiging vereist',
'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', 'bluetoothScanPermissionDesc':
'Gebruikt om Bluetooth-apparaten in de buurt te scannen',
'bluetoothScanPermissionDetailDesc': 'bluetoothScanPermissionDetailDesc':
'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'Voor het scannen naar Bluetooth-apparaten in de buurt is Bluetooth-scanmachtiging vereist',
'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', 'bluetoothConnectPermissionDesc':
'Gebruikt om verbinding te maken met Bluetooth-apparaten',
'bluetoothConnectPermissionDetailDesc': 'bluetoothConnectPermissionDetailDesc':
'Connecting to Bluetooth devices requires Bluetooth connect permission', 'Voor het verbinden met Bluetooth-apparaten is Bluetooth-verbindingsmachtiging vereist',
'notificationPermissionDesc': 'Used for sending notification messages', 'notificationPermissionDesc': 'Used for sending notification messages',
'notificationPermissionDetailDesc': 'notificationPermissionDetailDesc':
'App needs notification permission to send you important alerts and messages', 'De app heeft meldingsmachtiging nodig om u belangrijke waarschuwingen en berichten te sturen',
'appNeedsPermissionForFullFunction': 'appNeedsPermissionForFullFunction':
'De app heeft deze toestemming nodig voor volledige functionaliteit', 'De app heeft deze toestemming nodig voor volledige functionaliteit',
'permanentDenialText': 'permanentDenialText':
'U hebt de toestemming {permission} permanent geweigerd, ga naar de app-instellingen om deze in te schakelen', 'U hebt de toestemming {permission} permanent geweigerd, ga naar de app-instellingen om deze in te schakelen',
'goToSettings': 'Ga naar instellingen', 'goToSettings': 'Ga naar instellingen',
'bluetoothScan': 'Bluetooth Scan', 'bluetoothScan': 'Bluetooth scannen',
'bluetoothConnect': 'Bluetooth Connect', 'bluetoothConnect': 'Bluetooth verbinden',
'bluetoothScanExplanation': 'bluetoothScanExplanation':
'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', 'De app heeft Bluetooth-scanmachtiging nodig om Bluetooth-apparaten in de buurt te scannen.',
'bluetoothConnectExplanation': 'bluetoothConnectExplanation':
'The app needs Bluetooth connect permission to connect to Bluetooth devices.', 'De app heeft Bluetooth-verbindingsmachtiging nodig om verbinding te maken met Bluetooth-apparaten.',
'locationForBluetoothExplanation': 'locationForBluetoothExplanation':
'The app needs location permission to scan Bluetooth devices.', 'De app heeft locatiemachtiging nodig om Bluetooth-apparaten te scannen.',
'bluetoothScanPermanentDenial': 'bluetoothScanPermanentDenial':
'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', 'Bluetooth-scanmachtiging is permanent geweigerd; ga naar instellingen om deze handmatig in te schakelen.',
'bluetoothConnectPermanentDenial': 'bluetoothConnectPermanentDenial':
'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', 'Bluetooth-verbindingsmachtiging is permanent geweigerd; ga naar instellingen om deze handmatig in te schakelen.',
'locationPermanentDenial': 'locationPermanentDenial':
'Location permission has been permanently denied, please go to settings to enable it manually.', 'Locatiemachtiging is permanent geweigerd; ga naar instellingen om deze handmatig in te schakelen.',
'notificationPermission': 'Notification', 'notificationPermission': 'Meldingen',
'locationPermission': 'Location', 'locationPermission': 'Locatie',
'notificationPermissionExplanation': 'notificationPermissionExplanation':
'Notification permission is required to display music playback status.', 'Meldingsmachtiging is vereist om de status van het afspelen van muziek weer te geven.',
'locationPermissionExplanation': 'locationPermissionExplanation':
'Location permission is required to get current location.', 'Locatiemachtiging is vereist om de huidige locatie te verkrijgen.',
'notificationPermissionPermanentDenial': 'notificationPermissionPermanentDenial':
'You have permanently denied notification permission, please go to settings to enable it.', 'U hebt meldingsmachtiging permanent geweigerd; ga naar instellingen om deze in te schakelen.',
'locationPermissionPermanentDenial': 'locationPermissionPermanentDenial':
'You have permanently denied location permission, please go to settings to enable it.', 'U hebt locatiemachtiging permanent geweigerd; ga naar instellingen om deze in te schakelen.',
'storagePermission': 'Storage', 'storagePermission': 'Opslag',
'microphonePermissionExplanation': 'microphonePermissionExplanation':
'We need microphone permission to record audio content.', 'We hebben microfoonmachtiging nodig om audio op te nemen.',
'storagePermissionExplanation': 'storagePermissionExplanation':
'We need storage permission so you can select and upload audio files.', 'We hebben opslagmachtiging nodig zodat u audiobestanden kunt selecteren en uploaden.',
'microphonePermissionPermanentDenial': 'microphonePermissionPermanentDenial':
'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', 'Microfoonmachtiging is permanent geweigerd. Ga naar de app-instellingen om de microfoonmachtiging handmatig in te schakelen.',
'storagePermissionPermanentDenial': 'storagePermissionPermanentDenial':
'Storage permission has been permanently denied. To continue using this feature, please go to app settings to manually enable storage permission.', 'Opslagmachtiging is permanent geweigerd. Ga naar de app-instellingen om de opslagmachtiging handmatig in te schakelen.',
'permissionUtilNeed': 'Need ', 'permissionUtilNeed': 'Need ',
'permissionUtilPermission': ' Permission', 'permissionUtilPermission': ' Machtiging',
'permissionUtilRestricted': ' Permission Restricted', 'permissionUtilRestricted': ' Machtiging beperkt',
'permissionUtilRestrictedMessage': 'permissionUtilRestrictedMessage':
'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'Deze functie is niet beschikbaar of beperkt op het huidige apparaat. Controleer apparaatinstellingen of systeembeperkingen',
'permissionUtilConfirm': 'OK', 'permissionUtilConfirm': 'OK',
// 原生前台服务通知(Android) // 原生前台服务通知(Android)
@ -1411,27 +1419,27 @@ const Map<String, String> nlNL = {
'bleConnectionFailed': 'BLE-verbinding mislukt', 'bleConnectionFailed': 'BLE-verbinding mislukt',
'deviceAuthorizationFailedCheckCode': 'deviceAuthorizationFailedCheckCode':
'Apparaatautorisatie mislukt, controleer de autorisatiecode', 'Apparaatautorisatie mislukt, controleer de autorisatiecode',
'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideTitle': 'Handmatige Bluetooth-activering vereist', // 需要手动开启蓝牙
'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: 'bluetoothGuideSteps': 'Volg deze stappen:', // 请按照以下步骤操作:
'bluetoothGuideStep1': 'bluetoothGuideStep1':
'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 'Bluetooth inschakelen: Instellingen → Bluetooth → Aan', // 开启蓝牙:设置 → 蓝牙 → 开启
'bluetoothGuideStep2': 'bluetoothGuideStep2':
'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 'Verbind apparaat: zoek je apparaat in “Mijn apparaten” en tik om te verbinden', // 连接设备:在"我的设备"中找到您的设备并点击连接
'bluetoothGuideStep3': 'bluetoothGuideStep3':
'Return to app to continue pairing process', // 返回应用继续配对流程 'Ga terug naar de app om het koppelproces te vervolgen', // 返回应用继续配对流程
'bluetoothGuideTip': 'bluetoothGuideTip':
'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'Tip: houd in het Bedieningspaneel het Bluetooth-pictogram ingedrukt om snel naar de Bluetooth-instellingen te gaan', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置
'iKnow': 'I Know', // 我知道了 'iKnow': 'Begrepen', // 我知道了
// 配对模块 - 绑定奖励 // 配对模块 - 绑定奖励
"firstBindRewardTitle": "Welcome Reward", "firstBindRewardTitle": "Welkomstbeloning",
"firstBindRewardDesc": "You've received binding rewards.", "firstBindRewardDesc": "Je hebt de koppelbeloningen ontvangen.",
"vipLevelLabel": "VIP Level:", "vipLevelLabel": "VIP-niveau:",
"expiryLabel": "Expiration:", "expiryLabel": "Vervaldatum:",
"notActivated": "Not activated", "notActivated": "Niet geactiveerd",
"aiChatCreditsLabel": "AI Chat Credits:", "aiChatCreditsLabel": "AI Chat-tegoed:",
"translationCreditsLabel": "Translation Credits:", "translationCreditsLabel": "Vertaaltegoed:",
"meetingCreditsLabel": "Meeting Credits:", "meetingCreditsLabel": "Vergadertegoed:",
"ok": "OK", "ok": "OK",
// 用户反馈模块 // 用户反馈模块
@ -1463,13 +1471,14 @@ const Map<String, String> nlNL = {
"connectionFailed": "Verbinding mislukt", "connectionFailed": "Verbinding mislukt",
"retryConnection": "Verbinding opnieuw proberen", "retryConnection": "Verbinding opnieuw proberen",
"ota_updateNow": "Nu bijwerken", "ota_updateNow": "Nu bijwerken",
"otaVersionInfoFailed": "Failed to get version info. Please try again later.", "otaVersionInfoFailed":
"Versie-informatie ophalen mislukt. Probeer het later opnieuw.",
"otaDeviceInfoUnavailable": "otaDeviceInfoUnavailable":
"Unable to get device info. Please check the connection and retry.", "Kan geen apparaatinformatie ophalen. Controleer de verbinding en probeer het opnieuw.",
"otaProductInfoUnavailable": "otaProductInfoUnavailable":
"Unable to identify the device. Please reconnect and retry.", "Kan het apparaat niet identificeren. Verbind opnieuw en probeer het opnieuw.",
"otaFirmwareVersionInvalid": "otaFirmwareVersionInvalid":
"Firmware version is abnormal. Please reconnect and retry.", "Firmwareversie is afwijkend. Verbind opnieuw en probeer het opnieuw.",
"keepConnectedDontClose": "Houd het apparaat verbonden, sluit de app niet", "keepConnectedDontClose": "Houd het apparaat verbonden, sluit de app niet",
"doNotDisconnect": "Verbreek de verbinding niet", "doNotDisconnect": "Verbreek de verbinding niet",
"charging": "Opladen", "charging": "Opladen",
@ -1495,7 +1504,7 @@ const Map<String, String> nlNL = {
'BLE-verbinding vereist\nZorg dat het apparaat verbonden is en probeer opnieuw', 'BLE-verbinding vereist\nZorg dat het apparaat verbonden is en probeer opnieuw',
'otaDeviceInfoUnavailableTitle': 'Apparaatinfo niet beschikbaar', 'otaDeviceInfoUnavailableTitle': 'Apparaatinfo niet beschikbaar',
'otaCannotGetDeviceInfo': 'otaCannotGetDeviceInfo':
'Cannot get device info\nPlease reconnect device or try again later', 'Kan geen apparaatinformatie ophalen\nVerbind het apparaat opnieuw of probeer het later opnieuw',
'otaBleCheckFailed': 'BLE-verbindingscontrole mislukt', 'otaBleCheckFailed': 'BLE-verbindingscontrole mislukt',
'otaCannotGetDeviceInfoCheckConnection': 'otaCannotGetDeviceInfoCheckConnection':
'Kan apparaatinfo niet ophalen, controleer de verbinding', 'Kan apparaatinfo niet ophalen, controleer de verbinding',

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

File diff suppressed because it is too large

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

@ -1,3 +1,4 @@
// 葡萄牙-葡萄牙语
const Map<String, String> ptPT = { const Map<String, String> ptPT = {
// 通用 // 通用
'continue': 'Continuar', 'continue': 'Continuar',
@ -18,11 +19,11 @@ const Map<String, String> ptPT = {
"unknownError": "Erro Desconhecido", "unknownError": "Erro Desconhecido",
"asrConnectionFailed": "asrConnectionFailed":
"Falha na ligação ao serviço de reconhecimento de voz. Verifique a rede ou tente novamente mais tarde.", "Falha na ligação ao serviço de reconhecimento de voz. Verifique a rede ou tente novamente mais tarde.",
"justNow": "Just now", "justNow": "Agora",
"minutesAgo": "@minutes minutes ago", "minutesAgo": "@minutes minutos atrás",
"yesterday": "Yesterday", "yesterday": "Ontem",
"daysAgo": "@days days ago", "daysAgo": "@days dias atrás",
"hoursAgo": "@hours hours ago", "hoursAgo": "@hours horas atrás",
// 启动页 // 启动页
"slogan": "Conectando o mundo, para além do som", "slogan": "Conectando o mundo, para além do som",
@ -222,55 +223,55 @@ const Map<String, String> ptPT = {
"scene": "Cenário", "scene": "Cenário",
// 用量统计模块 // 用量统计模块
"aiChat": "AI Chat", "aiChat": "Chat de IA",
"translationStats": "Translation Statistics", "translationStats": "Estatísticas de Tradução",
"meetingStats": "Meeting Statistics", "meetingStats": "Estatísticas de Reuniões",
"today": "Today", "today": "Hoje",
"thisWeek": "This Week", "thisWeek": "Esta semana",
"thisMonth": "This Month", "thisMonth": "Este mês",
"history": "History", "history": "Histórico",
"currentSessionStats": "Current Session Stats", "currentSessionStats": "Estatísticas da sessão atual",
"translationCount": "Translation Count", "translationCount": "Número de traduções",
"sessionDuration": "Session Duration", "sessionDuration": "Duração da sessão",
"characters": "Characters", "characters": "Caracteres",
"recordingDuration": "Recording Duration", "recordingDuration": "Duração da gravação",
"totalApiCalls": "Total API Calls", "totalApiCalls": "Total de chamadas à API",
"sessionCount": "Session Count", "sessionCount": "Número de sessões",
"totalCharacters": "Total Characters", "totalCharacters": "Total de caracteres",
"apiCallStats": "API Call Stats", "apiCallStats": "Estatísticas de chamadas à API",
"translationApi": "Translation API", "translationApi": "API de tradução",
"asr": "ASR", "asr": "ASR",
"tts": "TTS", "tts": "TTS",
"dataVolumeStats": "Data Volume Stats", "dataVolumeStats": "Estatísticas de volume de dados",
"sourceTextCharacters": "Source Text Characters", "sourceTextCharacters": "Caracteres do texto de origem",
"ttsTextCharacters": "TTS Text Characters", "ttsTextCharacters": "Caracteres do texto TTS",
"effectiveAudioDuration": "Effective Audio Duration", "effectiveAudioDuration": "Duração efetiva do áudio",
"totalSessionDuration": "Total Session Duration", "totalSessionDuration": "Duração total da sessão",
"costStats": "Cost Stats", "costStats": "Estatísticas de custo",
"estimatedCost": "Estimated Cost", "estimatedCost": "Custo estimado",
"dailyCostThreshold": "Daily Cost Threshold", "dailyCostThreshold": "Limite diário de custo",
"monthlyCostThreshold": "Monthly Cost Threshold", "monthlyCostThreshold": "Limite mensal de custo",
"usageBehaviorStats": "Usage Behavior Stats", "usageBehaviorStats": "Estatísticas de comportamento de uso",
"mostUsedLanguagePair": "Most-used language pair", "mostUsedLanguagePair": "Par de idiomas mais usado",
"mostUsedMode": "Most-used mode", "mostUsedMode": "Modo mais usado",
"asrApiCalls": "ASR Calls", "asrApiCalls": "Chamadas ASR",
"totalAudioDuration": "Total Audio Duration", "totalAudioDuration": "Duração total do áudio",
"audioFileSize": "Audio File Size", "audioFileSize": "Tamanho do ficheiro de áudio",
"transcriptBytes": "Transcript Bytes", "transcriptBytes": "Bytes da transcrição",
"loadFailed": "Load Failed", "loadFailed": "Falha ao carregar",
"statsLoadFailedTryLater": "statsLoadFailedTryLater":
"Statistics failed to load. Please try again later.", "Falha ao carregar estatísticas. Tente novamente mais tarde.",
"cleanupComplete": "Cleanup Complete", "cleanupComplete": "Cleanup Complete",
"cleanedOldData": "Cleaned data older than 90 days", "cleanedOldData": "Cleaned data older than 90 days",
"exportFeature": "Export Feature", "exportFeature": "Export Feature",
"exportInDevelopment": "Data export is under development", "exportInDevelopment": "Data export is under development",
// 商品模块 - 通用 // 商品模块 - 通用
'availablePackages': 'Available Packages', 'availablePackages': 'Pacotes disponíveis',
'remainingQuota': 'Remaining Quota', 'remainingQuota': 'Quota restante',
'totalQuota': 'Total Quota', 'totalQuota': 'Quota total',
'remaining': 'Remaining', 'remaining': 'Restante',
'featureDescription': 'Feature Description', 'featureDescription': 'Descrição da funcionalidade',
'paymentSuccess': 'Pagamento bem-sucedido', 'paymentSuccess': 'Pagamento bem-sucedido',
'paymentFailed': 'Pagamento falhou', 'paymentFailed': 'Pagamento falhou',
'gotIt': 'Entendido', 'gotIt': 'Entendido',
@ -330,12 +331,12 @@ const Map<String, String> ptPT = {
'alipayPaymentLaunchFailed': 'Falha ao iniciar o Alipay', 'alipayPaymentLaunchFailed': 'Falha ao iniciar o Alipay',
'cannotLaunchAlipayPayment': 'Não é possível iniciar o Alipay', 'cannotLaunchAlipayPayment': 'Não é possível iniciar o Alipay',
'alipayPaymentException': 'Exceção do Alipay', 'alipayPaymentException': 'Exceção do Alipay',
"insufficientIntegral": "Insufficient integral", "insufficientIntegral": "Pontos insuficientes",
"insufficientBalanceDesc": "insufficientBalanceDesc":
'Insufficient balance, please go to the corresponding recharge page to recharge.', 'Saldo insuficiente. Vá à página de recarga correspondente para recarregar.',
"recharge": 'Go to Recharge', "recharge": 'Ir para recarregar',
"aiMemberExpiredDesc": "aiMemberExpiredDesc":
'AI membership expired, please go to the membership recharge page to renew.', 'A subscrição de IA expirou. Vá à página de recarga da subscrição para renovar.',
// 商品模块 - AI商品页 // 商品模块 - AI商品页
'musicAndRecommendation': 'Music & Recommendation', 'musicAndRecommendation': 'Music & Recommendation',
@ -363,7 +364,7 @@ const Map<String, String> ptPT = {
'templatedMessagesAndScheduleReminders': 'templatedMessagesAndScheduleReminders':
'Template messages and schedule reminders', 'Template messages and schedule reminders',
'aiDisclaimer': 'aiDisclaimer':
'Features depend on device permissions, service availability, and network conditions.', 'As funcionalidades dependem das permissões do dispositivo, da disponibilidade do serviço e das condições de rede.',
// 商品模块 - 翻译商品页 // 商品模块 - 翻译商品页
'realtimeTranscription': 'Real-time Transcription', 'realtimeTranscription': 'Real-time Transcription',
@ -386,7 +387,7 @@ const Map<String, String> ptPT = {
'O desempenho da tradução depende do microfone, da latência da rede e do ruído ambiente.', 'O desempenho da tradução depende do microfone, da latência da rede e do ruído ambiente.',
// 商品模块 - 会议商品页 // 商品模块 - 会议商品页
'meetingRecording': 'Meeting Recording', 'meetingRecording': 'Gravação de reuniões',
'transcriptionAndSummary': 'Transcription & Summary', 'transcriptionAndSummary': 'Transcription & Summary',
'keywordSearch': 'Keyword Search', 'keywordSearch': 'Keyword Search',
'collaborationSharing': 'Collaboration & Sharing', 'collaborationSharing': 'Collaboration & Sharing',
@ -394,7 +395,7 @@ const Map<String, String> ptPT = {
'Audio recording, transcription, keyword search, and auto summary.', 'Audio recording, transcription, keyword search, and auto summary.',
'meetingHeaderDesc2': 'meetingHeaderDesc2':
'Suitable for business meetings, class notes, and interview minutes.', 'Suitable for business meetings, class notes, and interview minutes.',
'meetingAutoRecording': 'Auto recording and segmentation', 'meetingAutoRecording': 'Gravação automática e segmentação',
'meetingSpeakerTagging': 'Speaker labeling', 'meetingSpeakerTagging': 'Speaker labeling',
'meetingLongAudioTranscription': 'Long audio transcription', 'meetingLongAudioTranscription': 'Long audio transcription',
'meetingKeyPointSummary': 'Key point extraction', 'meetingKeyPointSummary': 'Key point extraction',
@ -403,7 +404,7 @@ const Map<String, String> ptPT = {
'meetingExportSummary': 'Export minutes', 'meetingExportSummary': 'Export minutes',
'meetingMultiPlatformShare': 'Share across platforms', 'meetingMultiPlatformShare': 'Share across platforms',
'meetingDisclaimer': 'meetingDisclaimer':
'Use in quiet environments; performance depends on microphone and network.', 'Use em ambientes silenciosos; o desempenho depende do microfone e da rede.',
// 商品模块 - VIP会员页 // 商品模块 - VIP会员页
'benefitsOverview': 'Visão geral de benefícios', 'benefitsOverview': 'Visão geral de benefícios',
@ -431,12 +432,15 @@ const Map<String, String> ptPT = {
'trans_001_name': 'Tradução Básica 100', 'trans_001_name': 'Tradução Básica 100',
'trans_002_name': 'Tradução Básica 500', 'trans_002_name': 'Tradução Básica 500',
'trans_003_name': 'Tradução Básica 1000', 'trans_003_name': 'Tradução Básica 1000',
'ai_001_desc': 'Includes 100 uses. Access core AI features.', 'ai_001_desc':
'ai_002_desc': 'Includes 500 uses. Access core AI features.', 'Inclui 100 utilizações. Aceda às funcionalidades principais de IA.',
'ai_003_desc': 'Includes 1000 uses. Access core AI features.', 'ai_002_desc':
'meet_001_desc': 'Includes 100 meeting recordings/transcriptions.', 'Inclui 500 utilizações. Aceda às funcionalidades principais de IA.',
'meet_002_desc': 'Includes 500 meeting recordings/transcriptions.', 'ai_003_desc':
'meet_003_desc': 'Includes 1000 meeting recordings/transcriptions.', 'Inclui 1000 utilizações. Aceda às funcionalidades principais de IA.',
'meet_001_desc': 'Inclui 100 gravações/transcrições de reuniões.',
'meet_002_desc': 'Inclui 500 gravações/transcrições de reuniões.',
'meet_003_desc': 'Inclui 1000 gravações/transcrições de reuniões.',
'trans_001_desc': 'Inclui 100 traduções (voz/texto).', 'trans_001_desc': 'Inclui 100 traduções (voz/texto).',
'trans_002_desc': 'Inclui 500 traduções (voz/texto).', 'trans_002_desc': 'Inclui 500 traduções (voz/texto).',
'trans_003_desc': 'Inclui 1000 traduções (voz/texto).', 'trans_003_desc': 'Inclui 1000 traduções (voz/texto).',
@ -448,14 +452,15 @@ const Map<String, String> ptPT = {
// 新手引导 // 新手引导
'skip': "Saltar", 'skip': "Saltar",
'next': 'Next', 'next': 'Seguinte',
'sayLilyHint': "Say \"Lily Lily\" to the mic", 'sayLilyHint': "Diga \"Lily Lily\" ao microfone",
'imHere': "I’m here~", 'imHere': "Estou aqui~",
'guideWelcomeWakeAI': "Welcome to Voitrans! First, wake your AI “Lily”.", 'guideWelcomeWakeAI':
'aiReplyCompleted': "Lily has finished the reply!", "Bem-vindo ao Voitrans! Primeiro, acorde a sua IA “Lily”.",
'aiThinking': "Lily is thinking…", 'aiReplyCompleted': "A Lily terminou a resposta!",
'guideAwakenSuccess': "Great! Lily is awake—ask it to help.", 'aiThinking': "A Lily está a pensar…",
'confirmInput': "Confirm Input", 'guideAwakenSuccess': "Ótimo! A Lily está acordada — peça ajuda.",
'confirmInput': "Confirmar entrada",
'guideClickSendPrefix': "Tap send, ", 'guideClickSendPrefix': "Tap send, ",
'guideWeatherStart': "Tell Lily: “What’s the weather today?”", 'guideWeatherStart': "Tell Lily: “What’s the weather today?”",
'guideWeatherInput': "What’s the weather today?", 'guideWeatherInput': "What’s the weather today?",
@ -495,37 +500,38 @@ const Map<String, String> ptPT = {
'recordingDetails': 'Detalhes da Gravação', 'recordingDetails': 'Detalhes da Gravação',
'aiSummary': 'Resumo IA', 'aiSummary': 'Resumo IA',
'meetingTranscript': 'Transcrição da Reunião', 'meetingTranscript': 'Transcrição da Reunião',
'files': 'Files', 'files': 'Ficheiros',
'mine': 'Mine', 'mine': 'Meu',
'connect': 'Connect', 'connect': 'Ligar',
'allFiles': 'All Files', 'allFiles': 'Todos os ficheiros',
'searchInAllFiles': 'Search in all files', 'searchInAllFiles': 'Pesquisar em todos os ficheiros',
'from': 'From', 'from': 'De',
'sortBy': 'Sort by', 'sortBy': 'Ordenar por',
'creationTime': 'Creation Time', 'creationTime': 'Hora de criação',
'bluetoothConnection': 'Bluetooth Connection', 'bluetoothConnection': 'Ligação Bluetooth',
'meetingReconnect': 'Reconnect', 'meetingReconnect': 'Reconectar',
'searching': 'Searching...', 'searching': 'A pesquisar...',
'searchFailed': 'Search failed, please check if Bluetooth is enabled', 'searchFailed': 'A pesquisa falhou. Verifique se o Bluetooth está ativado',
'aiPenNotFound': 'AI PEN device not found', 'aiPenNotFound': 'Dispositivo AI PEN não encontrado',
'connectedToAiPen': 'Connected to AI PEN device', 'connectedToAiPen': 'Ligado ao dispositivo AI PEN',
'checkingNewFiles': 'Checking for new files to import', 'checkingNewFiles': 'A verificar novos ficheiros para importar',
'startingWifi': 'Starting Wi-Fi...', 'startingWifi': 'Starting Wi-Fi...',
'newFilesDetected': 'New files detected, preparing to import', 'newFilesDetected': 'New files detected, preparing to import',
'noNewFiles': 'No new files to import', 'noNewFiles': 'No new files to import',
'connectingWifi': 'Connecting to Wi-Fi...', 'connectingWifi': 'A ligar ao Wi‑Fi...',
'wifiConnected': 'Wi-Fi connected successfully', 'wifiConnected': 'Wi‑Fi ligado com sucesso',
'downloadingFiles': 'Downloading files...', 'downloadingFiles': 'A transferir ficheiros...',
'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadingFileProgress':
'downloadComplete': 'Download complete', 'Total de {total} ficheiros, a transferir o ficheiro {current}',
'downloadComplete': 'Transferência concluída',
'downloadCompleteInfo': 'downloadCompleteInfo':
'Download complete, {count} files in total, returning automatically in 2 seconds', 'Transferência concluída, {count} ficheiros no total. Voltará automaticamente em 2 segundos',
// Meeting模块 - 录音功能 // Meeting模块 - 录音功能
'startRecording': 'Start Recording', 'startRecording': 'Iniciar gravação',
'liveRecording': 'Live Recording', 'liveRecording': 'Gravação ao vivo',
'audioVideoRecording': 'Audio/Video Recording', 'audioVideoRecording': 'Gravação de áudio/vídeo',
'callRecording': 'Call Recording', 'callRecording': 'Gravação de chamadas',
'importAudio': 'Import Audio', 'importAudio': 'Import Audio',
'meetingRecordExitTitle': 'Sair da gravação', // 退出录音 'meetingRecordExitTitle': 'Sair da gravação', // 退出录音
'meetingRecordExitMessage': 'Escolha o que fazer antes de sair', // 请选择离开后的操作 'meetingRecordExitMessage': 'Escolha o que fazer antes de sair', // 请选择离开后的操作
@ -549,30 +555,30 @@ const Map<String, String> ptPT = {
'Para mostrar a barra flutuante de gravação (temporizador/pausa/retomar) durante a gravação, precisamos da permissão de sobreposição.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 'Para mostrar a barra flutuante de gravação (temporizador/pausa/retomar) durante a gravação, precisamos da permissão de sobreposição.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。
'overlayPermissionOpenSettingsFailed': 'overlayPermissionOpenSettingsFailed':
'Não foi possível abrir automaticamente as definições do sistema. Abra as Definições e ative manualmente a permissão de sobreposição.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'Não foi possível abrir automaticamente as definições do sistema. Abra as Definições e ative manualmente a permissão de sobreposição.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。
'transcribing': 'Transcribing...', 'transcribing': 'A transcrever...',
'summarizing': 'Summarizing...', 'summarizing': 'A resumir...',
'analyzing': 'Analyzing...', 'analyzing': 'A analisar...',
'summaryComplete': 'Summary Complete', 'summaryComplete': 'Resumo concluído',
'generate': 'Generate', 'generate': 'Gerar',
'overview': 'Overview', 'overview': 'Visão geral',
'transcription': 'Transcription', 'transcription': 'Transcrição',
'summary': 'Summary', 'summary': 'Resumo',
'mindMap': 'Mind Map', 'mindMap': 'Mapa mental',
'editSpeaker': 'Edit', 'editSpeaker': 'Editar',
'nameSpeaker': 'Name Speaker', 'nameSpeaker': 'Nome do orador',
// Meeting模块 - 转写与总结 // Meeting模块 - 转写与总结
'reSummarize': 'Re-summarize', 'reSummarize': 'Resumir novamente',
'dateAndTime': 'Date & Time', 'dateAndTime': 'Data e hora',
'location': 'Location', 'location': 'Local',
'attendees': 'Attendees', 'attendees': 'Participantes',
'inputLocation': 'Enter Location', 'inputLocation': 'Introduzir local',
'inputAttendees': 'Enter Attendees', 'inputAttendees': 'Introduzir participantes',
// Meeting模块 - 模版与生成 // Meeting模块 - 模版与生成
'selectSummaryTemplate': 'Select Summary Template', 'selectSummaryTemplate': 'Selecionar modelo de resumo',
'useThisTemplate': 'Use This Template', 'useThisTemplate': 'Usar este modelo',
'lastUsed': 'Last Used', 'lastUsed': 'Último usado',
'create': 'Criar', 'create': 'Criar',
'templateDetails': 'Detalhes do modelo', 'templateDetails': 'Detalhes do modelo',
'tag': 'Etiqueta', 'tag': 'Etiqueta',
@ -589,110 +595,112 @@ const Map<String, String> ptPT = {
'inputDescHint': 'Por favor, insira a descrição', 'inputDescHint': 'Por favor, insira a descrição',
'custom': 'Personalizado', 'custom': 'Personalizado',
'pleaseEnter': 'Por favor, insira', 'pleaseEnter': 'Por favor, insira',
'viewAll': 'View All', 'viewAll': 'Ver tudo',
'recordingLanguage': 'Recording Language', 'recordingLanguage': 'Idioma de gravação',
'chineseSimplified': 'Chinese Mandarin (Simplified)', 'chineseSimplified': 'Chinês mandarim (simplificado)',
'meetingGenerateNow': 'Generate Now', 'meetingGenerateNow': 'Gerar agora',
'keyEventsAnalyzed': 'Analyzed {count} key events.', 'keyEventsAnalyzed': '{count} eventos-chave analisados.',
'aiAnalysisDesc': 'aiAnalysisDesc':
'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', 'A análise de IA identifica eventos-chave nas gravações, permitindo-lhe selecionar eventos importantes para a geração por IA.',
// Meeting模块 - 文件操作 // Meeting模块 - 文件操作
'importing': 'Importing...', 'importing': 'A importar...',
'batchImporting': 'Batch importing...', 'batchImporting': 'Importação em lote...',
'importingLocalRecordings': 'Importing local recordings...', 'importingLocalRecordings': 'A importar gravações locais...',
'importFailed': 'Import file failed: {filePath}, error: {error}', 'importFailed': 'Falha ao importar ficheiro: {filePath}, erro: {error}',
'importSuccess': 'Successfully imported {count} local recordings', 'importSuccess': '{count} gravações locais importadas com sucesso',
'importError': 'Import failed: {error}', 'importError': 'Falha na importação: {error}',
'pleaseSelectAudioFile': 'Please select audio file', 'pleaseSelectAudioFile': 'Selecione um ficheiro de áudio',
'shareAudio': 'Share Meeting Audio', 'shareAudio': 'Partilhar áudio da reunião',
'shareComplete': 'Share complete!', 'shareComplete': 'Partilha concluída!',
'shareFailed': 'Share failed: {error}', 'shareFailed': 'Falha ao partilhar: {error}',
'fileProcessingFailed': 'File processing failed: {filePath}, error: {error}', 'fileProcessingFailed':
'Falha ao processar ficheiro: {filePath}, erro: {error}',
// Meeting模块 - 思维导图 // Meeting模块 - 思维导图
'saveMindMap': 'Guardar mapa mental', 'saveMindMap': 'Guardar mapa mental',
'shareMindMap': 'Share Mind Map', 'shareMindMap': 'Partilhar mapa mental',
'shareSuccess': 'Share Success', 'shareSuccess': 'Partilha bem-sucedida',
// Meeting模块 - AI问答 // Meeting模块 - AI问答
'askAI': 'Ask AI ...', 'askAI': 'Perguntar à IA...',
'askAIPrompt': 'What can I help you with today?', 'askAIPrompt': 'Como posso ajudar hoje?',
'continueAsk': 'Continue Asking', 'continueAsk': 'Continuar a perguntar',
'todoList': 'To-Do List', 'todoList': 'Lista de tarefas',
'extractConclusion': 'Extract Conclusion', 'extractConclusion': 'Extrair conclusão',
'generateKeyIndicators': 'Generate Key Indicators', 'generateKeyIndicators': 'Gerar indicadores-chave',
// Meeting模块 - 分享与导出 // Meeting模块 - 分享与导出
'shareLink': 'Share Link', 'shareLink': 'Partilhar link',
'copyTranscript': 'Copy Transcript', 'copyTranscript': 'Copiar transcrição',
'copySummary': 'Copy Summary', 'copySummary': 'Copiar resumo',
'exportAudio': 'Export Audio', 'exportAudio': 'Exportar áudio',
'exportTranscript': 'Export Transcript', 'exportTranscript': 'Exportar transcrição',
'shareMeetingAudio': 'Share Meeting Audio', 'shareMeetingAudio': 'Partilhar áudio da reunião',
'exportSummary': 'Export Summary', 'exportSummary': 'Exportar resumo',
'exportAs': 'Export As', 'exportAs': 'Exportar como',
'exportingPDF': 'Exporting PDF...', 'exportingPDF': 'A exportar PDF...',
'export': 'Exportar', 'export': 'Exportar',
// Meeting模块 - 发言者 // Meeting模块 - 发言者
'applyToAllParagraphs': 'Aplicar a todos os parágrafos deste orador', 'applyToAllParagraphs': 'Aplicar a todos os parágrafos deste orador',
'summaryWillBeUpdatedAutomatically': 'summaryWillBeUpdatedAutomatically':
'O resumo será atualizado automaticamente com base no modelo', 'O resumo será atualizado automaticamente com base no modelo',
'nameCurrentSpeaker': 'Name Current Speaker', 'nameCurrentSpeaker': 'Nomear orador atual',
'recentlyUsedNames': 'Recently Used Names', 'recentlyUsedNames': 'Nomes usados recentemente',
'applyToCurrentParagraph': 'Apply to Current Paragraph', 'applyToCurrentParagraph': 'Aplicar ao parágrafo atual',
'totalTime': 'Total Time', 'totalTime': 'Tempo total',
'summarySpeakerWillBeUpdatedAutomatically': 'summarySpeakerWillBeUpdatedAutomatically':
'Summary speakers will be updated automatically', 'Os oradores do resumo serão atualizados automaticamente',
// Meeting模块 - 云端同步 // Meeting模块 - 云端同步
'syncToCloud': 'Sync to Cloud', 'syncToCloud': 'Sincronizar com a nuvem',
'syncToCloudTip': '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).', 'Sincronize automaticamente as suas gravações com a nuvem; pode reproduzir, gerir e partilhar gravações através de qualquer VOITRANS APP ou VOITRANS Web (web.voitrans.com).',
'syncToVoitransApp': 'Sync VOITRANS APP', 'syncToVoitransApp': 'Sincronizar para a app VOITRANS',
'transcriptionRecord': 'Transcription Record', 'transcriptionRecord': 'Registo de transcrição',
// Meeting模块 - 我的页面 // Meeting模块 - 我的页面
'transcriptionRecords': 'Transcription Records', 'transcriptionRecords': 'Registos de transcrição',
'templateCommunity': 'Template Community', 'templateCommunity': 'Comunidade de modelos',
'comingSoon': 'Coming Soon', 'comingSoon': 'Em breve',
'integration': 'Integration', 'integration': 'Integração',
'voitransPrivateCloud': 'VOITRANS PRIVATE CLOUD', 'voitransPrivateCloud': 'VOITRANS PRIVATE CLOUD',
'enabled': 'Enabled', 'enabled': 'Ativado',
'disabled': 'Disabled', 'disabled': 'Desativado',
'myVoitransDevice': 'My VOITRANS Device', 'myVoitransDevice': 'O meu dispositivo VOITRANS',
'helpAndFeedback': 'Help & Feedback', 'helpAndFeedback': 'Ajuda e feedback',
'aboutVoitrans': 'About VOITRANS', 'aboutVoitrans': 'Sobre o VOITRANS',
'meetingDays': 'Days', 'meetingDays': 'Dias',
'meetingHours': 'Hours', 'meetingHours': 'Horas',
'voitransAiMember': 'Voitrans AI Member', 'voitransAiMember': 'Voitrans AI Member',
'unlockStarterMember': 'Unlock Starter Member', 'unlockStarterMember': 'Unlock Starter Member',
'bindDeviceToActivate': 'Bind Voitrans device to activate Starter membership', 'bindDeviceToActivate':
'unlockNow': 'Unlock Now', 'Vincular dispositivo Voitrans para ativar a subscrição Starter',
'unlockNow': 'Desbloquear agora',
// Meeting模块 - 会员与升级 // Meeting模块 - 会员与升级
'comparison': 'Comparison', 'comparison': 'Comparação',
'detailedInfo': 'Detailed Information', 'detailedInfo': 'Informações detalhadas',
'monthlyTranscriptionTime': 'Monthly Transcription Time', 'monthlyTranscriptionTime': 'Tempo mensal de transcrição',
'unlimited': 'Unlimited', 'unlimited': 'Unlimited',
'professionalTemplates': 'Professional Templates', 'professionalTemplates': 'Modelos profissionais',
'limited': 'Limited', 'limited': 'Limited',
'fullTemplates': 'Full Templates', 'fullTemplates': 'Modelos completos',
'professionalTerms': 'Professional Terms', 'professionalTerms': 'Termos profissionais',
'customTemplates': 'Custom Templates', 'customTemplates': 'Modelos personalizados',
'visualMindMap': 'Visual Mind Map', 'visualMindMap': 'Mapa mental visual',
'speakerIdentification': 'Speaker Identification', 'speakerIdentification': 'Identificação de oradores',
'aiVoiceEnhancement': 'AI Voice Enhancement', 'aiVoiceEnhancement': 'Melhoria de voz com IA',
'audioImport': 'Audio Import', 'audioImport': 'Importação de áudio',
'multipleExportFormats': 'Multiple Export Formats', 'multipleExportFormats': 'Vários formatos de exportação',
'professionalSummaryTemplates': 'Professional Summary Templates', 'professionalSummaryTemplates': 'Modelos profissionais de resumo',
'professionalTemplateDesc': 'professionalTemplateDesc':
'Professional template design to improve your work efficiency. Customized according to industry needs.', 'Design profissional de modelos para melhorar a sua eficiência no trabalho. Personalizado conforme as necessidades do setor.',
'customTemplateDesc': 'customTemplateDesc':
'You can customize summary prompts according to your needs and use them to generate the required summaries.', 'Pode personalizar os prompts de resumo conforme as suas necessidades e utilizá-los para gerar os resumos pretendidos.',
'askAiDesc': 'askAiDesc':
'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', 'Extraia informações mais profundas das gravações de forma inteligente e gere tabelas de dados, conclusões-chave, listas de tarefas, e-mails de relatório e outros conteúdos formatados com um clique.',
'visualMindMapDesc': 'visualMindMapDesc':
'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.',
'templateCommunityDesc': 'templateCommunityDesc':
@ -700,16 +708,16 @@ const Map<String, String> ptPT = {
'speakerIdentificationDesc': 'speakerIdentificationDesc':
'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.',
'privateCloudSyncDesc': 'privateCloudSyncDesc':
'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', 'As suas gravações e transcrições serão armazenadas com segurança em servidores dedicados na nuvem, com encriptação total durante o upload e o download para garantir privacidade e segurança.',
'aiVoiceEnhancementDesc': 'aiVoiceEnhancementDesc':
'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.',
'audioImportDesc': 'audioImportDesc':
'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.',
'multipleExportFormatsDesc': 'multipleExportFormatsDesc':
'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', 'Exporte as suas gravações de áudio, texto de transcrição e resumos em vários formatos (TXT, PDF, JPEG) conforme necessário.',
'upgradeMembership': 'Upgrade Your Membership', 'upgradeMembership': 'Atualize a sua subscrição',
'yearlySubscription': 'Yearly Subscription', 'yearlySubscription': 'Subscrição anual',
'monthlySubscription': 'Monthly Subscription', 'monthlySubscription': 'Subscrição mensal',
'proMonthly': 'Pro ¥60/month', 'proMonthly': 'Pro ¥60/month',
'proMonthlyDesc': 'proMonthlyDesc':
'7-day free trial, then ¥800/year. Cancel anytime before trial ends.', '7-day free trial, then ¥800/year. Cancel anytime before trial ends.',
@ -732,17 +740,17 @@ const Map<String, String> ptPT = {
'oneHundredTwentyMinutes': '120 minutes', 'oneHundredTwentyMinutes': '120 minutes',
'validityPeriod': '*Validity Period: ', 'validityPeriod': '*Validity Period: ',
'validityNote': 'validityNote':
'Activated immediately after purchase, valid for 2 years after activation.', 'Ativado imediatamente após a compra, válido por 2 anos após a ativação.',
'purchase': 'Purchase', 'purchase': 'Comprar',
// Meeting模块 - 录音语言 // Meeting模块 - 录音语言
'recordLanguage': 'Recording Language', 'recordLanguage': 'Idioma de gravação',
'cantonese': 'Cantonese', 'cantonese': 'Cantonese',
'sichuan': 'Sichuan Dialect', 'sichuan': 'Dialeto de Sichuan',
'shanghai': 'Shanghai Dialect', 'shanghai': 'Dialeto de Xangai',
// Meeting模块 - 错误提示 // Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Unknown Language', 'meetingUnknownLanguage': 'Idioma desconhecido',
'analysisFailed': 'Análise falhou, por favor tente mais tarde', 'analysisFailed': 'Análise falhou, por favor tente mais tarde',
'transcriptionFailed': 'Transcrição falhou, por favor tente mais tarde', 'transcriptionFailed': 'Transcrição falhou, por favor tente mais tarde',
'summaryFailed': 'Resumo falhou, por favor tente mais tarde', 'summaryFailed': 'Resumo falhou, por favor tente mais tarde',
@ -763,10 +771,10 @@ const Map<String, String> ptPT = {
"translationRecharge": "Recarga de Tradução", "translationRecharge": "Recarga de Tradução",
"meetingAssistantRecharge": "Recarga do Assistente de Reunião", "meetingAssistantRecharge": "Recarga do Assistente de Reunião",
"cloudSync": "Recarga de Sincronização em Nuvem", "cloudSync": "Recarga de Sincronização em Nuvem",
"memberService": "Member Service", "memberService": "Serviço de membro",
"bindRewardTitle": "Rewards", "bindRewardTitle": "Recompensas",
"bindRewardSimpleDesc": "bindRewardSimpleDesc":
"First bind device reward has been issued. Tap OK to close.", "A recompensa pela primeira vinculação do dispositivo foi emitida. Toque em OK para fechar.",
"joinDevice": "Dispositivo conectado:", "joinDevice": "Dispositivo conectado:",
"accountId": "ID da Conta:", "accountId": "ID da Conta:",
"systemSetting": "Definição do Sistema", "systemSetting": "Definição do Sistema",
@ -818,20 +826,20 @@ const Map<String, String> ptPT = {
"loading": "A carregar...", "loading": "A carregar...",
// 设备管理模块 // 设备管理模块
"deviceTypeUnknown": "Unknown Device", "deviceTypeUnknown": "Dispositivo desconhecido",
"deviceTypeClassicBluetoothHeadset": "Classic Bluetooth Headset", "deviceTypeClassicBluetoothHeadset": "Auriculares Bluetooth clássicos",
"deviceTypeBleBluetoothHeadset": "BLE Bluetooth Headset", "deviceTypeBleBluetoothHeadset": "Auriculares Bluetooth BLE",
"deviceTypeSmartVoiceRecorder": "Smart Voice Recorder", "deviceTypeSmartVoiceRecorder": "Gravador de voz inteligente",
"deviceTypeSmartEye": "Smart Glasses", "deviceTypeSmartEye": "Óculos inteligentes",
"unbind": "Desvincular", "unbind": "Desvincular",
"noDevicesBound": "No devices bound yet", "noDevicesBound": "Ainda não há dispositivos vinculados",
"pleaseBindDeviceFirst": "Please bind a device first to manage", "pleaseBindDeviceFirst": "Vincule primeiro um dispositivo para gerir",
"noMacAddress": "No MAC Address", "noMacAddress": "Sem endereço MAC",
"licenseCode": "License Code", "licenseCode": "Código de licença",
"confirmUnbind": "Confirm Unbind", "confirmUnbind": "Confirmar desvinculação",
"confirmUnbindMessage": "confirmUnbindMessage":
"Are you sure you want to unbind device \"{deviceName}\"?", "Tem a certeza de que pretende desvincular o dispositivo \"{deviceName}\"?",
"confirmUnbindAction": "Confirm Unbind", "confirmUnbindAction": "Confirmar desvinculação",
// Agent模块 - 主界面 // Agent模块 - 主界面
"Lily": "Lily", "Lily": "Lily",
@ -862,22 +870,22 @@ const Map<String, String> ptPT = {
"loadMoreMessages": "Carregar mais mensagens...", "loadMoreMessages": "Carregar mais mensagens...",
"loadFailedClickRetry": "Falha ao carregar, clique para tentar novamente", "loadFailedClickRetry": "Falha ao carregar, clique para tentar novamente",
"swipeUpForMore": "Deslize para cima para ver mais", "swipeUpForMore": "Deslize para cima para ver mais",
"callingTool": "I'm helping you, please wait!", // 正在帮您,请稍等! "callingTool": "Estou a ajudá-lo(a), aguarde!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断 "voice_interrupt": "Interromper", // 语音打断
'voice_interrupt_tip': '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.', '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模块 - 预设提示词 // Agent模块 - 预设提示词
"presetMusic": "Play some music", // 来点音乐 "presetMusic": "Tocar música", // 来点音乐
"presetNavigation": "Navigation to", // 导航 "presetNavigation": "Navegar para", // 导航
"presetWeather": "Today's weather", // 今日天气 "presetWeather": "Tempo hoje", // 今日天气
"presetNews": "Today's news", // 今日新闻 "presetNews": "Notícias hoje", // 今日新闻
"presetFood": "Nearby food", // 美食 "presetFood": "Comida perto", // 美食
"playSomeMusic": "Play some popular music", // 播放一些流行音乐 "playSomeMusic": "Tocar música popular", // 播放一些流行音乐
"navigationTo": "Please help me navigate to", // 导航到 "navigationTo": "Navegar para", // 导航到
"todayWeather": "How's the weather today?", // 今日天气 "todayWeather": "Como está o tempo hoje?", // 今日天气
"todayNews": "What's the news today?", // 今日新闻 "todayNews": "Quais são as notícias hoje?", // 今日新闻
"nearbyFood": "What delicious food is nearby?", // 美食 "nearbyFood": "Onde há boa comida por aqui?", // 附近有什么好吃的
// Agent模块 - 欢迎消息与权限 // Agent模块 - 欢迎消息与权限
'welcomeMessage': 'Olá! Eu sou a **Lily**, posso ajudá-lo(a) a:\n\n' 'welcomeMessage': 'Olá! Eu sou a **Lily**, posso ajudá-lo(a) a:\n\n'
@ -1025,8 +1033,8 @@ const Map<String, String> ptPT = {
"strongWind": "Vento Forte", "strongWind": "Vento Forte",
// 翻译模块 - 中间层 // 翻译模块 - 中间层
"pictureTranslation": "Picture Translation", "pictureTranslation": "Tradução de imagens",
"textTranslation": "Text Translation", "textTranslation": "Tradução de texto",
// 翻译模块 - 主页 // 翻译模块 - 主页
"translationHistory": "Histórico de Traduções", "translationHistory": "Histórico de Traduções",
@ -1036,14 +1044,14 @@ const Map<String, String> ptPT = {
"phoneUser": "Utilizador de Telemóvel", "phoneUser": "Utilizador de Telemóvel",
"selectSourceLanguage": "Selecionar idioma de origem", "selectSourceLanguage": "Selecionar idioma de origem",
"selectTargetLanguage": "Selecionar idioma de destino", "selectTargetLanguage": "Selecionar idioma de destino",
"me": "Me", "me": "Eu",
"counterPart": "Counterpart", "counterPart": "Interlocutor",
"bluetoothCallStateError": "bluetoothCallStateError":
"Please make sure the Bluetooth headset is connected to the phone and in a call state", "Certifique-se de que os auriculares Bluetooth estão ligados ao telemóvel e em estado de chamada",
"autoDetect": "Auto Detect", // 自动检测 "autoDetect": "Deteção automática", // 自动检测
// 翻译模块 - 文本翻译 // 翻译模块 - 文本翻译
"languageDetectionFailed": "Language detection failed", "languageDetectionFailed": "Falha ao detetar idioma",
// 翻译模块 - 悬浮窗与权限 // 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'Desativar janela flutuante', 'disableFloatingWindow': 'Desativar janela flutuante',
@ -1053,17 +1061,17 @@ const Map<String, String> ptPT = {
'Permissao de microfone necessaria para gravacao', 'Permissao de microfone necessaria para gravacao',
'deleteTranslationRecordError': 'deleteTranslationRecordError':
'Erro ao excluir registro de traducao: @error', 'Erro ao excluir registro de traducao: @error',
"translationFailed": "Translation failed", "translationFailed": "Falha na tradução",
"translating": "A traduzir", "translating": "A traduzir",
"translate": "Traduzir", "translate": "Traduzir",
"pleaseInputText": "Please input text", "pleaseInputText": "Introduza o texto",
"inputTextToTranslate": "Introduza o texto a traduzir", "inputTextToTranslate": "Introduza o texto a traduzir",
"textTooLong": "Text too long, max 5000 characters", "textTooLong": "Texto demasiado longo, máximo de 5000 caracteres",
// 翻译模块 - 历史记录 // 翻译模块 - 历史记录
"noTranslationHistory": "Ainda não há histórico", "noTranslationHistory": "Ainda não há histórico",
"historyRecords": "History Records", "historyRecords": "Registos do histórico",
"clearResults": "Clear Results", "clearResults": "Limpar resultados",
"clearHistory": "Limpar Histórico", "clearHistory": "Limpar Histórico",
"clearHistoryConfirm": "clearHistoryConfirm":
"Tem a certeza que quer limpar todo o histórico de traduções? Esta ação não pode ser revertida.", "Tem a certeza que quer limpar todo o histórico de traduções? Esta ação não pode ser revertida.",
@ -1073,54 +1081,57 @@ const Map<String, String> ptPT = {
"Tem a certeza que quer eliminar todos os registos de tradução desta sessão? Esta ação não pode ser revertida.", "Tem a certeza que quer eliminar todos os registos de tradução desta sessão? Esta ação não pode ser revertida.",
// 翻译模块 - 图片翻译 // 翻译模块 - 图片翻译
"selectImageSource": "Select Image Source", "selectImageSource": "Selecionar origem da imagem",
"imagePreview": "Image Preview", "imagePreview": "Pré-visualização da imagem",
"translationResult": "Translation Result", "translationResult": "Resultado da tradução",
"recognitionResult": "Recognition Result", "recognitionResult": "Resultado do reconhecimento",
"translatedImagePreview": "Translated Image Preview", "translatedImagePreview": "Pré-visualização da imagem traduzida",
"translatedImageLoadFailed": "Failed to load translated image", "translatedImageLoadFailed": "Falha ao carregar a imagem traduzida",
"pleaseSelectImage": "Please select an image", "pleaseSelectImage": "Selecione uma imagem",
"imageLoadFailed": "Image load failed", "imageLoadFailed": "Falha ao carregar a imagem",
"imageQuality": "Image Quality", "imageQuality": "Qualidade da imagem",
"maxSize": "Max Size", "maxSize": "Tamanho máximo",
"close": "Close", "close": "Fechar",
"setImageQuality": "Set Image Quality", "setImageQuality": "Definir qualidade da imagem",
"currentQuality": "Current quality: @value%", "currentQuality": "Qualidade atual: @value%",
"setMaxSize": "Set Max Size", "setMaxSize": "Definir tamanho máximo",
"currentMaxSize": "Current: @pxpx", "currentMaxSize": "Current: @pxpx",
"waitingForAction": "Waiting for action", "waitingForAction": "A aguardar ação",
"pleaseSelectImageToStart": "Please select an image to start", "pleaseSelectImageToStart": "Selecione uma imagem para começar",
"chooseImage": "Choose Image", "chooseImage": "Escolher imagem",
"openingCamera": "Opening camera...", "openingCamera": "A abrir câmara...",
"openingPhotoAlbum": "Opening photo album...", "openingPhotoAlbum": "A abrir álbum de fotos...",
"cancelled": "Cancelled", "cancelled": "Cancelado",
"userCancelledSelection": "User cancelled selection", "userCancelledSelection": "O utilizador cancelou a seleção",
"translatingImage": "Translating Image", "translatingImage": "A traduzir imagem",
"callingImageTranslateService": "Calling image translation service...", "callingImageTranslateService":
"savingRecord": "Saving Record", "A chamar o serviço de tradução de imagens...",
"savingTranslationResult": "Saving translation result...", "savingRecord": "A guardar registo",
"translationCompleted": "Translation Completed", "savingTranslationResult": "A guardar o resultado da tradução...",
"allStepsCompleted": "All steps completed", "translationCompleted": "Tradução concluída",
"processingFailed": "Processing Failed", "allStepsCompleted": "Todos os passos concluídos",
"processingFailed": "Falha no processamento",
"imageProcessingOrTranslationFailed": "imageProcessingOrTranslationFailed":
"Image processing or translation failed. Please retry.\nError: {error}", "Falha no processamento ou na tradução da imagem. Tente novamente.\nErro: {error}",
"imageTooLarge": "Image size exceeds 4MB limit", "imageTooLarge": "Image size exceeds 4MB limit",
"imageTooLargeHint": "imageTooLargeHint":
"Image size exceeds 4MB. Reduce quality or dimensions and retry", "Image size exceeds 4MB. Reduce quality or dimensions and retry",
"emptyTranslationResult": "Image translation API returned empty result", "emptyTranslationResult":
"A API de tradução de imagens devolveu um resultado vazio",
"imageTranslationFailedTryLater": "imageTranslationFailedTryLater":
"Image translation failed. Network issue or rate limit. Please try later", "A tradução de imagens falhou. Problema de rede ou limite de pedidos. Tente mais tarde",
"imageTranslationApiException": "imageTranslationApiException":
"Image translation API exception. Check network and retry", "Exceção na API de tradução de imagens. Verifique a rede e tente novamente",
"permissionRequired": "Permission Required", "permissionRequired": "Permissão necessária",
"cameraPermissionRequired": "Camera permission required to take photos", "cameraPermissionRequired":
"É necessária permissão de câmara para tirar fotos",
"photoAlbumPermissionRequired": "photoAlbumPermissionRequired":
"Photo album permission required to pick images", "É necessária permissão de álbum de fotos para selecionar imagens",
"translationDetails": "Translation Details", "translationDetails": "Detalhes da tradução",
"originalImage": "Original Image", "originalImage": "Original Image",
"sourceLanguage": "Source Language", "sourceLanguage": "Source Language",
"targetLanguage": "Target Language", "targetLanguage": "Target Language",
"translationTime": "Translation Time", "translationTime": "Tempo de tradução",
"shareInDevelopment": "Sharing feature under development", "shareInDevelopment": "Sharing feature under development",
// 翻译模块 - 录音文件 // 翻译模块 - 录音文件
@ -1221,18 +1232,18 @@ const Map<String, String> ptPT = {
'Serviço de Conta inicializado', // AccountService 已初始化 'Serviço de Conta inicializado', // AccountService 已初始化
// 权限模块 // 权限模块
'meetingStoragePermission': 'Storage', 'meetingStoragePermission': 'Armazenamento',
'meetingStoragePermissionExplanation': 'meetingStoragePermissionExplanation':
'We need access to storage permissions so you can select and upload audio files.', 'Precisamos da permissão de armazenamento para que possa selecionar e enviar ficheiros de áudio.',
'meetingStoragePermissionPermanentDenial': 'meetingStoragePermissionPermanentDenial':
'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', 'Detetámos que recusou permanentemente a permissão de armazenamento. Para continuar a usar esta funcionalidade, vá às definições da aplicação e ative manualmente a permissão de armazenamento.',
'getPermissionStatusFailed': 'Falha ao obter o estado da permissão', 'getPermissionStatusFailed': 'Falha ao obter o estado da permissão',
'communicationPermissions': 'Permissões de Comunicação', 'communicationPermissions': 'Permissões de Comunicação',
'bluetoothPermissions': 'Bluetooth Permissions', 'bluetoothPermissions': 'Permissões Bluetooth',
'notificationPermissions': 'Notification Permissions', 'notificationPermissions': 'Permissões de notificações',
'storagePermissions': 'Storage Permissions', 'storagePermissions': 'Permissões de armazenamento',
'microphonePermissions': 'Microphone Permissions', 'microphonePermissions': 'Permissões de microfone',
'alarmPermissions': 'Alarm Permissions', 'alarmPermissions': 'Permissões de alarme',
'calendarPermissions': 'Permissões do Calendário', 'calendarPermissions': 'Permissões do Calendário',
'locationPermissions': 'Permissões de Localização', 'locationPermissions': 'Permissões de Localização',
'phone': 'Telefone', 'phone': 'Telefone',
@ -1246,7 +1257,7 @@ const Map<String, String> ptPT = {
'phonePermissionDesc': 'Usado para a função de fazer chamadas', 'phonePermissionDesc': 'Usado para a função de fazer chamadas',
'smsPermissionDesc': 'Usado para a função de enviar SMS', 'smsPermissionDesc': 'Usado para a função de enviar SMS',
'alarmPermissionDesc': 'alarmPermissionDesc':
'Used to set exact alarms to ensure reminders trigger on time', 'Usado para definir alarmes exatos e garantir que os lembretes disparem a tempo',
'calendarWritePermissionDesc': 'calendarWritePermissionDesc':
'Usado para criar eventos e lembretes no calendário', 'Usado para criar eventos e lembretes no calendário',
'calendarFullAccessPermissionDesc': 'calendarFullAccessPermissionDesc':
@ -1265,72 +1276,72 @@ const Map<String, String> ptPT = {
'A função de chamada requer permissão de telefone', 'A função de chamada requer permissão de telefone',
'smsPermissionDetailDesc': 'A função de envio de SMS requer permissão de SMS', 'smsPermissionDetailDesc': 'A função de envio de SMS requer permissão de SMS',
'alarmPermissionDetailDesc': 'alarmPermissionDetailDesc':
'This permission is required to set exact alarms and ensure reminders trigger on time', 'Esta permissão é necessária para definir alarmes exatos e garantir que os lembretes disparem a tempo',
'calendarWritePermissionDetailDesc': 'calendarWritePermissionDetailDesc':
'A criação de eventos no calendário requer permissão de escrita no calendário', 'A criação de eventos no calendário requer permissão de escrita no calendário',
'calendarFullAccessPermissionDetailDesc': 'calendarFullAccessPermissionDetailDesc':
'A gestão de eventos no calendário requer permissão total de calendário', 'A gestão de eventos no calendário requer permissão total de calendário',
'locationPermissionDetailDesc': 'locationPermissionDetailDesc':
'A obtenção de informações de localização requer permissão de localização', 'A obtenção de informações de localização requer permissão de localização',
'contactsPermissionDesc': 'Used for accessing contact information', 'contactsPermissionDesc': 'Usado para aceder a informações de contactos',
'contactsPermissionDetailDesc': 'contactsPermissionDetailDesc':
'Phone call and SMS functionality requires contacts permission to select contacts', 'As funções de chamadas e SMS requerem permissão de contactos para selecionar contactos',
'bluetoothPermissionDesc': 'bluetoothPermissionDesc': 'Usado para ligar e gerir dispositivos Bluetooth',
'Used for connecting and managing Bluetooth devices',
'bluetoothPermissionDetailDesc': 'bluetoothPermissionDetailDesc':
'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'Para ligar auscultadores Bluetooth e outros dispositivos, é necessária permissão Bluetooth',
'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', 'bluetoothScanPermissionDesc':
'Usado para pesquisar dispositivos Bluetooth nas proximidades',
'bluetoothScanPermissionDetailDesc': 'bluetoothScanPermissionDetailDesc':
'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'Para pesquisar dispositivos Bluetooth nas proximidades, é necessária permissão de pesquisa Bluetooth',
'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', 'bluetoothConnectPermissionDesc': 'Usado para ligar a dispositivos Bluetooth',
'bluetoothConnectPermissionDetailDesc': 'bluetoothConnectPermissionDetailDesc':
'Connecting to Bluetooth devices requires Bluetooth connect permission', 'Para ligar a dispositivos Bluetooth, é necessária permissão de ligação Bluetooth',
'notificationPermissionDesc': 'Used for sending notification messages', 'notificationPermissionDesc': 'Used for sending notification messages',
'notificationPermissionDetailDesc': 'notificationPermissionDetailDesc':
'App needs notification permission to send you important alerts and messages', 'A aplicação precisa de permissão de notificações para lhe enviar alertas e mensagens importantes',
'appNeedsPermissionForFullFunction': 'appNeedsPermissionForFullFunction':
'A aplicação precisa desta permissão para fornecer funcionalidade completa', 'A aplicação precisa desta permissão para fornecer funcionalidade completa',
'permanentDenialText': 'permanentDenialText':
'Negou permanentemente a permissão de {permission}, por favor, vá às definições da aplicação para a ativar', 'Negou permanentemente a permissão de {permission}, por favor, vá às definições da aplicação para a ativar',
'goToSettings': 'Ir para Definições', 'goToSettings': 'Ir para Definições',
'bluetoothScan': 'Bluetooth Scan', 'bluetoothScan': 'Pesquisa Bluetooth',
'bluetoothConnect': 'Bluetooth Connect', 'bluetoothConnect': 'Ligação Bluetooth',
'bluetoothScanExplanation': 'bluetoothScanExplanation':
'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', 'A aplicação precisa de permissão de pesquisa Bluetooth para procurar dispositivos Bluetooth nas proximidades.',
'bluetoothConnectExplanation': 'bluetoothConnectExplanation':
'The app needs Bluetooth connect permission to connect to Bluetooth devices.', 'A aplicação precisa de permissão de ligação Bluetooth para ligar a dispositivos Bluetooth.',
'locationForBluetoothExplanation': 'locationForBluetoothExplanation':
'The app needs location permission to scan Bluetooth devices.', 'A aplicação precisa de permissão de localização para pesquisar dispositivos Bluetooth.',
'bluetoothScanPermanentDenial': 'bluetoothScanPermanentDenial':
'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', 'A permissão de pesquisa Bluetooth foi recusada permanentemente. Vá às definições para a ativar manualmente.',
'bluetoothConnectPermanentDenial': 'bluetoothConnectPermanentDenial':
'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', 'A permissão de ligação Bluetooth foi recusada permanentemente. Vá às definições para a ativar manualmente.',
'locationPermanentDenial': 'locationPermanentDenial':
'Location permission has been permanently denied, please go to settings to enable it manually.', 'A permissão de localização foi recusada permanentemente. Vá às definições para a ativar manualmente.',
'notificationPermission': 'Notification', 'notificationPermission': 'Notificações',
'locationPermission': 'Location', 'locationPermission': 'Localização',
'notificationPermissionExplanation': 'notificationPermissionExplanation':
'Notification permission is required to display music playback status.', 'A permissão de notificações é necessária para mostrar o estado de reprodução de música.',
'locationPermissionExplanation': 'locationPermissionExplanation':
'Location permission is required to get current location.', 'A permissão de localização é necessária para obter a localização atual.',
'notificationPermissionPermanentDenial': 'notificationPermissionPermanentDenial':
'You have permanently denied notification permission, please go to settings to enable it.', 'Recusou permanentemente a permissão de notificações. Vá às definições para a ativar.',
'locationPermissionPermanentDenial': 'locationPermissionPermanentDenial':
'You have permanently denied location permission, please go to settings to enable it.', 'Recusou permanentemente a permissão de localização. Vá às definições para a ativar.',
'storagePermission': 'Storage', 'storagePermission': 'Armazenamento',
'microphonePermissionExplanation': 'microphonePermissionExplanation':
'We need microphone permission to record audio content.', 'Precisamos da permissão de microfone para gravar conteúdo de áudio.',
'storagePermissionExplanation': 'storagePermissionExplanation':
'We need storage permission so you can select and upload audio files.', 'Precisamos da permissão de armazenamento para que possa selecionar e enviar ficheiros de áudio.',
'microphonePermissionPermanentDenial': 'microphonePermissionPermanentDenial':
'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', 'A permissão de microfone foi recusada permanentemente. Para continuar a usar esta funcionalidade, vá às definições da aplicação e ative manualmente a permissão de microfone.',
'storagePermissionPermanentDenial': 'storagePermissionPermanentDenial':
'Storage permission has been permanently denied. To continue using this feature, please go to app settings to manually enable storage permission.', 'A permissão de armazenamento foi recusada permanentemente. Para continuar a usar esta funcionalidade, vá às definições da aplicação e ative manualmente a permissão de armazenamento.',
'permissionUtilNeed': 'Need ', 'permissionUtilNeed': 'Need ',
'permissionUtilPermission': ' Permission', 'permissionUtilPermission': ' Permissão',
'permissionUtilRestricted': ' Permission Restricted', 'permissionUtilRestricted': ' Permissão restrita',
'permissionUtilRestrictedMessage': 'permissionUtilRestrictedMessage':
'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'Esta funcionalidade não está disponível ou está restrita no dispositivo atual. Verifique as definições do dispositivo ou restrições do sistema',
'permissionUtilConfirm': 'OK', 'permissionUtilConfirm': 'OK',
// 原生前台服务通知(Android) // 原生前台服务通知(Android)
@ -1423,27 +1434,28 @@ const Map<String, String> ptPT = {
'bleConnectionFailed': 'Falha na conexão BLE', 'bleConnectionFailed': 'Falha na conexão BLE',
'deviceAuthorizationFailedCheckCode': 'deviceAuthorizationFailedCheckCode':
'Falha na autorização do dispositivo, verifique o código de autorização', 'Falha na autorização do dispositivo, verifique o código de autorização',
'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideTitle':
'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: 'É necessária a ativação manual do Bluetooth', // 需要手动开启蓝牙
'bluetoothGuideSteps': 'Siga estes passos:', // 请按照以下步骤操作:
'bluetoothGuideStep1': 'bluetoothGuideStep1':
'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 'Ative o Bluetooth: Definições → Bluetooth → Ligar', // 开启蓝牙:设置 → 蓝牙 → 开启
'bluetoothGuideStep2': 'bluetoothGuideStep2':
'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 'Ligue o dispositivo: encontre o seu dispositivo em “Os meus dispositivos” e toque para ligar', // 连接设备:在"我的设备"中找到您的设备并点击连接
'bluetoothGuideStep3': 'bluetoothGuideStep3':
'Return to app to continue pairing process', // 返回应用继续配对流程 'Volte à app para continuar o processo de emparelhamento', // 返回应用继续配对流程
'bluetoothGuideTip': 'bluetoothGuideTip':
'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'Dica: também pode premir continuamente o ícone Bluetooth no Centro de controlo para aceder rapidamente às definições de Bluetooth', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置
'iKnow': 'I Know', // 我知道了 'iKnow': 'Já percebi', // 我知道了
// 配对模块 - 绑定奖励 // 配对模块 - 绑定奖励
"firstBindRewardTitle": "Welcome Reward", "firstBindRewardTitle": "Recompensa de boas‑vindas",
"firstBindRewardDesc": "You've received binding rewards.", "firstBindRewardDesc": "Recebeu as recompensas de vinculação.",
"vipLevelLabel": "VIP Level:", "vipLevelLabel": "Nível VIP:",
"expiryLabel": "Expiration:", "expiryLabel": "Data de expiração:",
"notActivated": "Not activated", "notActivated": "Não ativado",
"aiChatCreditsLabel": "AI Chat Credits:", "aiChatCreditsLabel": "Créditos do AI Chat:",
"translationCreditsLabel": "Translation Credits:", "translationCreditsLabel": "Créditos de tradução:",
"meetingCreditsLabel": "Meeting Credits:", "meetingCreditsLabel": "Créditos de reuniões:",
"ok": "OK", "ok": "OK",
// 用户反馈模块 // 用户反馈模块
@ -1474,13 +1486,14 @@ const Map<String, String> ptPT = {
"connectionFailed": "Falha na Conexão", "connectionFailed": "Falha na Conexão",
"retryConnection": "Tentar Conectar Novamente", "retryConnection": "Tentar Conectar Novamente",
"ota_updateNow": "Atualizar Agora", "ota_updateNow": "Atualizar Agora",
"otaVersionInfoFailed": "Failed to get version info. Please try again later.", "otaVersionInfoFailed":
"Falha ao obter as informações da versão. Tente novamente mais tarde.",
"otaDeviceInfoUnavailable": "otaDeviceInfoUnavailable":
"Unable to get device info. Please check the connection and retry.", "Não foi possível obter as informações do dispositivo. Verifique a ligação e tente novamente.",
"otaProductInfoUnavailable": "otaProductInfoUnavailable":
"Unable to identify the device. Please reconnect and retry.", "Não foi possível identificar o dispositivo. Volte a ligar e tente novamente.",
"otaFirmwareVersionInvalid": "otaFirmwareVersionInvalid":
"Firmware version is abnormal. Please reconnect and retry.", "A versão do firmware é anormal. Volte a ligar e tente novamente.",
"keepConnectedDontClose": "keepConnectedDontClose":
"Mantenha o dispositivo conectado, não feche a aplicação", "Mantenha o dispositivo conectado, não feche a aplicação",
"doNotDisconnect": "Não desconecte", "doNotDisconnect": "Não desconecte",
@ -1507,7 +1520,7 @@ const Map<String, String> ptPT = {
'Conexao BLE necessaria\nVerifique a conexao e tente novamente', 'Conexao BLE necessaria\nVerifique a conexao e tente novamente',
'otaDeviceInfoUnavailableTitle': 'Informacoes do dispositivo indisponiveis', 'otaDeviceInfoUnavailableTitle': 'Informacoes do dispositivo indisponiveis',
'otaCannotGetDeviceInfo': 'otaCannotGetDeviceInfo':
'Cannot get device info\nPlease reconnect device or try again later', 'Não foi possível obter as informações do dispositivo\nVolte a ligar o dispositivo ou tente novamente mais tarde',
'otaBleCheckFailed': 'Verificacao de conexao BLE falhou', 'otaBleCheckFailed': 'Verificacao de conexao BLE falhou',
'otaCannotGetDeviceInfoCheckConnection': 'otaCannotGetDeviceInfoCheckConnection':
'Nao foi possivel obter informacoes, verifique a conexao', 'Nao foi possivel obter informacoes, verifique a conexao',

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

@ -1,3 +1,4 @@
// 罗马尼亚-罗马尼亚语
const Map<String, String> roRO = { const Map<String, String> roRO = {
// 通用 // 通用
'continue': 'Continuă', 'continue': 'Continuă',
@ -18,11 +19,11 @@ const Map<String, String> roRO = {
"unknownError": "Eroare necunoscută", "unknownError": "Eroare necunoscută",
"asrConnectionFailed": "asrConnectionFailed":
"Conexiunea la serviciul de recunoaștere vocală a eșuat. Verificați rețeaua sau încercați din nou mai târziu.", "Conexiunea la serviciul de recunoaștere vocală a eșuat. Verificați rețeaua sau încercați din nou mai târziu.",
"justNow": "Just now", "justNow": "Adesso",
"minutesAgo": "@minutes minutes ago", "minutesAgo": "@minutes minute fa",
"yesterday": "Yesterday", "yesterday": "Ieri",
"daysAgo": "@days days ago", "daysAgo": "@days zile fa",
"hoursAgo": "@hours hours ago", "hoursAgo": "@hours ore fa",
// 启动页 // 启动页
"slogan": "Conectând lumea, dincolo de sunet", "slogan": "Conectând lumea, dincolo de sunet",
@ -220,55 +221,55 @@ const Map<String, String> roRO = {
"scene": "Scenariu", "scene": "Scenariu",
// 用量统计模块 // 用量统计模块
"aiChat": "AI Chat", "aiChat": "Chat AI",
"translationStats": "Translation Statistics", "translationStats": "Statistici de traducere",
"meetingStats": "Meeting Statistics", "meetingStats": "Statistici de ședințe",
"today": "Today", "today": "Astăzi",
"thisWeek": "This Week", "thisWeek": "Săptămâna aceasta",
"thisMonth": "This Month", "thisMonth": "Luna aceasta",
"history": "History", "history": "Istoric",
"currentSessionStats": "Current Session Stats", "currentSessionStats": "Statistici sesiune curentă",
"translationCount": "Translation Count", "translationCount": "Număr traduceri",
"sessionDuration": "Session Duration", "sessionDuration": "Durata sesiunii",
"characters": "Characters", "characters": "Caractere",
"recordingDuration": "Recording Duration", "recordingDuration": "Durata înregistrării",
"totalApiCalls": "Total API Calls", "totalApiCalls": "Total apeluri API",
"sessionCount": "Session Count", "sessionCount": "Număr sesiuni",
"totalCharacters": "Total Characters", "totalCharacters": "Total caractere",
"apiCallStats": "API Call Stats", "apiCallStats": "Statistici apeluri API",
"translationApi": "Translation API", "translationApi": "API traducere",
"asr": "ASR", "asr": "ASR",
"tts": "TTS", "tts": "TTS",
"dataVolumeStats": "Data Volume Stats", "dataVolumeStats": "Statistici volum date",
"sourceTextCharacters": "Source Text Characters", "sourceTextCharacters": "Caractere text sursă",
"ttsTextCharacters": "TTS Text Characters", "ttsTextCharacters": "Caractere text TTS",
"effectiveAudioDuration": "Effective Audio Duration", "effectiveAudioDuration": "Durată audio efectivă",
"totalSessionDuration": "Total Session Duration", "totalSessionDuration": "Durată totală sesiuni",
"costStats": "Cost Stats", "costStats": "Statistici cost",
"estimatedCost": "Estimated Cost", "estimatedCost": "Cost estimat",
"dailyCostThreshold": "Daily Cost Threshold", "dailyCostThreshold": "Prag cost zilnic",
"monthlyCostThreshold": "Monthly Cost Threshold", "monthlyCostThreshold": "Prag cost lunar",
"usageBehaviorStats": "Usage Behavior Stats", "usageBehaviorStats": "Statistici comportament utilizare",
"mostUsedLanguagePair": "Most-used language pair", "mostUsedLanguagePair": "Pereche de limbi cea mai folosită",
"mostUsedMode": "Most-used mode", "mostUsedMode": "Modul cel mai folosit",
"asrApiCalls": "ASR Calls", "asrApiCalls": "Apeluri ASR",
"totalAudioDuration": "Total Audio Duration", "totalAudioDuration": "Durată audio totală",
"audioFileSize": "Audio File Size", "audioFileSize": "Dimensiune fișier audio",
"transcriptBytes": "Transcript Bytes", "transcriptBytes": "Octeți transcriere",
"loadFailed": "Load Failed", "loadFailed": "Încărcare eșuată",
"statsLoadFailedTryLater": "statsLoadFailedTryLater":
"Statistics failed to load. Please try again later.", "Nu s-au putut încărca statisticile. Încercați din nou mai târziu.",
"cleanupComplete": "Cleanup Complete", "cleanupComplete": "Cleanup Complete",
"cleanedOldData": "Cleaned data older than 90 days", "cleanedOldData": "Cleaned data older than 90 days",
"exportFeature": "Export Feature", "exportFeature": "Export Feature",
"exportInDevelopment": "Data export is under development", "exportInDevelopment": "Data export is under development",
// 商品模块 - 通用 // 商品模块 - 通用
'availablePackages': 'Available Packages', 'availablePackages': 'Pachete disponibile',
'remainingQuota': 'Remaining Quota', 'remainingQuota': 'Cotă rămasă',
'totalQuota': 'Total Quota', 'totalQuota': 'Cotă totală',
'remaining': 'Remaining', 'remaining': 'Rămas',
'featureDescription': 'Feature Description', 'featureDescription': 'Descriere funcție',
'paymentSuccess': 'Plată reușită', 'paymentSuccess': 'Plată reușită',
'paymentFailed': 'Plata a eșuat', 'paymentFailed': 'Plata a eșuat',
'gotIt': 'Am înțeles', 'gotIt': 'Am înțeles',
@ -328,95 +329,97 @@ const Map<String, String> roRO = {
'alipayPaymentLaunchFailed': 'Lansarea Alipay a eșuat', 'alipayPaymentLaunchFailed': 'Lansarea Alipay a eșuat',
'cannotLaunchAlipayPayment': 'Nu se poate lansa Alipay', 'cannotLaunchAlipayPayment': 'Nu se poate lansa Alipay',
'alipayPaymentException': 'Excepție Alipay', 'alipayPaymentException': 'Excepție Alipay',
"insufficientIntegral": "Insufficient integral", "insufficientIntegral": "Puncte insuficiente",
"insufficientBalanceDesc": "insufficientBalanceDesc":
'Insufficient balance, please go to the corresponding recharge page to recharge.', 'Sold insuficient. Vă rugăm să accesați pagina de reîncărcare corespunzătoare pentru a reîncărca.',
"recharge": 'Go to Recharge', "recharge": 'Mergeți la reîncărcare',
"aiMemberExpiredDesc": "aiMemberExpiredDesc":
'AI membership expired, please go to the membership recharge page to renew.', 'Abonamentul AI a expirat. Vă rugăm să accesați pagina de reîncărcare a abonamentului pentru a reînnoi.',
// 商品模块 - AI商品页 // 商品模块 - AI商品页
'musicAndRecommendation': 'Music & Recommendation', 'musicAndRecommendation': 'Muzică și recomandări',
'navigationAndRoutes': 'Navigation & Routes', 'navigationAndRoutes': 'Navigație și rute',
'nearbySearch': 'Nearby Search', 'nearbySearch': 'Căutare în apropiere',
'newsInformation': 'News', 'newsInformation': 'Știri',
'communicationAssistant': 'Communication Assistant', 'communicationAssistant': 'Asistent de comunicare',
'aiHeaderDesc1': 'aiHeaderDesc1':
'Longer conversation quota, more tool calls, extended context length.', 'Cotă de conversații mai mare, mai multe apeluri de instrumente, context extins.',
'aiHeaderDesc2': 'aiHeaderDesc2':
'Suitable for agent Q&A, summarization, analysis, and task execution.', 'Potrivit pentru întrebări și răspunsuri, rezumare, analiză și executarea sarcinilor.',
'musicSearchPlaybackControl': 'Music library search and playback control', 'musicSearchPlaybackControl':
'Căutare în bibliotecă și controlul redării muzicii',
'smartPlaylistAndSimilarRecommendations': 'smartPlaylistAndSimilarRecommendations':
'Smart playlist and similar song recommendations', 'Playlist inteligent și recomandări de melodii similare',
'routePlanningAndCongestionAvoidance': 'routePlanningAndCongestionAvoidance':
'Route planning and congestion avoidance', 'Planificare rută și evitarea aglomerației',
'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'voiceBroadcastAndWaypoints': 'Anunț vocal și setări puncte intermediare',
'realTimeWeatherForecast': 'Real-time weather and forecast', 'realTimeWeatherForecast': 'Vreme în timp real și prognoză',
'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', 'clothingAdviceAndTravelReminders':
'poiSearchFoodGasParking': 'POI search: dining / gas / parking', 'Sfaturi vestimentare și memento-uri de călătorie',
'ratingsHoursAndDirectRoutes': 'Ratings, business hours, and direct routing', 'poiSearchFoodGasParking': 'Căutare POI: mâncare / benzină / parcare',
'hotNewsAndTopicOverview': 'Hot news and topic overview', 'ratingsHoursAndDirectRoutes': 'Evaluări, program și rutare directă',
'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'hotNewsAndTopicOverview': 'Știri populare și prezentare subiect',
'helpCallAndSMS': 'Help with calls and SMS', 'longArticleSummariesAndKeyPoints': 'Rezumat articole lungi și puncte cheie',
'helpCallAndSMS': 'Ajutor pentru apeluri și SMS',
'templatedMessagesAndScheduleReminders': 'templatedMessagesAndScheduleReminders':
'Template messages and schedule reminders', 'Mesaje șablon și memento-uri programate',
'aiDisclaimer': 'aiDisclaimer':
'Features depend on device permissions, service availability, and network conditions.', 'Funcțiile depind de permisiunile dispozitivului, disponibilitatea serviciilor și condițiile rețelei.',
// 商品模块 - 翻译商品页 // 商品模块 - 翻译商品页
'realtimeTranscription': 'Real-time Transcription', 'realtimeTranscription': 'Transcriere în timp real',
'sceneLexicon': 'Scenario Glossary', 'sceneLexicon': 'Glosar de scenarii',
'subtitleDisplay': 'Subtitles', 'subtitleDisplay': 'Subtitrări',
'transHeaderDesc1': 'transHeaderDesc1':
'Real-time simultaneous interpretation and text translation with low-latency voice.', 'Interpretare simultană în timp real și traducere de text cu voce cu latență redusă.',
'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.',
'translateZhEn': 'Chinese-English translation', 'translateZhEn': 'Traducere chineză–engleză',
'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'lowLatencyVoiceBroadcast': 'Difuzare vocală cu latență redusă',
'multiLangTextTranslation': 'Multilingual text translation', 'multiLangTextTranslation': 'Traducere text multilingvă',
'termOptimizationContextPreserve': 'termOptimizationContextPreserve':
'Terminology optimization and context preservation', 'Optimizare terminologie și păstrarea contextului',
'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'lexiconTourBusinessLife': 'Lexicoane pentru călătorii/afaceri/viață',
'personalVocabularyMemory': 'Personal vocabulary memory', 'personalVocabularyMemory': 'Memorie vocabular personal',
'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'conversationSubtitleLargeText': 'Subtitrări conversație / mod text mare',
'colorHighContrast': 'High color contrast', 'colorHighContrast': 'Contrast de culoare ridicat',
'transDisclaimer': 'transDisclaimer':
'Translation performance depends on microphone, network latency, and ambient noise.', 'Performanța traducerii depinde de microfon, latența rețelei și zgomotul ambiental.',
// 商品模块 - 会议商品页 // 商品模块 - 会议商品页
'meetingRecording': 'Meeting Recording', 'meetingRecording': 'Înregistrare ședință',
'transcriptionAndSummary': 'Transcription & Summary', 'transcriptionAndSummary': 'Transcriere și rezumat',
'keywordSearch': 'Keyword Search', 'keywordSearch': 'Căutare cuvinte cheie',
'collaborationSharing': 'Collaboration & Sharing', 'collaborationSharing': 'Colaborare și partajare',
'meetingHeaderDesc1': 'meetingHeaderDesc1':
'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', 'Înregistrare audio, transcriere, căutare cuvinte cheie și rezumat automat pentru a crește eficiența ședințelor.',
'meetingHeaderDesc2': 'meetingHeaderDesc2':
'Suitable for business meetings, class notes, and interview minutes.', 'Suitable for business meetings, class notes, and interview minutes.',
'meetingAutoRecording': 'Auto recording and segmentation', 'meetingAutoRecording': 'Înregistrare automată și segmentare',
'meetingSpeakerTagging': 'Speaker labeling', 'meetingSpeakerTagging': 'Etichetare vorbitori',
'meetingLongAudioTranscription': 'Long audio transcription', 'meetingLongAudioTranscription': 'Transcriere audio lung',
'meetingKeyPointSummary': 'Key point extraction', 'meetingKeyPointSummary': 'Extragere puncte cheie',
'meetingTopicNameSearch': 'Search by topic/name', 'meetingTopicNameSearch': 'Căutare după subiect/nume',
'meetingTimelineJump': 'Timeline jump', 'meetingTimelineJump': 'Salt pe cronologie',
'meetingExportSummary': 'Export minutes', 'meetingExportSummary': 'Export proces-verbal',
'meetingMultiPlatformShare': 'Share across platforms', 'meetingMultiPlatformShare': 'Partajare pe mai multe platforme',
'meetingDisclaimer': 'meetingDisclaimer':
'Use in quiet environments; performance depends on microphone and network.', 'Utilizați în medii liniștite; performanța depinde de microfon și rețea.',
// 商品模块 - VIP会员页 // 商品模块 - VIP会员页
'benefitsOverview': 'Benefits overview', 'benefitsOverview': 'Prezentare beneficii',
'higherQuota': 'Higher usage quota', 'higherQuota': 'Cotă de utilizare mai mare',
'lowerUnitPrice': 'Lower unit price', 'lowerUnitPrice': 'Preț unitar mai mic',
'priorityService': 'Priority service', 'priorityService': 'Serviciu prioritar',
'exclusiveSupportChannel': 'Dedicated support channel', 'exclusiveSupportChannel': 'Canal de suport dedicat',
'fastResponse': 'Fast issue response', 'fastResponse': 'Răspuns rapid la probleme',
'eventsAndDiscounts': 'Events and discounts', 'eventsAndDiscounts': 'Evenimente și reduceri',
'memberExclusiveEvents': 'Member-exclusive events', 'memberExclusiveEvents': 'Evenimente exclusive pentru membri',
'longTermDiscountPlan': 'Long-term discount plan', 'longTermDiscountPlan': 'Plan de reducere pe termen lung',
'generalPrivileges': 'General privileges', 'generalPrivileges': 'Beneficii generale',
'earlyAccessNewFeatures': 'Early access to new features', 'earlyAccessNewFeatures': 'Acces timpuriu la funcții noi',
'crossDeviceSync': 'Cross-device sync', 'crossDeviceSync': 'Sincronizare între dispozitive',
'vipDisclaimer': 'vipDisclaimer':
'Actual benefits depend on the package details and may change with versions.', 'Beneficiile reale depind de detaliile pachetului și se pot schimba odată cu versiunile.',
// 商品模块 - 商品名称与描述 // 商品模块 - 商品名称与描述
'ai_001_name': 'AI Basic 100', 'ai_001_name': 'AI Basic 100',
@ -425,18 +428,18 @@ const Map<String, String> roRO = {
'meet_001_name': 'Meeting Basic 100', 'meet_001_name': 'Meeting Basic 100',
'meet_002_name': 'Meeting Basic 500', 'meet_002_name': 'Meeting Basic 500',
'meet_003_name': 'Meeting Basic 1000', 'meet_003_name': 'Meeting Basic 1000',
'trans_001_name': 'Translation Basic 100', 'trans_001_name': 'Traducere Basic 100',
'trans_002_name': 'Translation Basic 500', 'trans_002_name': 'Traducere Basic 500',
'trans_003_name': 'Translation Basic 1000', 'trans_003_name': 'Traducere Basic 1000',
'ai_001_desc': 'Includes 100 uses. Access core AI features.', 'ai_001_desc': 'Includes 100 uses. Access core AI features.',
'ai_002_desc': 'Includes 500 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.', 'ai_003_desc': 'Includes 1000 uses. Access core AI features.',
'meet_001_desc': 'Includes 100 meeting recordings/transcriptions.', 'meet_001_desc': 'Include 100 înregistrări/transcrieri de ședințe.',
'meet_002_desc': 'Includes 500 meeting recordings/transcriptions.', 'meet_002_desc': 'Include 500 înregistrări/transcrieri de ședințe.',
'meet_003_desc': 'Includes 1000 meeting recordings/transcriptions.', 'meet_003_desc': 'Include 1000 înregistrări/transcrieri de ședințe.',
'trans_001_desc': 'Includes 100 translations (voice/text).', 'trans_001_desc': 'Include 100 traduceri (voce/text).',
'trans_002_desc': 'Includes 500 translations (voice/text).', 'trans_002_desc': 'Include 500 traduceri (voce/text).',
'trans_003_desc': 'Includes 1000 translations (voice/text).', 'trans_003_desc': 'Include 1000 traduceri (voce/text).',
// 商品模块 - 页脚 // 商品模块 - 页脚
'appNameProvider': 'App: VoiTrans · Provided by: VoiTrans', 'appNameProvider': 'App: VoiTrans · Provided by: VoiTrans',
@ -492,37 +495,38 @@ const Map<String, String> roRO = {
'recordingDetails': 'Detalii înregistrare', 'recordingDetails': 'Detalii înregistrare',
'aiSummary': 'Rezumat AI', 'aiSummary': 'Rezumat AI',
'meetingTranscript': 'Transcriere ședință', 'meetingTranscript': 'Transcriere ședință',
'files': 'Files', 'files': 'Fișiere',
'mine': 'Mine', 'mine': 'Ale mele',
'connect': 'Connect', 'connect': 'Conectează',
'allFiles': 'All Files', 'allFiles': 'Toate fișierele',
'searchInAllFiles': 'Search in all files', 'searchInAllFiles': 'Caută în toate fișierele',
'from': 'From', 'from': 'De la',
'sortBy': 'Sort by', 'sortBy': 'Sortează după',
'creationTime': 'Creation Time', 'creationTime': 'Data creării',
'bluetoothConnection': 'Bluetooth Connection', 'bluetoothConnection': 'Conexiune Bluetooth',
'meetingReconnect': 'Reconnect', 'meetingReconnect': 'Reconectează',
'searching': 'Searching...', 'searching': 'Se caută...',
'searchFailed': 'Search failed, please check if Bluetooth is enabled', 'searchFailed': 'Căutarea a eșuat, verificați dacă Bluetooth este activat',
'aiPenNotFound': 'AI PEN device not found', 'aiPenNotFound': 'Dispozitivul AI PEN nu a fost găsit',
'connectedToAiPen': 'Connected to AI PEN device', 'connectedToAiPen': 'Conectat la dispozitivul AI PEN',
'checkingNewFiles': 'Checking for new files to import', 'checkingNewFiles': 'Se verifică fișiere noi pentru import',
'startingWifi': 'Starting Wi-Fi...', 'startingWifi': 'Starting Wi-Fi...',
'newFilesDetected': 'New files detected, preparing to import', 'newFilesDetected': 'New files detected, preparing to import',
'noNewFiles': 'No new files to import', 'noNewFiles': 'No new files to import',
'connectingWifi': 'Connecting to Wi-Fi...', 'connectingWifi': 'Se conectează la Wi‑Fi...',
'wifiConnected': 'Wi-Fi connected successfully', 'wifiConnected': 'Wi‑Fi conectat cu succes',
'downloadingFiles': 'Downloading files...', 'downloadingFiles': 'Se descarcă fișiere...',
'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadingFileProgress':
'downloadComplete': 'Download complete', 'Total {total} fișiere, se descarcă fișierul {current}',
'downloadComplete': 'Descărcare finalizată',
'downloadCompleteInfo': 'downloadCompleteInfo':
'Download complete, {count} files in total, returning automatically in 2 seconds', 'Descărcare finalizată, {count} fișiere în total, revenire automată în 2 secunde',
// Meeting模块 - 录音功能 // Meeting模块 - 录音功能
'startRecording': 'Start Recording', 'startRecording': 'Începe înregistrarea',
'liveRecording': 'Live Recording', 'liveRecording': 'Înregistrare live',
'audioVideoRecording': 'Audio/Video Recording', 'audioVideoRecording': 'Înregistrare audio/video',
'callRecording': 'Call Recording', 'callRecording': 'Înregistrare apel',
'importAudio': 'Import Audio', 'importAudio': 'Import Audio',
'meetingRecordExitTitle': 'Ieși din înregistrare', // 退出录音 'meetingRecordExitTitle': 'Ieși din înregistrare', // 退出录音
'meetingRecordExitMessage': 'Alege ce să faci înainte de a ieși', // 请选择离开后的操作 'meetingRecordExitMessage': 'Alege ce să faci înainte de a ieși', // 请选择离开后的操作
@ -587,85 +591,87 @@ const Map<String, String> roRO = {
'custom': 'Personalizat', 'custom': 'Personalizat',
'pleaseEnter': 'Vă rugăm introduceți', 'pleaseEnter': 'Vă rugăm introduceți',
'viewAll': 'View All', 'viewAll': 'View All',
'recordingLanguage': 'Recording Language', 'recordingLanguage': 'Limba înregistrării',
'chineseSimplified': 'Chinese Mandarin (Simplified)', 'chineseSimplified': 'Chinese Mandarin (Simplified)',
'meetingGenerateNow': 'Generate Now', 'meetingGenerateNow': 'Generate Now',
'keyEventsAnalyzed': 'Analyzed {count} key events.', 'keyEventsAnalyzed': 'Analyzed {count} key events.',
'aiAnalysisDesc': 'aiAnalysisDesc':
'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', 'Analiza AI identifică evenimente-cheie în înregistrări, permițându-vă să selectați evenimente importante pentru generarea AI.',
// Meeting模块 - 文件操作 // Meeting模块 - 文件操作
'importing': 'Importing...', 'importing': 'Importing...',
'batchImporting': 'Batch importing...', 'batchImporting': 'Batch importing...',
'importingLocalRecordings': 'Importing local recordings...', 'importingLocalRecordings': 'Se importă înregistrări locale...',
'importFailed': 'Import file failed: {filePath}, error: {error}', 'importFailed': 'Importul fișierului a eșuat: {filePath}, eroare: {error}',
'importSuccess': 'Successfully imported {count} local recordings', 'importSuccess': 'Au fost importate cu succes {count} înregistrări locale',
'importError': 'Import failed: {error}', 'importError': 'Import eșuat: {error}',
'pleaseSelectAudioFile': 'Please select audio file', 'pleaseSelectAudioFile': 'Vă rugăm să selectați un fișier audio',
'shareAudio': 'Share Meeting Audio', 'shareAudio': 'Share Meeting Audio',
'shareComplete': 'Share complete!', 'shareComplete': 'Share complete!',
'shareFailed': 'Share failed: {error}', 'shareFailed': 'Partajarea a eșuat: {error}',
'fileProcessingFailed': 'File processing failed: {filePath}, error: {error}', 'fileProcessingFailed':
'Procesarea fișierului a eșuat: {filePath}, eroare: {error}',
// Meeting模块 - 思维导图 // Meeting模块 - 思维导图
'saveMindMap': 'Salvează harta mentală', 'saveMindMap': 'Salvează harta mentală',
'shareMindMap': 'Share Mind Map', 'shareMindMap': 'Partajează harta mentală',
'shareSuccess': 'Share Success', 'shareSuccess': 'Partajare reușită',
// Meeting模块 - AI问答 // Meeting模块 - AI问答
'askAI': 'Ask AI ...', 'askAI': 'Întreabă AI...',
'askAIPrompt': 'What can I help you with today?', 'askAIPrompt': 'Cu ce te pot ajuta astăzi?',
'continueAsk': 'Continue Asking', 'continueAsk': 'Continuă să întrebi',
'todoList': 'To-Do List', 'todoList': 'Listă de sarcini',
'extractConclusion': 'Extract Conclusion', 'extractConclusion': 'Extrage concluzia',
'generateKeyIndicators': 'Generate Key Indicators', 'generateKeyIndicators': 'Generează indicatori-cheie',
// Meeting模块 - 分享与导出 // Meeting模块 - 分享与导出
'shareLink': 'Share Link', 'shareLink': 'Partajează linkul',
'copyTranscript': 'Copy Transcript', 'copyTranscript': 'Copiază transcrierea',
'copySummary': 'Copy Summary', 'copySummary': 'Copiază rezumatul',
'exportAudio': 'Export Audio', 'exportAudio': 'Exportă audio',
'exportTranscript': 'Export Transcript', 'exportTranscript': 'Exportă transcrierea',
'shareMeetingAudio': 'Share Meeting Audio', 'shareMeetingAudio': 'Partajează audio ședință',
'exportSummary': 'Export Summary', 'exportSummary': 'Exportă rezumatul',
'exportAs': 'Export As', 'exportAs': 'Exportă ca',
'exportingPDF': 'Exporting PDF...', 'exportingPDF': 'Se exportă PDF...',
'export': 'Exportă', 'export': 'Exportă',
// Meeting模块 - 发言者 // Meeting模块 - 发言者
'applyToAllParagraphs': 'Aplică la toate paragrafele acestui vorbitor', 'applyToAllParagraphs': 'Aplică la toate paragrafele acestui vorbitor',
'summaryWillBeUpdatedAutomatically': 'summaryWillBeUpdatedAutomatically':
'Rezumatul va fi actualizat automat pe baza șablonului', 'Rezumatul va fi actualizat automat pe baza șablonului',
'nameCurrentSpeaker': 'Name Current Speaker', 'nameCurrentSpeaker': 'Numește vorbitorul curent',
'recentlyUsedNames': 'Recently Used Names', 'recentlyUsedNames': 'Nume folosite recent',
'applyToCurrentParagraph': 'Apply to Current Paragraph', 'applyToCurrentParagraph': 'Aplică la paragraful curent',
'totalTime': 'Total Time', 'totalTime': 'Timp total',
'summarySpeakerWillBeUpdatedAutomatically': 'summarySpeakerWillBeUpdatedAutomatically':
'Summary speakers will be updated automatically', 'Vorbitorii din rezumat vor fi actualizați automat',
// Meeting模块 - 云端同步 // Meeting模块 - 云端同步
'syncToCloud': 'Sync to Cloud', 'syncToCloud': 'Sincronizează în cloud',
'syncToCloudTip': '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).', 'Sincronizează automat înregistrările în cloud. Poți reda, gestiona și partaja înregistrări prin aplicația VOITRANS sau VOITRANS Web (web.voitrans.com).',
'syncToVoitransApp': 'Sync VOITRANS APP', 'syncToVoitransApp': 'Sincronizează aplicația VOITRANS',
'transcriptionRecord': 'Transcription Record', 'transcriptionRecord': 'Înregistrare de transcriere',
// Meeting模块 - 我的页面 // Meeting模块 - 我的页面
'transcriptionRecords': 'Transcription Records', 'transcriptionRecords': 'Înregistrări de transcriere',
'templateCommunity': 'Template Community', 'templateCommunity': 'Comunitatea de șabloane',
'comingSoon': 'Coming Soon', 'comingSoon': 'În curând',
'integration': 'Integration', 'integration': 'Integrare',
'voitransPrivateCloud': 'VOITRANS PRIVATE CLOUD', 'voitransPrivateCloud': 'VOITRANS PRIVATE CLOUD',
'enabled': 'Enabled', 'enabled': 'Activat',
'disabled': 'Disabled', 'disabled': 'Dezactivat',
'myVoitransDevice': 'My VOITRANS Device', 'myVoitransDevice': 'Dispozitivul meu VOITRANS',
'helpAndFeedback': 'Help & Feedback', 'helpAndFeedback': 'Help & Feedback',
'aboutVoitrans': 'About VOITRANS', 'aboutVoitrans': 'About VOITRANS',
'meetingDays': 'Days', 'meetingDays': 'Days',
'meetingHours': 'Hours', 'meetingHours': 'Hours',
'voitransAiMember': 'Voitrans AI Member', 'voitransAiMember': 'Voitrans AI Member',
'unlockStarterMember': 'Unlock Starter Member', 'unlockStarterMember': 'Unlock Starter Member',
'bindDeviceToActivate': 'Bind Voitrans device to activate Starter membership', 'bindDeviceToActivate':
'Asociați dispozitivul Voitrans pentru a activa abonamentul Starter',
'unlockNow': 'Unlock Now', 'unlockNow': 'Unlock Now',
// Meeting模块 - 会员与升级 // Meeting模块 - 会员与升级
@ -689,7 +695,7 @@ const Map<String, String> roRO = {
'customTemplateDesc': 'customTemplateDesc':
'You can customize summary prompts according to your needs and use them to generate the required summaries.', 'You can customize summary prompts according to your needs and use them to generate the required summaries.',
'askAiDesc': 'askAiDesc':
'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', 'Extrage inteligent informații mai profunde din înregistrări și generează cu un singur clic tabele de date, concluzii-cheie, liste de sarcini, e-mailuri de raport și alt conținut formatat.',
'visualMindMapDesc': 'visualMindMapDesc':
'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.',
'templateCommunityDesc': 'templateCommunityDesc':
@ -697,13 +703,13 @@ const Map<String, String> roRO = {
'speakerIdentificationDesc': 'speakerIdentificationDesc':
'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.',
'privateCloudSyncDesc': 'privateCloudSyncDesc':
'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', 'Înregistrările și transcrierile sunt stocate în siguranță pe servere cloud dedicate, cu criptare completă la încărcare și descărcare pentru a asigura confidențialitatea și securitatea.',
'aiVoiceEnhancementDesc': 'aiVoiceEnhancementDesc':
'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.',
'audioImportDesc': 'audioImportDesc':
'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.',
'multipleExportFormatsDesc': 'multipleExportFormatsDesc':
'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', 'Exportați înregistrările audio, textul transcris și rezumatele în diverse formate (TXT, PDF, JPEG) după nevoie.',
'upgradeMembership': 'Upgrade Your Membership', 'upgradeMembership': 'Upgrade Your Membership',
'yearlySubscription': 'Yearly Subscription', 'yearlySubscription': 'Yearly Subscription',
'monthlySubscription': 'Monthly Subscription', 'monthlySubscription': 'Monthly Subscription',
@ -733,7 +739,7 @@ const Map<String, String> roRO = {
'purchase': 'Purchase', 'purchase': 'Purchase',
// Meeting模块 - 录音语言 // Meeting模块 - 录音语言
'recordLanguage': 'Recording Language', 'recordLanguage': 'Limba înregistrării',
'cantonese': 'Cantonese', 'cantonese': 'Cantonese',
'sichuan': 'Sichuan Dialect', 'sichuan': 'Sichuan Dialect',
'shanghai': 'Shanghai Dialect', 'shanghai': 'Shanghai Dialect',
@ -761,10 +767,10 @@ const Map<String, String> roRO = {
"translationRecharge": "Recarga de traducere", "translationRecharge": "Recarga de traducere",
"meetingAssistantRecharge": "Recarga de asistent ședință", "meetingAssistantRecharge": "Recarga de asistent ședință",
"cloudSync": "Recarga de sincronizare în cloud", "cloudSync": "Recarga de sincronizare în cloud",
"memberService": "Member Service", "memberService": "Serviciu membri",
"bindRewardTitle": "Rewards", "bindRewardTitle": "Recompense",
"bindRewardSimpleDesc": "bindRewardSimpleDesc":
"First bind device reward has been issued. Tap OK to close.", "Recompensa pentru prima asociere a dispozitivului a fost emisă. Atingeți OK pentru a închide.",
"joinDevice": "Dispozitiv conectat:", "joinDevice": "Dispozitiv conectat:",
"accountId": "ID cont:", "accountId": "ID cont:",
"systemSetting": "Setări de sistem", "systemSetting": "Setări de sistem",
@ -814,20 +820,21 @@ const Map<String, String> roRO = {
"loading": "Se încarcă...", "loading": "Se încarcă...",
// 设备管理模块 // 设备管理模块
"deviceTypeUnknown": "Unknown Device", "deviceTypeUnknown": "Dispozitiv necunoscut",
"deviceTypeClassicBluetoothHeadset": "Classic Bluetooth Headset", "deviceTypeClassicBluetoothHeadset": "Căști Bluetooth clasice",
"deviceTypeBleBluetoothHeadset": "BLE Bluetooth Headset", "deviceTypeBleBluetoothHeadset": "Căști Bluetooth BLE",
"deviceTypeSmartVoiceRecorder": "Smart Voice Recorder", "deviceTypeSmartVoiceRecorder": "Reportofon inteligent",
"deviceTypeSmartEye": "Smart Glasses", "deviceTypeSmartEye": "Smart Glasses",
"unbind": "Deleagă", "unbind": "Deleagă",
"noDevicesBound": "No devices bound yet", "noDevicesBound": "Nu există dispozitive asociate încă",
"pleaseBindDeviceFirst": "Please bind a device first to manage", "pleaseBindDeviceFirst":
"noMacAddress": "No MAC Address", "Asociați mai întâi un dispozitiv pentru a-l gestiona",
"licenseCode": "License Code", "noMacAddress": "Fără adresă MAC",
"confirmUnbind": "Confirm Unbind", "licenseCode": "Cod licență",
"confirmUnbind": "Confirmă dezlegarea",
"confirmUnbindMessage": "confirmUnbindMessage":
"Are you sure you want to unbind device \"{deviceName}\"?", "Sigur doriți să dezlegați dispozitivul \"{deviceName}\"?",
"confirmUnbindAction": "Confirm Unbind", "confirmUnbindAction": "Dezleagă",
// Agent模块 - 主界面 // Agent模块 - 主界面
"Lily": "Lily", "Lily": "Lily",
@ -858,22 +865,22 @@ const Map<String, String> roRO = {
"loadMoreMessages": "Încarcă mai multe mesaje...", "loadMoreMessages": "Încarcă mai multe mesaje...",
"loadFailedClickRetry": "Încărcare eșuată, faceți clic pentru a reîncerca", "loadFailedClickRetry": "Încărcare eșuată, faceți clic pentru a reîncerca",
"swipeUpForMore": "Glisați în sus pentru mai mult", "swipeUpForMore": "Glisați în sus pentru mai mult",
"callingTool": "I'm helping you, please wait!", // 正在帮您,请稍等! "callingTool": "Vă ajut, vă rog așteptați!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断 "voice_interrupt": "Întrerupe", // 语音打断
'voice_interrupt_tip': '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.', '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模块 - 预设提示词 // Agent模块 - 预设提示词
"presetMusic": "Play some music", // 来点音乐 "presetMusic": "Redă muzică", // 来点音乐
"presetNavigation": "Navigation to", // 导航 "presetNavigation": "Navighează către", // 导航
"presetWeather": "Today's weather", // 今日天气 "presetWeather": "Vremea astăzi", // 今日天气
"presetNews": "Today's news", // 今日新闻 "presetNews": "Știrile astăzi", // 今日新闻
"presetFood": "Nearby food", // 美食 "presetFood": "Mâncare în apropiere", // 美食
"playSomeMusic": "Play some popular music", // 播放一些流行音乐 "playSomeMusic": "Redă muzică populară", // 播放一些流行音乐
"navigationTo": "Please help me navigate to", // 导航到 "navigationTo": "Navighează către", // 导航到
"todayWeather": "How's the weather today?", // 今日天气 "todayWeather": "Cum este vremea astăzi?", // 今日天气
"todayNews": "What's the news today?", // 今日新闻 "todayNews": "Care sunt știrile astăzi?", // 今日新闻
"nearbyFood": "What delicious food is nearby?", // 美食 "nearbyFood": "Unde este mâncare bună pe aici?", // 附近有什么好吃的
// Agent模块 - 欢迎消息与权限 // Agent模块 - 欢迎消息与权限
'welcomeMessage': 'Bună! Sunt **Lily**, vă pot ajuta cu:\n\n' 'welcomeMessage': 'Bună! Sunt **Lily**, vă pot ajuta cu:\n\n'
@ -1021,8 +1028,8 @@ const Map<String, String> roRO = {
"strongWind": "Vânt puternic", "strongWind": "Vânt puternic",
// 翻译模块 - 中间层 // 翻译模块 - 中间层
"pictureTranslation": "Picture Translation", "pictureTranslation": "Traducere imagine",
"textTranslation": "Text Translation", "textTranslation": "Traducere text",
// 翻译模块 - 主页 // 翻译模块 - 主页
"translationHistory": "Istoric traduceri", "translationHistory": "Istoric traduceri",
@ -1032,14 +1039,14 @@ const Map<String, String> roRO = {
"phoneUser": "Utilizator telefon", "phoneUser": "Utilizator telefon",
"selectSourceLanguage": "Selectează limba sursă", "selectSourceLanguage": "Selectează limba sursă",
"selectTargetLanguage": "Selectează limba țintă", "selectTargetLanguage": "Selectează limba țintă",
"me": "Me", "me": "Eu",
"counterPart": "Counterpart", "counterPart": "Interlocutor",
"bluetoothCallStateError": "bluetoothCallStateError":
"Please make sure the Bluetooth headset is connected to the phone and in a call state", "Asigurați-vă că setul cu cască Bluetooth este conectat la telefon și că sunteți într-un apel",
"autoDetect": "Auto Detect", // 自动检测 "autoDetect": "Detectare automată", // 自动检测
// 翻译模块 - 文本翻译 // 翻译模块 - 文本翻译
"languageDetectionFailed": "Language detection failed", "languageDetectionFailed": "Detectarea limbii a eșuat",
// 翻译模块 - 悬浮窗与权限 // 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'Dezactivare fereastra plutitoare', 'disableFloatingWindow': 'Dezactivare fereastra plutitoare',
@ -1049,17 +1056,17 @@ const Map<String, String> roRO = {
'Este necesara permisiunea microfonului pentru inregistrare', 'Este necesara permisiunea microfonului pentru inregistrare',
'deleteTranslationRecordError': 'deleteTranslationRecordError':
'Eroare la stergerea inregistrarii de traducere: @error', 'Eroare la stergerea inregistrarii de traducere: @error',
"translationFailed": "Translation failed", "translationFailed": "Traducerea a eșuat",
"translating": "Se traduce", "translating": "Se traduce",
"translate": "Traducere", "translate": "Traducere",
"pleaseInputText": "Please input text", "pleaseInputText": "Vă rugăm să introduceți text",
"inputTextToTranslate": "Introduceți textul de tradus", "inputTextToTranslate": "Introduceți textul de tradus",
"textTooLong": "Text too long, max 5000 characters", "textTooLong": "Text prea lung, maxim 5000 de caractere",
// 翻译模块 - 历史记录 // 翻译模块 - 历史记录
"noTranslationHistory": "Niciun istoric", "noTranslationHistory": "Niciun istoric",
"historyRecords": "History Records", "historyRecords": "Înregistrări din istoric",
"clearResults": "Clear Results", "clearResults": "Șterge rezultatele",
"clearHistory": "Șterge istoricul", "clearHistory": "Șterge istoricul",
"clearHistoryConfirm": "clearHistoryConfirm":
"Sunteți sigur că doriți să ștergeți tot istoricul traducerilor? Această acțiune nu poate fi anulată.", "Sunteți sigur că doriți să ștergeți tot istoricul traducerilor? Această acțiune nu poate fi anulată.",
@ -1069,54 +1076,57 @@ const Map<String, String> roRO = {
"Sunteți sigur că doriți să ștergeți toate înregistrările de traducere pentru această sesiune? Această acțiune nu poate fi anulată.", "Sunteți sigur că doriți să ștergeți toate înregistrările de traducere pentru această sesiune? Această acțiune nu poate fi anulată.",
// 翻译模块 - 图片翻译 // 翻译模块 - 图片翻译
"selectImageSource": "Select Image Source", "selectImageSource": "Selectați sursa imaginii",
"imagePreview": "Image Preview", "imagePreview": "Previzualizare imagine",
"translationResult": "Translation Result", "translationResult": "Rezultat traducere",
"recognitionResult": "Recognition Result", "recognitionResult": "Rezultat recunoaștere",
"translatedImagePreview": "Translated Image Preview", "translatedImagePreview": "Previzualizare imagine tradusă",
"translatedImageLoadFailed": "Failed to load translated image", "translatedImageLoadFailed": "Nu s-a putut încărca imaginea tradusă",
"pleaseSelectImage": "Please select an image", "pleaseSelectImage": "Vă rugăm să selectați o imagine",
"imageLoadFailed": "Image load failed", "imageLoadFailed": "Încărcarea imaginii a eșuat",
"imageQuality": "Image Quality", "imageQuality": "Calitate imagine",
"maxSize": "Max Size", "maxSize": "Dimensiune maximă",
"close": "Close", "close": "Închide",
"setImageQuality": "Set Image Quality", "setImageQuality": "Setează calitatea imaginii",
"currentQuality": "Current quality: @value%", "currentQuality": "Calitate curentă: @value%",
"setMaxSize": "Set Max Size", "setMaxSize": "Setează dimensiunea maximă",
"currentMaxSize": "Current: @pxpx", "currentMaxSize": "Curent: @pxpx",
"waitingForAction": "Waiting for action", "waitingForAction": "Se așteaptă o acțiune",
"pleaseSelectImageToStart": "Please select an image to start", "pleaseSelectImageToStart": "Selectați o imagine pentru a începe",
"chooseImage": "Choose Image", "chooseImage": "Alegeți imaginea",
"openingCamera": "Opening camera...", "openingCamera": "Se deschide camera...",
"openingPhotoAlbum": "Opening photo album...", "openingPhotoAlbum": "Se deschide albumul foto...",
"cancelled": "Cancelled", "cancelled": "Anulat",
"userCancelledSelection": "User cancelled selection", "userCancelledSelection": "Utilizatorul a anulat selecția",
"translatingImage": "Translating Image", "translatingImage": "Se traduce imaginea",
"callingImageTranslateService": "Calling image translation service...", "callingImageTranslateService":
"savingRecord": "Saving Record", "Se apelează serviciul de traducere a imaginilor...",
"savingTranslationResult": "Saving translation result...", "savingRecord": "Se salvează înregistrarea",
"translationCompleted": "Translation Completed", "savingTranslationResult": "Se salvează rezultatul traducerii...",
"allStepsCompleted": "All steps completed", "translationCompleted": "Traducere finalizată",
"processingFailed": "Processing Failed", "allStepsCompleted": "Toți pașii au fost finalizați",
"processingFailed": "Procesare eșuată",
"imageProcessingOrTranslationFailed": "imageProcessingOrTranslationFailed":
"Image processing or translation failed. Please retry.\nError: {error}", "Procesarea imaginii sau traducerea a eșuat. Încercați din nou.\nEroare: {error}",
"imageTooLarge": "Image size exceeds 4MB limit", "imageTooLarge": "Image size exceeds 4MB limit",
"imageTooLargeHint": "imageTooLargeHint":
"Image size exceeds 4MB. Reduce quality or dimensions and retry", "Image size exceeds 4MB. Reduce quality or dimensions and retry",
"emptyTranslationResult": "Image translation API returned empty result", "emptyTranslationResult":
"API-ul de traducere a imaginii a returnat un rezultat gol",
"imageTranslationFailedTryLater": "imageTranslationFailedTryLater":
"Image translation failed. Network issue or rate limit. Please try later", "Traducerea imaginii a eșuat. Problemă de rețea sau limită de apeluri. Încercați mai târziu",
"imageTranslationApiException": "imageTranslationApiException":
"Image translation API exception. Check network and retry", "Excepție la API-ul de traducere a imaginii. Verificați rețeaua și reîncercați",
"permissionRequired": "Permission Required", "permissionRequired": "Permisiune necesară",
"cameraPermissionRequired": "Camera permission required to take photos", "cameraPermissionRequired":
"Permisiunea camerei este necesară pentru a face fotografii",
"photoAlbumPermissionRequired": "photoAlbumPermissionRequired":
"Photo album permission required to pick images", "Permisiunea pentru albumul foto este necesară pentru a selecta imagini",
"translationDetails": "Translation Details", "translationDetails": "Detalii traducere",
"originalImage": "Original Image", "originalImage": "Imagine originală",
"sourceLanguage": "Source Language", "sourceLanguage": "Limba sursă",
"targetLanguage": "Target Language", "targetLanguage": "Limba țintă",
"translationTime": "Translation Time", "translationTime": "Timp de traducere",
"shareInDevelopment": "Sharing feature under development", "shareInDevelopment": "Sharing feature under development",
// 翻译模块 - 录音文件 // 翻译模块 - 录音文件
@ -1216,32 +1226,32 @@ const Map<String, String> roRO = {
'Serviciul de cont a fost inițializat', // AccountService 已初始化 'Serviciul de cont a fost inițializat', // AccountService 已初始化
// 权限模块 // 权限模块
'meetingStoragePermission': 'Storage', 'meetingStoragePermission': 'Stocare',
'meetingStoragePermissionExplanation': 'meetingStoragePermissionExplanation':
'We need access to storage permissions so you can select and upload audio files.', 'Avem nevoie de permisiunea pentru stocare pentru a putea selecta și încărca fișiere audio.',
'meetingStoragePermissionPermanentDenial': 'meetingStoragePermissionPermanentDenial':
'Detected that you have permanently denied storage permission. To continue using this feature, please go to app settings to manually enable storage permission.', 'A fost detectat că ați refuzat permanent permisiunea pentru stocare. Pentru a continua, mergeți la setările aplicației și activați manual permisiunea pentru stocare.',
'getPermissionStatusFailed': 'Obținerea stării permisiunii a eșuat', 'getPermissionStatusFailed': 'Obținerea stării permisiunii a eșuat',
'communicationPermissions': 'Permisiuni de comunicare', 'communicationPermissions': 'Permisiuni de comunicare',
'bluetoothPermissions': 'Bluetooth Permissions', 'bluetoothPermissions': 'Permisiuni Bluetooth',
'notificationPermissions': 'Notification Permissions', 'notificationPermissions': 'Permisiuni notificări',
'storagePermissions': 'Storage Permissions', 'storagePermissions': 'Permisiuni stocare',
'microphonePermissions': 'Microphone Permissions', 'microphonePermissions': 'Permisiuni microfon',
'alarmPermissions': 'Alarm Permissions', 'alarmPermissions': 'Permisiuni alarme',
'calendarPermissions': 'Permisiuni calendar', 'calendarPermissions': 'Permisiuni calendar',
'locationPermissions': 'Permisiuni locație', 'locationPermissions': 'Permisiuni locație',
'phone': 'Telefon', 'phone': 'Telefon',
'sms': 'SMS', 'sms': 'SMS',
'contacts': 'Contacts', 'contacts': 'Contacte',
'notification': 'Notification', 'notification': 'Notificări',
'alarm': 'Alarm', 'alarm': 'Alarmă',
'calendarWrite': 'Scriere în calendar', 'calendarWrite': 'Scriere în calendar',
'calendarFullAccess': 'Acces complet la calendar', 'calendarFullAccess': 'Acces complet la calendar',
'locationInfo': 'Informații locație', 'locationInfo': 'Informații locație',
'phonePermissionDesc': 'Utilizat pentru funcția de apelare', 'phonePermissionDesc': 'Utilizat pentru funcția de apelare',
'smsPermissionDesc': 'Utilizat pentru funcția de trimitere SMS', 'smsPermissionDesc': 'Utilizat pentru funcția de trimitere SMS',
'alarmPermissionDesc': 'alarmPermissionDesc':
'Used to set exact alarms to ensure reminders trigger on time', 'Folosit pentru a seta alarme exacte, astfel încât memento-urile să pornească la timp',
'calendarWritePermissionDesc': 'calendarWritePermissionDesc':
'Utilizat pentru crearea de evenimente și memento-uri în calendar', 'Utilizat pentru crearea de evenimente și memento-uri în calendar',
'calendarFullAccessPermissionDesc': 'calendarFullAccessPermissionDesc':
@ -1261,72 +1271,75 @@ const Map<String, String> roRO = {
'smsPermissionDetailDesc': 'smsPermissionDetailDesc':
'Funcția de trimitere SMS necesită permisiunea pentru SMS', 'Funcția de trimitere SMS necesită permisiunea pentru SMS',
'alarmPermissionDetailDesc': 'alarmPermissionDetailDesc':
'This permission is required to set exact alarms and ensure reminders trigger on time', 'Această permisiune este necesară pentru a seta alarme exacte și pentru a asigura declanșarea la timp a memento-urilor',
'calendarWritePermissionDetailDesc': 'calendarWritePermissionDetailDesc':
'Crearea de evenimente în calendar necesită permisiunea de scriere în calendar', 'Crearea de evenimente în calendar necesită permisiunea de scriere în calendar',
'calendarFullAccessPermissionDetailDesc': 'calendarFullAccessPermissionDetailDesc':
'Gestionarea evenimentelor din calendar necesită permisiunea completă pentru calendar', 'Gestionarea evenimentelor din calendar necesită permisiunea completă pentru calendar',
'locationPermissionDetailDesc': 'locationPermissionDetailDesc':
'Obținerea informațiilor despre locație necesită permisiunea pentru locație', 'Obținerea informațiilor despre locație necesită permisiunea pentru locație',
'contactsPermissionDesc': 'Used for accessing contact information', 'contactsPermissionDesc': 'Folosit pentru accesarea informațiilor de contact',
'contactsPermissionDetailDesc': 'contactsPermissionDetailDesc':
'Phone call and SMS functionality requires contacts permission to select contacts', 'Funcțiile de apel și SMS necesită permisiunea pentru contacte pentru a selecta contacte',
'bluetoothPermissionDesc': 'bluetoothPermissionDesc':
'Used for connecting and managing Bluetooth devices', 'Folosit pentru conectarea și gestionarea dispozitivelor Bluetooth',
'bluetoothPermissionDetailDesc': 'bluetoothPermissionDetailDesc':
'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'Conectarea la căști Bluetooth și alte dispozitive necesită permisiunea Bluetooth',
'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', 'bluetoothScanPermissionDesc':
'Folosit pentru scanarea dispozitivelor Bluetooth din apropiere',
'bluetoothScanPermissionDetailDesc': 'bluetoothScanPermissionDetailDesc':
'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'Scanarea dispozitivelor Bluetooth din apropiere necesită permisiunea de scanare Bluetooth',
'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', 'bluetoothConnectPermissionDesc':
'Folosit pentru conectarea la dispozitive Bluetooth',
'bluetoothConnectPermissionDetailDesc': 'bluetoothConnectPermissionDetailDesc':
'Connecting to Bluetooth devices requires Bluetooth connect permission', 'Conectarea la dispozitive Bluetooth necesită permisiunea de conectare Bluetooth',
'notificationPermissionDesc': 'Used for sending notification messages', 'notificationPermissionDesc':
'Folosit pentru trimiterea mesajelor de notificare',
'notificationPermissionDetailDesc': 'notificationPermissionDetailDesc':
'App needs notification permission to send you important alerts and messages', 'Aplicația are nevoie de permisiunea de notificare pentru a vă trimite alerte și mesaje importante',
'appNeedsPermissionForFullFunction': 'appNeedsPermissionForFullFunction':
'Aplicația necesită această permisiune pentru funcționalitate completă', 'Aplicația necesită această permisiune pentru funcționalitate completă',
'permanentDenialText': 'permanentDenialText':
'Ați refuzat permanent permisiunea {permission}, vă rugăm să mergeți la setările aplicației pentru a o activa', 'Ați refuzat permanent permisiunea {permission}, vă rugăm să mergeți la setările aplicației pentru a o activa',
'goToSettings': 'Mergeți la setări', 'goToSettings': 'Mergeți la setări',
'bluetoothScan': 'Bluetooth Scan', 'bluetoothScan': 'Scanare Bluetooth',
'bluetoothConnect': 'Bluetooth Connect', 'bluetoothConnect': 'Conectare Bluetooth',
'bluetoothScanExplanation': 'bluetoothScanExplanation':
'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', 'Aplicația are nevoie de permisiunea de scanare Bluetooth pentru a scana dispozitivele Bluetooth din apropiere.',
'bluetoothConnectExplanation': 'bluetoothConnectExplanation':
'The app needs Bluetooth connect permission to connect to Bluetooth devices.', 'Aplicația are nevoie de permisiunea de conectare Bluetooth pentru a se conecta la dispozitive Bluetooth.',
'locationForBluetoothExplanation': 'locationForBluetoothExplanation':
'The app needs location permission to scan Bluetooth devices.', 'Aplicația are nevoie de permisiunea de locație pentru a scana dispozitive Bluetooth.',
'bluetoothScanPermanentDenial': 'bluetoothScanPermanentDenial':
'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', 'Permisiunea de scanare Bluetooth a fost refuzată permanent. Mergeți la setări pentru a o activa manual.',
'bluetoothConnectPermanentDenial': 'bluetoothConnectPermanentDenial':
'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', 'Permisiunea de conectare Bluetooth a fost refuzată permanent. Mergeți la setări pentru a o activa manual.',
'locationPermanentDenial': 'locationPermanentDenial':
'Location permission has been permanently denied, please go to settings to enable it manually.', 'Permisiunea de locație a fost refuzată permanent. Mergeți la setări pentru a o activa manual.',
'notificationPermission': 'Notification', 'notificationPermission': 'Notificări',
'locationPermission': 'Location', 'locationPermission': 'Locație',
'notificationPermissionExplanation': 'notificationPermissionExplanation':
'Notification permission is required to display music playback status.', 'Permisiunea de notificare este necesară pentru a afișa starea redării muzicii.',
'locationPermissionExplanation': 'locationPermissionExplanation':
'Location permission is required to get current location.', 'Permisiunea de locație este necesară pentru a obține locația curentă.',
'notificationPermissionPermanentDenial': 'notificationPermissionPermanentDenial':
'You have permanently denied notification permission, please go to settings to enable it.', 'Ați refuzat permanent permisiunea de notificare. Mergeți la setări pentru a o activa.',
'locationPermissionPermanentDenial': 'locationPermissionPermanentDenial':
'You have permanently denied location permission, please go to settings to enable it.', 'Ați refuzat permanent permisiunea de locație. Mergeți la setări pentru a o activa.',
'storagePermission': 'Storage', 'storagePermission': 'Stocare',
'microphonePermissionExplanation': 'microphonePermissionExplanation':
'We need microphone permission to record audio content.', 'Avem nevoie de permisiunea microfonului pentru a înregistra conținut audio.',
'storagePermissionExplanation': 'storagePermissionExplanation':
'We need storage permission so you can select and upload audio files.', 'Avem nevoie de permisiunea pentru stocare astfel încât să puteți selecta și încărca fișiere audio.',
'microphonePermissionPermanentDenial': 'microphonePermissionPermanentDenial':
'Microphone permission has been permanently denied. To continue using this feature, please go to app settings to manually enable microphone permission.', 'Permisiunea pentru microfon a fost refuzată permanent. Pentru a continua, mergeți la setările aplicației și activați manual permisiunea pentru microfon.',
'storagePermissionPermanentDenial': 'storagePermissionPermanentDenial':
'Storage permission has been permanently denied. To continue using this feature, please go to app settings to manually enable storage permission.', 'Permisiunea pentru stocare a fost refuzată permanent. Pentru a continua, mergeți la setările aplicației și activați manual permisiunea pentru stocare.',
'permissionUtilNeed': 'Need ', 'permissionUtilNeed': 'Necesită ',
'permissionUtilPermission': ' Permission', 'permissionUtilPermission': ' permisiune',
'permissionUtilRestricted': ' Permission Restricted', 'permissionUtilRestricted': ' Permisiune restricționată',
'permissionUtilRestrictedMessage': 'permissionUtilRestrictedMessage':
'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'Această funcție nu este disponibilă sau este restricționată pe acest dispozitiv. Verificați setările dispozitivului sau restricțiile sistemului',
'permissionUtilConfirm': 'OK', 'permissionUtilConfirm': 'OK',
// 原生前台服务通知(Android) // 原生前台服务通知(Android)
@ -1416,27 +1429,28 @@ const Map<String, String> roRO = {
'bleConnectionFailed': 'Conexiunea BLE a eșuat', 'bleConnectionFailed': 'Conexiunea BLE a eșuat',
'deviceAuthorizationFailedCheckCode': 'deviceAuthorizationFailedCheckCode':
'Autorizarea dispozitivului a eșuat, verificați codul de autorizare', 'Autorizarea dispozitivului a eșuat, verificați codul de autorizare',
'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideTitle':
'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: 'Este necesară activarea manuală a Bluetooth', // 需要手动开启蓝牙
'bluetoothGuideSteps': 'Urmați acești pași:', // 请按照以下步骤操作:
'bluetoothGuideStep1': 'bluetoothGuideStep1':
'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 'Activați Bluetooth: Setări → Bluetooth → Porniți', // 开启蓝牙:设置 → 蓝牙 → 开启
'bluetoothGuideStep2': 'bluetoothGuideStep2':
'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 'Conectați dispozitivul: găsiți dispozitivul în „Dispozitivele mele” și atingeți pentru conectare', // 连接设备:在"我的设备"中找到您的设备并点击连接
'bluetoothGuideStep3': 'bluetoothGuideStep3':
'Return to app to continue pairing process', // 返回应用继续配对流程 'Revino în aplicație pentru a continua procesul de asociere', // 返回应用继续配对流程
'bluetoothGuideTip': 'bluetoothGuideTip':
'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'Sfat: poți apăsa lung pictograma Bluetooth din Centrul de control pentru a accesa rapid setările Bluetooth', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置
'iKnow': 'I Know', // 我知道了 'iKnow': 'Am înțeles', // 我知道了
// 配对模块 - 绑定奖励 // 配对模块 - 绑定奖励
"firstBindRewardTitle": "Welcome Reward", "firstBindRewardTitle": "Recompensă de bun venit",
"firstBindRewardDesc": "You've received binding rewards.", "firstBindRewardDesc": "Ați primit recompensele pentru asociere.",
"vipLevelLabel": "VIP Level:", "vipLevelLabel": "Nivel VIP:",
"expiryLabel": "Expiration:", "expiryLabel": "Data expirării:",
"notActivated": "Not activated", "notActivated": "Neactivat",
"aiChatCreditsLabel": "AI Chat Credits:", "aiChatCreditsLabel": "Credite AI Chat:",
"translationCreditsLabel": "Translation Credits:", "translationCreditsLabel": "Credite de traducere:",
"meetingCreditsLabel": "Meeting Credits:", "meetingCreditsLabel": "Credite de întâlniri:",
"ok": "OK", "ok": "OK",
// 用户反馈模块 // 用户反馈模块
@ -1468,13 +1482,14 @@ const Map<String, String> roRO = {
"connectionFailed": "Conexiune eșuată", "connectionFailed": "Conexiune eșuată",
"retryConnection": "Reîncearcă conexiunea", "retryConnection": "Reîncearcă conexiunea",
"ota_updateNow": "Actualizează acum", "ota_updateNow": "Actualizează acum",
"otaVersionInfoFailed": "Failed to get version info. Please try again later.", "otaVersionInfoFailed":
"Nu s-au putut obține informațiile despre versiune. Încercați din nou mai târziu.",
"otaDeviceInfoUnavailable": "otaDeviceInfoUnavailable":
"Unable to get device info. Please check the connection and retry.", "Nu se pot obține informațiile dispozitivului. Verificați conexiunea și reîncercați.",
"otaProductInfoUnavailable": "otaProductInfoUnavailable":
"Unable to identify the device. Please reconnect and retry.", "Nu se poate identifica dispozitivul. Reconectați și reîncercați.",
"otaFirmwareVersionInvalid": "otaFirmwareVersionInvalid":
"Firmware version is abnormal. Please reconnect and retry.", "Versiunea firmware este nevalidă. Reconectați și reîncercați.",
"keepConnectedDontClose": "keepConnectedDontClose":
"Mențineți dispozitivul conectat, nu închideți aplicația", "Mențineți dispozitivul conectat, nu închideți aplicația",
"doNotDisconnect": "Nu deconectați", "doNotDisconnect": "Nu deconectați",
@ -1501,7 +1516,7 @@ const Map<String, String> roRO = {
'Conexiune BLE necesara\nVerificati conexiunea si incercati din nou', 'Conexiune BLE necesara\nVerificati conexiunea si incercati din nou',
'otaDeviceInfoUnavailableTitle': 'Informatii dispozitiv indisponibile', 'otaDeviceInfoUnavailableTitle': 'Informatii dispozitiv indisponibile',
'otaCannotGetDeviceInfo': 'otaCannotGetDeviceInfo':
'Cannot get device info\nPlease reconnect device or try again later', 'Nu se pot obține informațiile dispozitivului\nReconectați dispozitivul sau încercați din nou mai târziu',
'otaBleCheckFailed': 'Verificarea conexiunii BLE a esuat', 'otaBleCheckFailed': 'Verificarea conexiunii BLE a esuat',
'otaCannotGetDeviceInfoCheckConnection': 'otaCannotGetDeviceInfoCheckConnection':
'Nu se pot obtine informatii, verificati conexiunea', 'Nu se pot obtine informatii, verificati conexiunea',

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

@ -1,3 +1,4 @@
// 俄罗斯-俄语
const Map<String, String> ruRU = { const Map<String, String> ruRU = {
// 通用 // 通用
'continue': 'Продолжить', 'continue': 'Продолжить',
@ -18,11 +19,11 @@ const Map<String, String> ruRU = {
"unknownError": "Неизвестная ошибка", "unknownError": "Неизвестная ошибка",
"asrConnectionFailed": "asrConnectionFailed":
"Не удалось подключиться к службе распознавания речи. Проверьте сеть и попробуйте ещё раз позже.", "Не удалось подключиться к службе распознавания речи. Проверьте сеть и попробуйте ещё раз позже.",
"justNow": "Just now", "justNow": "Только что",
"minutesAgo": "@minutes minutes ago", "minutesAgo": "@minutes мин назад",
"yesterday": "Yesterday", "yesterday": "Вчера",
"daysAgo": "@days days ago", "daysAgo": "@days дн назад",
"hoursAgo": "@hours hours ago", "hoursAgo": "@hours ч назад",
// 启动页 // 启动页
"slogan": "Соединяя мир, за пределами звука", "slogan": "Соединяя мир, за пределами звука",
@ -110,7 +111,7 @@ const Map<String, String> ruRU = {
"welcomeToThisApp": "welcomeToThisApp":
"Добро пожаловать в Voitrans, пожалуйста, внимательно прочтите", // 欢迎使用Voitrans,请充分阅读 "Добро пожаловать в Voitrans, пожалуйста, внимательно прочтите", // 欢迎使用Voitrans,请充分阅读
"privacyPolicyText": "privacyPolicyText":
",点击'同意并进入'表示您已充分阅读并同意上述协议。点击'不同意'将退出应用。", // ,点击"同意并进入"表示您已充分阅读并同意上述协议。点击"不同意"将退出应用。 "Нажимая «Согласен и войти», вы подтверждаете, что прочитали и принимаете указанные выше документы. Нажатие «Не согласен» закроет приложение.", // ,点击"同意并进入"表示您已充分阅读并同意上述协议。点击"不同意"将退出应用。
"disagree": "Не согласен", // 不同意 "disagree": "Не согласен", // 不同意
"agreeAndEnter": "Согласен и войти", // 同意并进入 "agreeAndEnter": "Согласен и войти", // 同意并进入
@ -218,55 +219,55 @@ const Map<String, String> ruRU = {
"scene": "Сценарий", "scene": "Сценарий",
// 用量统计模块 // 用量统计模块
"aiChat": "AI Chat", "aiChat": "Чат с AI",
"translationStats": "Translation Statistics", "translationStats": "Статистика переводов",
"meetingStats": "Meeting Statistics", "meetingStats": "Статистика встреч",
"today": "Today", "today": "Сегодня",
"thisWeek": "This Week", "thisWeek": "Эта неделя",
"thisMonth": "This Month", "thisMonth": "Этот месяц",
"history": "History", "history": "История",
"currentSessionStats": "Current Session Stats", "currentSessionStats": "Статистика текущей сессии",
"translationCount": "Translation Count", "translationCount": "Количество переводов",
"sessionDuration": "Session Duration", "sessionDuration": "Длительность сессии",
"characters": "Characters", "characters": "Символы",
"recordingDuration": "Recording Duration", "recordingDuration": "Длительность записи",
"totalApiCalls": "Total API Calls", "totalApiCalls": "Всего вызовов API",
"sessionCount": "Session Count", "sessionCount": "Количество сессий",
"totalCharacters": "Total Characters", "totalCharacters": "Всего символов",
"apiCallStats": "API Call Stats", "apiCallStats": "Статистика вызовов API",
"translationApi": "Translation API", "translationApi": "API перевода",
"asr": "ASR", "asr": "ASR",
"tts": "TTS", "tts": "TTS",
"dataVolumeStats": "Data Volume Stats", "dataVolumeStats": "Статистика объёма данных",
"sourceTextCharacters": "Source Text Characters", "sourceTextCharacters": "Символы исходного текста",
"ttsTextCharacters": "TTS Text Characters", "ttsTextCharacters": "Символы TTS",
"effectiveAudioDuration": "Effective Audio Duration", "effectiveAudioDuration": "Эффективная длительность аудио",
"totalSessionDuration": "Total Session Duration", "totalSessionDuration": "Общая длительность сессий",
"costStats": "Cost Stats", "costStats": "Статистика затрат",
"estimatedCost": "Estimated Cost", "estimatedCost": "Оценочная стоимость",
"dailyCostThreshold": "Daily Cost Threshold", "dailyCostThreshold": "Дневной лимит затрат",
"monthlyCostThreshold": "Monthly Cost Threshold", "monthlyCostThreshold": "Месячный лимит затрат",
"usageBehaviorStats": "Usage Behavior Stats", "usageBehaviorStats": "Статистика использования",
"mostUsedLanguagePair": "Most-used language pair", "mostUsedLanguagePair": "Часто используемая языковая пара",
"mostUsedMode": "Most-used mode", "mostUsedMode": "Часто используемый режим",
"asrApiCalls": "ASR Calls", "asrApiCalls": "Вызовы ASR",
"totalAudioDuration": "Total Audio Duration", "totalAudioDuration": "Общая длительность аудио",
"audioFileSize": "Audio File Size", "audioFileSize": "Размер аудиофайла",
"transcriptBytes": "Transcript Bytes", "transcriptBytes": "Байты транскрипта",
"loadFailed": "Load Failed", "loadFailed": "Не удалось загрузить",
"statsLoadFailedTryLater": "statsLoadFailedTryLater":
"Statistics failed to load. Please try again later.", "Не удалось загрузить статистику. Попробуйте позже.",
"cleanupComplete": "Cleanup Complete", "cleanupComplete": "Очистка завершена",
"cleanedOldData": "Cleaned data older than 90 days", "cleanedOldData": "Удалены данные старше 90 дней",
"exportFeature": "Export Feature", "exportFeature": "Экспорт",
"exportInDevelopment": "Data export is under development", "exportInDevelopment": "Экспорт данных в разработке",
// 商品模块 - 通用 // 商品模块 - 通用
'availablePackages': 'Available Packages', 'availablePackages': 'Доступные пакеты',
'remainingQuota': 'Remaining Quota', 'remainingQuota': 'Оставшаяся квота',
'totalQuota': 'Total Quota', 'totalQuota': 'Общая квота',
'remaining': 'Remaining', 'remaining': 'Осталось',
'featureDescription': 'Feature Description', 'featureDescription': 'Описание функций',
'paymentSuccess': 'Оплата прошла успешно', 'paymentSuccess': 'Оплата прошла успешно',
'paymentFailed': 'Оплата не удалась', 'paymentFailed': 'Оплата не удалась',
'gotIt': 'Понятно', 'gotIt': 'Понятно',
@ -324,45 +325,48 @@ const Map<String, String> ruRU = {
'alipayPaymentLaunchFailed': 'Не удалось запустить Alipay', 'alipayPaymentLaunchFailed': 'Не удалось запустить Alipay',
'cannotLaunchAlipayPayment': 'Невозможно запустить Alipay', 'cannotLaunchAlipayPayment': 'Невозможно запустить Alipay',
'alipayPaymentException': 'Ошибка Alipay', 'alipayPaymentException': 'Ошибка Alipay',
"insufficientIntegral": "Insufficient integral", "insufficientIntegral": "Недостаточно баллов",
"insufficientBalanceDesc": "insufficientBalanceDesc":
"Insufficient balance, please go to the corresponding recharge page to recharge.", "Недостаточно средств, перейдите на соответствующую страницу пополнения.",
"recharge": "Go to Recharge", "recharge": "Перейти к пополнению",
"aiMemberExpiredDesc": "aiMemberExpiredDesc":
"AI membership expired, please go to the membership recharge page to renew.", "Подписка AI истекла, перейдите на страницу продления подписки.",
// 商品模块 - AI商品页 // 商品模块 - AI商品页
'musicAndRecommendation': 'Music & Recommendation', 'musicAndRecommendation': 'Музыка и рекомендации',
'navigationAndRoutes': 'Navigation & Routes', 'navigationAndRoutes': 'Навигация и маршруты',
'nearbySearch': 'Nearby Search', 'nearbySearch': 'Поиск рядом',
'newsInformation': 'News', 'newsInformation': 'Новости',
'communicationAssistant': 'Communication Assistant', 'communicationAssistant': 'Ассистент общения',
'aiHeaderDesc1': 'aiHeaderDesc1':
'Longer conversation quota, more tool calls, extended context length.', 'Больше квоты диалога, больше вызовов инструментов, длиннее контекст.',
'aiHeaderDesc2': 'aiHeaderDesc2':
'Suitable for agent Q&A, summarization, analysis, and task execution.', 'Подходит для вопросов к агенту, суммаризации, анализа и выполнения задач.',
'musicSearchPlaybackControl': 'Music library search and playback control', 'musicSearchPlaybackControl':
'Поиск по музыкальной библиотеке и управление воспроизведением',
'smartPlaylistAndSimilarRecommendations': 'smartPlaylistAndSimilarRecommendations':
'Smart playlist and similar song recommendations', 'Умные плейлисты и рекомендации похожих треков',
'routePlanningAndCongestionAvoidance': 'routePlanningAndCongestionAvoidance':
'Route planning and congestion avoidance', 'Планирование маршрута и объезд пробок',
'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'voiceBroadcastAndWaypoints':
'realTimeWeatherForecast': 'Real-time weather and forecast', 'Голосовые подсказки и настройки точек маршрута',
'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', 'realTimeWeatherForecast': 'Погода и прогноз в реальном времени',
'poiSearchFoodGasParking': 'POI search: dining / gas / parking', 'clothingAdviceAndTravelReminders': 'Советы по одежде и напоминания в пути',
'ratingsHoursAndDirectRoutes': 'Ratings, business hours, and direct routing', 'poiSearchFoodGasParking': 'Поиск POI: еда / заправки / парковка',
'hotNewsAndTopicOverview': 'Hot news and topic overview', 'ratingsHoursAndDirectRoutes': 'Рейтинги, часы работы и построение маршрута',
'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'hotNewsAndTopicOverview': 'Горячие новости и обзор тем',
'helpCallAndSMS': 'Help with calls and SMS', 'longArticleSummariesAndKeyPoints':
'Сводка длинных статей и ключевые моменты',
'helpCallAndSMS': 'Помощь со звонками и SMS',
'templatedMessagesAndScheduleReminders': 'templatedMessagesAndScheduleReminders':
'Template messages and schedule reminders', 'Шаблонные сообщения и запланированные напоминания',
'aiDisclaimer': 'aiDisclaimer':
'Features depend on device permissions, service availability, and network conditions.', 'Функции зависят от разрешений устройства, доступности сервисов и условий сети.',
// 商品模块 - 翻译商品页 // 商品模块 - 翻译商品页
'realtimeTranscription': 'Real-time Transcription', 'realtimeTranscription': 'Транскрипция в реальном времени',
'sceneLexicon': 'Scenario Glossary', 'sceneLexicon': 'Сценарный глоссарий',
'subtitleDisplay': 'Subtitles', 'subtitleDisplay': 'Субтитры',
'transHeaderDesc1': 'transHeaderDesc1':
'Синхронный перевод и перевод текста в реальном времени с низкой задержкой голосового озвучивания.', 'Синхронный перевод и перевод текста в реальном времени с низкой задержкой голосового озвучивания.',
'transHeaderDesc2': 'transHeaderDesc2':
@ -381,15 +385,15 @@ const Map<String, String> ruRU = {
'Качество перевода зависит от микрофона, сетевой задержки и фонового шума.', 'Качество перевода зависит от микрофона, сетевой задержки и фонового шума.',
// 商品模块 - 会议商品页 // 商品模块 - 会议商品页
'meetingRecording': 'Meeting Recording', 'meetingRecording': 'Запись встреч',
'transcriptionAndSummary': 'Transcription & Summary', 'transcriptionAndSummary': 'Transcription & Summary',
'keywordSearch': 'Keyword Search', 'keywordSearch': 'Keyword Search',
'collaborationSharing': 'Collaboration & Sharing', 'collaborationSharing': 'Collaboration & Sharing',
'meetingHeaderDesc1': 'meetingHeaderDesc1':
'Audio recording, transcription, keyword search, and auto summary.', 'Запись аудио, транскрипция, поиск по ключевым словам и автосводка.',
'meetingHeaderDesc2': 'meetingHeaderDesc2':
'Suitable for business meetings, class notes, and interview minutes.', 'Suitable for business meetings, class notes, and interview minutes.',
'meetingAutoRecording': 'Auto recording and segmentation', 'meetingAutoRecording': 'Автозапись и сегментация',
'meetingSpeakerTagging': 'Speaker labeling', 'meetingSpeakerTagging': 'Speaker labeling',
'meetingLongAudioTranscription': 'Long audio transcription', 'meetingLongAudioTranscription': 'Long audio transcription',
'meetingKeyPointSummary': 'Key point extraction', 'meetingKeyPointSummary': 'Key point extraction',
@ -398,7 +402,7 @@ const Map<String, String> ruRU = {
'meetingExportSummary': 'Export minutes', 'meetingExportSummary': 'Export minutes',
'meetingMultiPlatformShare': 'Share across platforms', 'meetingMultiPlatformShare': 'Share across platforms',
'meetingDisclaimer': 'meetingDisclaimer':
'Use in quiet environments; performance depends on microphone and network.', 'Используйте в тихой обстановке; качество зависит от микрофона и сети.',
// 商品模块 - VIP会员页 // 商品模块 - VIP会员页
'benefitsOverview': 'Обзор преимуществ', 'benefitsOverview': 'Обзор преимуществ',
@ -417,21 +421,21 @@ const Map<String, String> ruRU = {
'Фактические преимущества зависят от деталей пакета и могут меняться с версиями.', 'Фактические преимущества зависят от деталей пакета и могут меняться с версиями.',
// 商品模块 - 商品名称与描述 // 商品模块 - 商品名称与描述
'ai_001_name': 'AI Basic 100', 'ai_001_name': 'AI Базовый 100',
'ai_002_name': 'AI Basic 500', 'ai_002_name': 'AI Базовый 500',
'ai_003_name': 'AI Basic 1000', 'ai_003_name': 'AI Базовый 1000',
'meet_001_name': 'Meeting Basic 100', 'meet_001_name': 'Встречи Базовый 100',
'meet_002_name': 'Meeting Basic 500', 'meet_002_name': 'Встречи Базовый 500',
'meet_003_name': 'Meeting Basic 1000', 'meet_003_name': 'Встречи Базовый 1000',
'trans_001_name': 'Перевод Базовый 100', 'trans_001_name': 'Перевод Базовый 100',
'trans_002_name': 'Перевод Базовый 500', 'trans_002_name': 'Перевод Базовый 500',
'trans_003_name': 'Перевод Базовый 1000', 'trans_003_name': 'Перевод Базовый 1000',
'ai_001_desc': 'Includes 100 uses. Access core AI features.', 'ai_001_desc': 'Включает 100 использований. Доступ к основным функциям AI.',
'ai_002_desc': 'Includes 500 uses. Access core AI features.', 'ai_002_desc': 'Включает 500 использований. Доступ к основным функциям AI.',
'ai_003_desc': 'Includes 1000 uses. Access core AI features.', 'ai_003_desc': 'Включает 1000 использований. Доступ к основным функциям AI.',
'meet_001_desc': 'Includes 100 meeting recordings/transcriptions.', 'meet_001_desc': 'Включает 100 записей/транскрипций встреч.',
'meet_002_desc': 'Includes 500 meeting recordings/transcriptions.', 'meet_002_desc': 'Включает 500 записей/транскрипций встреч.',
'meet_003_desc': 'Includes 1000 meeting recordings/transcriptions.', 'meet_003_desc': 'Включает 1000 записей/транскрипций встреч.',
'trans_001_desc': 'Включает 100 переводов (голос/текст).', 'trans_001_desc': 'Включает 100 переводов (голос/текст).',
'trans_002_desc': 'Включает 500 переводов (голос/текст).', 'trans_002_desc': 'Включает 500 переводов (голос/текст).',
'trans_003_desc': 'Включает 1000 переводов (голос/текст).', 'trans_003_desc': 'Включает 1000 переводов (голос/текст).',
@ -443,27 +447,29 @@ const Map<String, String> ruRU = {
// 新手引导 // 新手引导
'skip': 'Пропустить', 'skip': 'Пропустить',
'next': 'Next', 'next': 'Далее',
'sayLilyHint': 'Say "Lily Lily" to the mic', 'sayLilyHint': 'Скажите в микрофон «Lily Lily»',
'imHere': 'I’m here~', 'imHere': 'Я здесь~',
'guideWelcomeWakeAI': 'Welcome to Voitrans! First, wake your AI “Lily”.', 'guideWelcomeWakeAI':
'aiReplyCompleted': 'Lily has finished the reply!', 'Добро пожаловать в Voitrans! Сначала разбудите ваш AI «Lily».',
'aiThinking': 'Lily is thinking…', 'aiReplyCompleted': 'Lily завершила ответ!',
'guideAwakenSuccess': 'Great! Lily is awake—ask it to help.', 'aiThinking': 'Lily думает…',
'confirmInput': 'Confirm Input', 'guideAwakenSuccess': 'Отлично! Lily проснулась — попросите помочь.',
'guideClickSendPrefix': 'Tap send, ', 'confirmInput': 'Подтвердить ввод',
'guideWeatherStart': 'Tell Lily: “What’s the weather today?”', 'guideClickSendPrefix': 'Нажмите «Отправить», ',
'guideWeatherInput': 'What’s the weather today?', 'guideWeatherStart': 'Скажите Lily: «Какая сегодня погода?»',
'guideWeatherSend': 'Lily will report the weather in real time', 'guideWeatherInput': 'Какая сегодня погода?',
'guideWeatherEnd': 'Lily can report weather live—try other commands', 'guideWeatherSend': 'Lily сообщит погоду в реальном времени',
'guideMusicStart': 'Tell Lily: “Play some rock music”', 'guideWeatherEnd':
'guideMusicInput': 'Play some rock music', 'Lily может сообщать погоду в реальном времени — попробуйте другие команды',
'guideMusicSend': 'Lily will find music for you', 'guideMusicStart': 'Скажите Lily: «Включи рок-музыку»',
'guideMusicEnd': 'Lily found music—try other commands', 'guideMusicInput': 'Включи рок-музыку',
'guideNavStart': 'Tell Lily: “Navigate to Shenzhen Airport”', 'guideMusicSend': 'Lily подберет музыку для вас',
'guideNavInput': 'Navigate to Shenzhen Airport', 'guideMusicEnd': 'Lily нашла музыку — попробуйте другие команды',
'guideNavSend': 'Lily will plan the route', 'guideNavStart': 'Скажите Lily: «Построй маршрут до аэропорта Шэньчжэнь»',
'guideNavEnd': 'Navigation set—try other commands', 'guideNavInput': 'Построй маршрут до аэропорта Шэньчжэнь',
'guideNavSend': 'Lily спланирует маршрут',
'guideNavEnd': 'Навигация настроена — попробуйте другие команды',
'guideMeetingStart': 'guideMeetingStart':
'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'Tell Lily: “Create a meeting reminder for 3pm tomorrow”',
'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow',
@ -490,38 +496,38 @@ const Map<String, String> ruRU = {
'recordingDetails': 'Детали записи', 'recordingDetails': 'Детали записи',
'aiSummary': 'AI-резюме', 'aiSummary': 'AI-резюме',
'meetingTranscript': 'Транскрипт встречи', 'meetingTranscript': 'Транскрипт встречи',
'files': 'Files', 'files': 'Файлы',
'mine': 'Mine', 'mine': 'Мои',
'connect': 'Connect', 'connect': 'Подключить',
'allFiles': 'All Files', 'allFiles': 'Все файлы',
'searchInAllFiles': 'Search in all files', 'searchInAllFiles': 'Искать во всех файлах',
'from': 'From', 'from': 'От',
'sortBy': 'Sort by', 'sortBy': 'Сортировать по',
'creationTime': 'Creation Time', 'creationTime': 'Время создания',
'bluetoothConnection': 'Bluetooth Connection', 'bluetoothConnection': 'Bluetooth‑подключение',
'meetingReconnect': 'Reconnect', 'meetingReconnect': 'Переподключиться',
'searching': 'Searching...', 'searching': 'Поиск...',
'searchFailed': 'Search failed, please check if Bluetooth is enabled', 'searchFailed': 'Поиск не удался, проверьте, включён ли Bluetooth',
'aiPenNotFound': 'AI PEN device not found', 'aiPenNotFound': 'Устройство AI PEN не найдено',
'connectedToAiPen': 'Connected to AI PEN device', 'connectedToAiPen': 'Подключено к AI PEN',
'checkingNewFiles': 'Checking for new files to import', 'checkingNewFiles': 'Проверка новых файлов для импорта',
'startingWifi': 'Starting Wi-Fi...', 'startingWifi': 'Запуск Wi‑Fi...',
'newFilesDetected': 'New files detected, preparing to import', 'newFilesDetected': 'Найдены новые файлы, подготовка к импорту',
'noNewFiles': 'No new files to import', 'noNewFiles': 'Нет новых файлов для импорта',
'connectingWifi': 'Connecting to Wi-Fi...', 'connectingWifi': 'Подключение к Wi‑Fi...',
'wifiConnected': 'Wi-Fi connected successfully', 'wifiConnected': 'Wi‑Fi подключён успешно',
'downloadingFiles': 'Downloading files...', 'downloadingFiles': 'Загрузка файлов...',
'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadingFileProgress': 'Всего {total} файлов, загружается файл {current}',
'downloadComplete': 'Download complete', 'downloadComplete': 'Загрузка завершена',
'downloadCompleteInfo': 'downloadCompleteInfo':
'Download complete, {count} files in total, returning automatically in 2 seconds', 'Загрузка завершена, всего {count} файлов, возврат автоматически через 2 секунды',
// Meeting模块 - 录音功能 // Meeting模块 - 录音功能
'startRecording': 'Start Recording', 'startRecording': 'Начать запись',
'liveRecording': 'Live Recording', 'liveRecording': 'Запись в реальном времени',
'audioVideoRecording': 'Audio/Video Recording', 'audioVideoRecording': 'Запись аудио/видео',
'callRecording': 'Call Recording', 'callRecording': 'Запись звонка',
'importAudio': 'Import Audio', 'importAudio': 'Импорт аудио',
'meetingRecordExitTitle': 'Выйти из записи', // 退出录音 'meetingRecordExitTitle': 'Выйти из записи', // 退出录音
'meetingRecordExitMessage': 'meetingRecordExitMessage':
'Пожалуйста, выберите действие после выхода', // 请选择离开后的操作 'Пожалуйста, выберите действие после выхода', // 请选择离开后的操作
@ -586,30 +592,31 @@ const Map<String, String> ruRU = {
'custom': 'Пользовательский', 'custom': 'Пользовательский',
'pleaseEnter': 'Пожалуйста, введите', 'pleaseEnter': 'Пожалуйста, введите',
'viewAll': 'View All', 'viewAll': 'View All',
'recordingLanguage': 'Recording Language', 'recordingLanguage': 'Язык записи',
'chineseSimplified': 'Chinese Mandarin (Simplified)', 'chineseSimplified': 'Chinese Mandarin (Simplified)',
'meetingGenerateNow': 'Generate Now', 'meetingGenerateNow': 'Generate Now',
'keyEventsAnalyzed': 'Analyzed {count} key events.', 'keyEventsAnalyzed': 'Analyzed {count} key events.',
'aiAnalysisDesc': 'aiAnalysisDesc':
'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', 'AI‑анализ определяет ключевые события в записи, позволяя выбрать важные события для генерации.',
// Meeting模块 - 文件操作 // Meeting模块 - 文件操作
'importing': 'Importing...', 'importing': 'Importing...',
'batchImporting': 'Batch importing...', 'batchImporting': 'Batch importing...',
'importingLocalRecordings': 'Importing local recordings...', 'importingLocalRecordings': 'Импорт локальных записей...',
'importFailed': 'Import file failed: {filePath}, error: {error}', 'importFailed': 'Не удалось импортировать файл: {filePath}, ошибка: {error}',
'importSuccess': 'Successfully imported {count} local recordings', 'importSuccess': 'Успешно импортировано локальных записей: {count}',
'importError': 'Import failed: {error}', 'importError': 'Импорт не удался: {error}',
'pleaseSelectAudioFile': 'Please select audio file', 'pleaseSelectAudioFile': 'Пожалуйста, выберите аудиофайл',
'shareAudio': 'Share Meeting Audio', 'shareAudio': 'Share Meeting Audio',
'shareComplete': 'Share complete!', 'shareComplete': 'Share complete!',
'shareFailed': 'Share failed: {error}', 'shareFailed': 'Не удалось поделиться: {error}',
'fileProcessingFailed': 'File processing failed: {filePath}, error: {error}', 'fileProcessingFailed':
'Не удалось обработать файл: {filePath}, ошибка: {error}',
// Meeting模块 - 思维导图 // Meeting模块 - 思维导图
'saveMindMap': 'Сохранить интеллект-карту', 'saveMindMap': 'Сохранить интеллект-карту',
'shareMindMap': 'Share Mind Map', 'shareMindMap': 'Share Mind Map',
'shareSuccess': 'Share Success', 'shareSuccess': 'Успешно поделились',
// Meeting模块 - AI问答 // Meeting模块 - AI问答
'askAI': 'Ask AI ...', 'askAI': 'Ask AI ...',
@ -645,26 +652,27 @@ const Map<String, String> ruRU = {
// Meeting模块 - 云端同步 // Meeting模块 - 云端同步
'syncToCloud': 'Sync to Cloud', 'syncToCloud': 'Sync to Cloud',
'syncToCloudTip': 'syncToCloudTip':
'自动将你的录音同步到云端,你可以通过任意VOITRANS APP或VOITRANS Web(web.voitrans.com)播放、管理和分享录音。', 'Автоматически синхронизируйте записи с облаком — вы сможете воспроизводить, управлять и делиться ими через любое приложение VOITRANS или VOITRANS Web (web.voitrans.com).',
'syncToVoitransApp': 'Sync VOITRANS APP', 'syncToVoitransApp': 'Sync VOITRANS APP',
'transcriptionRecord': 'Transcription Record', 'transcriptionRecord': 'Запись транскрипции',
// Meeting模块 - 我的页面 // Meeting模块 - 我的页面
'transcriptionRecords': 'Transcription Records', 'transcriptionRecords': 'Записи транскрипции',
'templateCommunity': 'Template Community', 'templateCommunity': 'Template Community',
'comingSoon': 'Coming Soon', 'comingSoon': 'Coming Soon',
'integration': 'Integration', 'integration': 'Integration',
'voitransPrivateCloud': 'VOITRANS PRIVATE CLOUD', 'voitransPrivateCloud': 'VOITRANS PRIVATE CLOUD',
'enabled': 'Enabled', 'enabled': 'Включено',
'disabled': 'Disabled', 'disabled': 'Выключено',
'myVoitransDevice': 'My VOITRANS Device', 'myVoitransDevice': 'Моё устройство VOITRANS',
'helpAndFeedback': 'Help & Feedback', 'helpAndFeedback': 'Help & Feedback',
'aboutVoitrans': 'About VOITRANS', 'aboutVoitrans': 'About VOITRANS',
'meetingDays': 'Days', 'meetingDays': 'Days',
'meetingHours': 'Hours', 'meetingHours': 'Hours',
'voitransAiMember': 'Voitrans AI Member', 'voitransAiMember': 'Voitrans AI Member',
'unlockStarterMember': 'Unlock Starter Member', 'unlockStarterMember': 'Unlock Starter Member',
'bindDeviceToActivate': 'Bind Voitrans device to activate Starter membership', 'bindDeviceToActivate':
'Привяжите устройство Voitrans, чтобы активировать подписку Starter',
'unlockNow': 'Unlock Now', 'unlockNow': 'Unlock Now',
// Meeting模块 - 会员与升级 // Meeting模块 - 会员与升级
@ -688,7 +696,7 @@ const Map<String, String> ruRU = {
'customTemplateDesc': 'customTemplateDesc':
'You can customize summary prompts according to your needs and use them to generate the required summaries.', 'You can customize summary prompts according to your needs and use them to generate the required summaries.',
'askAiDesc': 'askAiDesc':
'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', 'Умно извлекайте более глубокую информацию из записей, одним нажатием создавайте таблицы данных, ключевые выводы обсуждения, списки дел, письма‑отчеты и другой форматированный контент.',
'visualMindMapDesc': 'visualMindMapDesc':
'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.',
'templateCommunityDesc': 'templateCommunityDesc':
@ -696,13 +704,13 @@ const Map<String, String> ruRU = {
'speakerIdentificationDesc': 'speakerIdentificationDesc':
'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.',
'privateCloudSyncDesc': 'privateCloudSyncDesc':
'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', 'Ваши записи и транскрипции будут надежно храниться на выделенных облачных серверах с полным шифрованием при загрузке и скачивании для обеспечения конфиденциальности и безопасности.',
'aiVoiceEnhancementDesc': 'aiVoiceEnhancementDesc':
'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.',
'audioImportDesc': 'audioImportDesc':
'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.',
'multipleExportFormatsDesc': 'multipleExportFormatsDesc':
'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', 'Экспортируйте аудиозаписи, текст транскрипции и сводки в разных форматах (TXT, PDF, JPEG) под ваши задачи.',
'upgradeMembership': 'Upgrade Your Membership', 'upgradeMembership': 'Upgrade Your Membership',
'yearlySubscription': 'Yearly Subscription', 'yearlySubscription': 'Yearly Subscription',
'monthlySubscription': 'Monthly Subscription', 'monthlySubscription': 'Monthly Subscription',
@ -732,7 +740,7 @@ const Map<String, String> ruRU = {
'purchase': 'Purchase', 'purchase': 'Purchase',
// Meeting模块 - 录音语言 // Meeting模块 - 录音语言
'recordLanguage': 'Recording Language', 'recordLanguage': 'Язык записи',
'cantonese': 'Cantonese', 'cantonese': 'Cantonese',
'sichuan': 'Sichuan Dialect', 'sichuan': 'Sichuan Dialect',
'shanghai': 'Shanghai Dialect', 'shanghai': 'Shanghai Dialect',
@ -759,10 +767,10 @@ const Map<String, String> ruRU = {
"translationRecharge": "Пополнение перевода", "translationRecharge": "Пополнение перевода",
"meetingAssistantRecharge": "Пополнение помощника встречи", "meetingAssistantRecharge": "Пополнение помощника встречи",
"cloudSync": "Пополнение синхронизации в облаке", "cloudSync": "Пополнение синхронизации в облаке",
"memberService": "Member Service", "memberService": "Сервис для участников",
"bindRewardTitle": "Rewards", "bindRewardTitle": "Награды",
"bindRewardSimpleDesc": "bindRewardSimpleDesc":
"First bind device reward has been issued. Tap OK to close.", "Награда за первое привязывание устройства начислена. Нажмите OK, чтобы закрыть.",
"joinDevice": "Подключенное устройство:", "joinDevice": "Подключенное устройство:",
"accountId": "ID аккаунта:", "accountId": "ID аккаунта:",
"systemSetting": "Системные настройки", "systemSetting": "Системные настройки",
@ -812,19 +820,20 @@ const Map<String, String> ruRU = {
"loading": "Загрузка...", "loading": "Загрузка...",
// 设备管理模块 // 设备管理模块
"deviceTypeUnknown": "Unknown Device", "deviceTypeUnknown": "Неизвестное устройство",
"deviceTypeClassicBluetoothHeadset": "Classic Bluetooth Headset", "deviceTypeClassicBluetoothHeadset": "Классическая Bluetooth-гарнитура",
"deviceTypeBleBluetoothHeadset": "BLE Bluetooth Headset", "deviceTypeBleBluetoothHeadset": "BLE Bluetooth-гарнитура",
"deviceTypeSmartVoiceRecorder": "Smart Voice Recorder", "deviceTypeSmartVoiceRecorder": "Умный диктофон",
"deviceTypeSmartEye": "Smart Glasses", "deviceTypeSmartEye": "Умные очки",
"unbind": "Отвязать", "unbind": "Отвязать",
"noDevicesBound": "No devices bound yet", "noDevicesBound": "Пока нет привязанных устройств",
"pleaseBindDeviceFirst": "Please bind a device first to manage", "pleaseBindDeviceFirst": "Сначала привяжите устройство для управления",
"noMacAddress": "No MAC Address", "noMacAddress": "Нет MAC-адреса",
"licenseCode": "License Code", "licenseCode": "Лицензионный код",
"confirmUnbind": "Confirm Unbind", "confirmUnbind": "Подтвердить отвязку",
"confirmUnbindMessage": "Are you sure you want to unbind device \\", "confirmUnbindMessage":
"confirmUnbindAction": "Confirm Unbind", "Вы уверены, что хотите отвязать устройство \"{deviceName}\"?",
"confirmUnbindAction": "Подтвердить отвязку",
// Agent模块 - 主界面 // Agent模块 - 主界面
"Lily": "Lily", "Lily": "Lily",
@ -854,31 +863,31 @@ const Map<String, String> ruRU = {
"loadMoreMessages": "Загрузить еще сообщения...", "loadMoreMessages": "Загрузить еще сообщения...",
"loadFailedClickRetry": "Не удалось загрузить, нажмите, чтобы повторить", "loadFailedClickRetry": "Не удалось загрузить, нажмите, чтобы повторить",
"swipeUpForMore": "Проведите пальцем вверх, чтобы увидеть больше", "swipeUpForMore": "Проведите пальцем вверх, чтобы увидеть больше",
"callingTool": "I'm helping you, please wait!", // 正在帮您,请稍等! "callingTool": "Помогаю вам, подождите!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断 "voice_interrupt": "Прервать", // 语音打断
'voice_interrupt_tip': 'voice_interrupt_tip':
'При включении: ИИ не будет прерываться вашим голосом во время ответа и сможет обрабатывать только один раунд разговора за раз. Чтобы начать новый раунд, просто произнесите слово активации.', 'При включении: ИИ не будет прерываться вашим голосом во время ответа и сможет обрабатывать только один раунд разговора за раз. Чтобы начать новый раунд, просто произнесите слово активации.',
// Agent模块 - 预设提示词 // Agent模块 - 预设提示词
"presetMusic": "Play some music", // 来点音乐 "presetMusic": "Включи музыку", // 来点音乐
"presetNavigation": "Navigation to", // 导航 "presetNavigation": "Навигация до", // 导航
"presetWeather": "Today's weather", // 今日天气 "presetWeather": "Погода сегодня", // 今日天气
"presetNews": "Today's news", // 今日新闻 "presetNews": "Новости сегодня", // 今日新闻
"presetFood": "Nearby food", // 美食 "presetFood": "Еда рядом", // 美食
"playSomeMusic": "Play some popular music", // 播放一些流行音乐 "playSomeMusic": "Включи популярную музыку", // 播放一些流行音乐
"navigationTo": "Please help me navigate to", // 导航到 "navigationTo": "Пожалуйста, помоги проложить маршрут до", // 导航到
"todayWeather": "How's the weather today?", // 今日天气 "todayWeather": "Какая сегодня погода?", // 今日天气
"todayNews": "What's the news today?", // 今日新闻 "todayNews": "Какие сегодня новости?", // 今日新闻
"nearbyFood": "What delicious food is nearby?", // 美食 "nearbyFood": "Какая вкусная еда есть рядом?", // 美食
// Agent模块 - 欢迎消息与权限 // Agent模块 - 欢迎消息与权限
'welcomeMessage': '你好!我是**Lily**,我能帮你:\n\n' 'welcomeMessage': 'Привет! Я **Лили**.\n\n'
'• 回答问题和提供信息\n\n' '• Отвечу на вопросы и предоставлю информацию\n\n'
'• 实时语音翻译\n\n' '• Переведу речь в режиме реального времени\n\n'
'• 推荐音乐和播客\n\n' '• Порекомендую музыку и подкасты\n\n'
'• 语音备忘录和提醒\n\n' '• Голосовые заметки и напоминания\n\n'
'• 控制耳机功能\n\n' '• Управлю функциями наушников\n\n'
'有什么我可以帮你的吗?', 'Чем я могу тебе помочь?', // 有什么我可以帮你的吗?
'microphonePermission': 'Микрофон', 'microphonePermission': 'Микрофон',
'voiceRecognitionPermissionText': 'voiceRecognitionPermissionText':
'Для распознавания речи требуется доступ к микрофону.', 'Для распознавания речи требуется доступ к микрофону.',
@ -1016,8 +1025,8 @@ const Map<String, String> ruRU = {
"strongWind": "Сильный ветер", "strongWind": "Сильный ветер",
// 翻译模块 - 中间层 // 翻译模块 - 中间层
"pictureTranslation": "Picture Translation", "pictureTranslation": "Перевод изображений",
"textTranslation": "Text Translation", "textTranslation": "Текстовый перевод",
// 翻译模块 - 主页 // 翻译模块 - 主页
"translationHistory": "История переводов", "translationHistory": "История переводов",
@ -1027,14 +1036,14 @@ const Map<String, String> ruRU = {
"phoneUser": "Пользователь телефона", "phoneUser": "Пользователь телефона",
"selectSourceLanguage": "Выберите исходный язык", "selectSourceLanguage": "Выберите исходный язык",
"selectTargetLanguage": "Выберите целевой язык", "selectTargetLanguage": "Выберите целевой язык",
"me": "Me", "me": "Я",
"counterPart": "Counterpart", "counterPart": "Собеседник",
"bluetoothCallStateError": "bluetoothCallStateError":
"Please make sure the Bluetooth headset is connected to the phone and in a call state", "Убедитесь, что Bluetooth-гарнитура подключена к телефону и идет звонок",
"autoDetect": "Auto Detect", // 自动检测 "autoDetect": "Автоопределение", // 自动检测
// 翻译模块 - 文本翻译 // 翻译模块 - 文本翻译
"languageDetectionFailed": "Language detection failed", "languageDetectionFailed": "Не удалось определить язык",
// 翻译模块 - 悬浮窗与权限 // 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'Отключить плавающее окно', 'disableFloatingWindow': 'Отключить плавающее окно',
@ -1043,17 +1052,17 @@ const Map<String, String> ruRU = {
'micPermissionRequiredForRecording': 'micPermissionRequiredForRecording':
'Для записи требуется разрешение микрофона', 'Для записи требуется разрешение микрофона',
'deleteTranslationRecordError': 'Ошибка при удалении записи перевода: @error', 'deleteTranslationRecordError': 'Ошибка при удалении записи перевода: @error',
"translationFailed": "Translation failed", "translationFailed": "Перевод не удался",
"translating": "Перевод", "translating": "Перевод",
"translate": "Перевести", "translate": "Перевести",
"pleaseInputText": "Please input text", "pleaseInputText": "Введите текст",
"inputTextToTranslate": "Введите текст для перевода", "inputTextToTranslate": "Введите текст для перевода",
"textTooLong": "Text too long, max 5000 characters", "textTooLong": "Текст слишком длинный, максимум 5000 символов",
// 翻译模块 - 历史记录 // 翻译模块 - 历史记录
"noTranslationHistory": "История отсутствует", "noTranslationHistory": "История отсутствует",
"historyRecords": "History Records", "historyRecords": "История записей",
"clearResults": "Clear Results", "clearResults": "Очистить результаты",
"clearHistory": "Очистить историю", "clearHistory": "Очистить историю",
"clearHistoryConfirm": "clearHistoryConfirm":
"Вы уверены, что хотите очистить всю историю переводов? Это действие необратимо.", "Вы уверены, что хотите очистить всю историю переводов? Это действие необратимо.",
@ -1063,55 +1072,55 @@ const Map<String, String> ruRU = {
"Вы уверены, что хотите удалить все записи переводов этой сессии? Это действие необратимо.", "Вы уверены, что хотите удалить все записи переводов этой сессии? Это действие необратимо.",
// 翻译模块 - 图片翻译 // 翻译模块 - 图片翻译
"selectImageSource": "Select Image Source", "selectImageSource": "Выберите источник изображения",
"imagePreview": "Image Preview", "imagePreview": "Предпросмотр изображения",
"translationResult": "Translation Result", "translationResult": "Результат перевода",
"recognitionResult": "Recognition Result", "recognitionResult": "Результат распознавания",
"translatedImagePreview": "Translated Image Preview", "translatedImagePreview": "Предпросмотр переведенного изображения",
"translatedImageLoadFailed": "Failed to load translated image", "translatedImageLoadFailed": "Не удалось загрузить переведенное изображение",
"pleaseSelectImage": "Please select an image", "pleaseSelectImage": "Выберите изображение",
"imageLoadFailed": "Image load failed", "imageLoadFailed": "Не удалось загрузить изображение",
"imageQuality": "Image Quality", "imageQuality": "Качество изображения",
"maxSize": "Max Size", "maxSize": "Макс. размер",
"close": "Close", "close": "Закрыть",
"setImageQuality": "Set Image Quality", "setImageQuality": "Установить качество изображения",
"currentQuality": "Current quality: @value%", "currentQuality": "Текущее качество: @value%",
"setMaxSize": "Set Max Size", "setMaxSize": "Установить макс. размер",
"currentMaxSize": "Current: @pxpx", "currentMaxSize": "Текущий: @pxpx",
"waitingForAction": "Waiting for action", "waitingForAction": "Ожидание действия",
"pleaseSelectImageToStart": "Please select an image to start", "pleaseSelectImageToStart": "Выберите изображение, чтобы начать",
"chooseImage": "Choose Image", "chooseImage": "Выбрать изображение",
"openingCamera": "Opening camera...", "openingCamera": "Открытие камеры...",
"openingPhotoAlbum": "Opening photo album...", "openingPhotoAlbum": "Открытие альбома...",
"cancelled": "Cancelled", "cancelled": "Отменено",
"userCancelledSelection": "User cancelled selection", "userCancelledSelection": "Пользователь отменил выбор",
"translatingImage": "Translating Image", "translatingImage": "Перевод изображения",
"callingImageTranslateService": "Calling image translation service...", "callingImageTranslateService": "Вызов сервиса перевода изображения...",
"savingRecord": "Saving Record", "savingRecord": "Сохранение записи",
"savingTranslationResult": "Saving translation result...", "savingTranslationResult": "Сохранение результата перевода...",
"translationCompleted": "Translation Completed", "translationCompleted": "Перевод завершен",
"allStepsCompleted": "All steps completed", "allStepsCompleted": "Все шаги завершены",
"processingFailed": "Processing Failed", "processingFailed": "Обработка не удалась",
"imageProcessingOrTranslationFailed": "imageProcessingOrTranslationFailed":
"Image processing or translation failed. Please retry.\nError: {error}", "Обработка изображения или перевод не удались. Повторите попытку.\nОшибка: {error}",
"imageTooLarge": "Image size exceeds 4MB limit", "imageTooLarge": "Размер изображения превышает лимит 4 МБ",
"imageTooLargeHint": "imageTooLargeHint":
"Image size exceeds 4MB. Reduce quality or dimensions and retry", "Размер изображения превышает 4 МБ. Уменьшите качество или размеры и повторите",
"emptyTranslationResult": "Image translation API returned empty result", "emptyTranslationResult": "API перевода изображений вернул пустой результат",
"imageTranslationFailedTryLater": "imageTranslationFailedTryLater":
"Image translation failed. Network issue or rate limit. Please try later", "Перевод изображения не удался. Проблемы с сетью или лимит запросов. Попробуйте позже",
"imageTranslationApiException": "imageTranslationApiException":
"Image translation API exception. Check network and retry", "Исключение API перевода изображений. Проверьте сеть и повторите",
"permissionRequired": "Permission Required", "permissionRequired": "Требуется разрешение",
"cameraPermissionRequired": "Camera permission required to take photos", "cameraPermissionRequired": "Для съемки требуется разрешение камеры",
"photoAlbumPermissionRequired": "photoAlbumPermissionRequired":
"Photo album permission required to pick images", "Для выбора изображений требуется разрешение на фотоальбом",
"translationDetails": "Translation Details", "translationDetails": "Детали перевода",
"originalImage": "Original Image", "originalImage": "Оригинальное изображение",
"sourceLanguage": "Source Language", "sourceLanguage": "Исходный язык",
"targetLanguage": "Target Language", "targetLanguage": "Целевой язык",
"translationTime": "Translation Time", "translationTime": "Время перевода",
"shareInDevelopment": "Sharing feature under development", "shareInDevelopment": "Функция обмена в разработке",
// 翻译模块 - 录音文件 // 翻译模块 - 录音文件
"translateAudioFiles": "Перевести аудиофайлы", "translateAudioFiles": "Перевести аудиофайлы",
@ -1209,32 +1218,32 @@ const Map<String, String> ruRU = {
'Служба аккаунтов инициализирована', // AccountService 已初始化 'Служба аккаунтов инициализирована', // AccountService 已初始化
// 权限模块 // 权限模块
'meetingStoragePermission': 'Storage', 'meetingStoragePermission': 'Хранилище',
'meetingStoragePermissionExplanation': 'meetingStoragePermissionExplanation':
'We need access to storage permissions so you can select and upload audio files.', 'Нам нужен доступ к хранилищу, чтобы вы могли выбирать и загружать аудиофайлы.',
'meetingStoragePermissionPermanentDenial': 'meetingStoragePermissionPermanentDenial':
'检测到您已永久拒绝存储权限。如需继续使用此功能,请前往应用设置中手动开启存储权限。', 'Обнаружено, что вы навсегда отказали в доступе к хранилищу. Чтобы продолжить использовать эту функцию, откройте настройки приложения и включите разрешение вручную.',
'getPermissionStatusFailed': 'Не удалось получить статус разрешений', 'getPermissionStatusFailed': 'Не удалось получить статус разрешений',
'communicationPermissions': 'Разрешения на связь', 'communicationPermissions': 'Разрешения на связь',
'bluetoothPermissions': 'Bluetooth Permissions', 'bluetoothPermissions': 'Разрешения Bluetooth',
'notificationPermissions': 'Notification Permissions', 'notificationPermissions': 'Разрешения уведомлений',
'storagePermissions': 'Storage Permissions', 'storagePermissions': 'Разрешения хранилища',
'microphonePermissions': 'Microphone Permissions', 'microphonePermissions': 'Разрешения микрофона',
'alarmPermissions': 'Alarm Permissions', 'alarmPermissions': 'Разрешения будильника',
'calendarPermissions': 'Разрешения календаря', 'calendarPermissions': 'Разрешения календаря',
'locationPermissions': 'Разрешения на местоположение', 'locationPermissions': 'Разрешения на местоположение',
'phone': 'Телефон', 'phone': 'Телефон',
'sms': 'SMS', 'sms': 'SMS',
'contacts': 'Contacts', 'contacts': 'Контакты',
'notification': 'Notification', 'notification': 'Уведомления',
'alarm': 'Alarm', 'alarm': 'Будильник',
'calendarWrite': 'Запись в календарь', 'calendarWrite': 'Запись в календарь',
'calendarFullAccess': 'Полный доступ к календарю', 'calendarFullAccess': 'Полный доступ к календарю',
'locationInfo': 'Информация о местоположении', 'locationInfo': 'Информация о местоположении',
'phonePermissionDesc': 'Используется для совершения звонков', 'phonePermissionDesc': 'Используется для совершения звонков',
'smsPermissionDesc': 'Используется для отправки SMS', 'smsPermissionDesc': 'Используется для отправки SMS',
'alarmPermissionDesc': 'alarmPermissionDesc':
'Used to set exact alarms to ensure reminders trigger on time', 'Используется для установки точных будильников, чтобы напоминания срабатывали вовремя',
'calendarWritePermissionDesc': 'calendarWritePermissionDesc':
'Используется для создания событий и напоминаний в календаре', 'Используется для создания событий и напоминаний в календаре',
'calendarFullAccessPermissionDesc': 'calendarFullAccessPermissionDesc':
@ -1254,72 +1263,74 @@ const Map<String, String> ruRU = {
'smsPermissionDetailDesc': 'smsPermissionDetailDesc':
'Для функции отправки SMS требуется разрешение на доступ к SMS', 'Для функции отправки SMS требуется разрешение на доступ к SMS',
'alarmPermissionDetailDesc': 'alarmPermissionDetailDesc':
'This permission is required to set exact alarms and ensure reminders trigger on time', 'Это разрешение требуется для установки точных будильников и своевременного срабатывания напоминаний',
'calendarWritePermissionDetailDesc': 'calendarWritePermissionDetailDesc':
'Для создания событий в календаре требуется разрешение на запись в календарь', 'Для создания событий в календаре требуется разрешение на запись в календарь',
'calendarFullAccessPermissionDetailDesc': 'calendarFullAccessPermissionDetailDesc':
'Для управления событиями в календаре требуется полный доступ к календарю', 'Для управления событиями в календаре требуется полный доступ к календарю',
'locationPermissionDetailDesc': 'locationPermissionDetailDesc':
'Для получения информации о местоположении требуется разрешение на доступ к местоположению', 'Для получения информации о местоположении требуется разрешение на доступ к местоположению',
'contactsPermissionDesc': 'Used for accessing contact information', 'contactsPermissionDesc': 'Используется для доступа к контактной информации',
'contactsPermissionDetailDesc': 'contactsPermissionDetailDesc':
'Phone call and SMS functionality requires contacts permission to select contacts', 'Для звонков и SMS требуется доступ к контактам, чтобы выбирать получателей',
'bluetoothPermissionDesc': 'bluetoothPermissionDesc':
'Used for connecting and managing Bluetooth devices', 'Используется для подключения и управления Bluetooth-устройствами',
'bluetoothPermissionDetailDesc': 'bluetoothPermissionDetailDesc':
'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'Для подключения Bluetooth-наушников и других устройств требуется разрешение Bluetooth',
'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', 'bluetoothScanPermissionDesc':
'Используется для сканирования Bluetooth-устройств поблизости',
'bluetoothScanPermissionDetailDesc': 'bluetoothScanPermissionDetailDesc':
'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'Для сканирования Bluetooth-устройств поблизости требуется разрешение на сканирование Bluetooth',
'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', 'bluetoothConnectPermissionDesc':
'Используется для подключения к Bluetooth-устройствам',
'bluetoothConnectPermissionDetailDesc': 'bluetoothConnectPermissionDetailDesc':
'Connecting to Bluetooth devices requires Bluetooth connect permission', 'Для подключения к Bluetooth-устройствам требуется разрешение на подключение Bluetooth',
'notificationPermissionDesc': 'Used for sending notification messages', 'notificationPermissionDesc': 'Используется для отправки уведомлений',
'notificationPermissionDetailDesc': 'notificationPermissionDetailDesc':
'App needs notification permission to send you important alerts and messages', 'Приложению нужно разрешение на уведомления, чтобы отправлять важные оповещения и сообщения',
'appNeedsPermissionForFullFunction': 'appNeedsPermissionForFullFunction':
'Приложению требуется это разрешение для предоставления полной функциональности', 'Приложению требуется это разрешение для предоставления полной функциональности',
'permanentDenialText': 'permanentDenialText':
'Вы навсегда отказали в доступе к {permission}, пожалуйста, перейдите в настройки приложения, чтобы включить его', 'Вы навсегда отказали в доступе к {permission}, пожалуйста, перейдите в настройки приложения, чтобы включить его',
'goToSettings': 'Перейти в настройки', 'goToSettings': 'Перейти в настройки',
'bluetoothScan': 'Bluetooth Scan', 'bluetoothScan': 'Сканирование Bluetooth',
'bluetoothConnect': 'Bluetooth Connect', 'bluetoothConnect': 'Подключение Bluetooth',
'bluetoothScanExplanation': 'bluetoothScanExplanation':
'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', 'Приложению нужно разрешение на сканирование Bluetooth для поиска устройств поблизости.',
'bluetoothConnectExplanation': 'bluetoothConnectExplanation':
'The app needs Bluetooth connect permission to connect to Bluetooth devices.', 'Приложению нужно разрешение на подключение Bluetooth, чтобы подключаться к устройствам.',
'locationForBluetoothExplanation': 'locationForBluetoothExplanation':
'The app needs location permission to scan Bluetooth devices.', 'Приложению нужно разрешение на местоположение для сканирования Bluetooth-устройств.',
'bluetoothScanPermanentDenial': 'bluetoothScanPermanentDenial':
'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', 'Разрешение на сканирование Bluetooth навсегда отклонено, включите его вручную в настройках.',
'bluetoothConnectPermanentDenial': 'bluetoothConnectPermanentDenial':
'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', 'Разрешение на подключение Bluetooth навсегда отклонено, включите его вручную в настройках.',
'locationPermanentDenial': 'locationPermanentDenial':
'Location permission has been permanently denied, please go to settings to enable it manually.', 'Разрешение на местоположение навсегда отклонено, включите его вручную в настройках.',
'notificationPermission': 'Notification', 'notificationPermission': 'Уведомления',
'locationPermission': 'Location', 'locationPermission': 'Местоположение',
'notificationPermissionExplanation': 'notificationPermissionExplanation':
'Notification permission is required to display music playback status.', 'Разрешение на уведомления требуется для отображения статуса воспроизведения музыки.',
'locationPermissionExplanation': 'locationPermissionExplanation':
'Location permission is required to get current location.', 'Разрешение на местоположение требуется для получения текущего местоположения.',
'notificationPermissionPermanentDenial': 'notificationPermissionPermanentDenial':
'You have permanently denied notification permission, please go to settings to enable it.', 'Вы навсегда отказали в разрешении на уведомления, включите его в настройках.',
'locationPermissionPermanentDenial': 'locationPermissionPermanentDenial':
'You have permanently denied location permission, please go to settings to enable it.', 'Вы навсегда отказали в разрешении на местоположение, включите его в настройках.',
'storagePermission': 'Storage', 'storagePermission': 'Хранилище',
'microphonePermissionExplanation': 'microphonePermissionExplanation':
'We need microphone permission to record audio content.', 'Нам нужно разрешение микрофона для записи аудио.',
'storagePermissionExplanation': 'storagePermissionExplanation':
'We need storage permission so you can select and upload audio files.', 'Нам нужно разрешение хранилища, чтобы вы могли выбирать и загружать аудиофайлы.',
'microphonePermissionPermanentDenial': 'microphonePermissionPermanentDenial':
'检测到您已永久拒绝录音权限。如需继续使用此功能,请前往应用设置中手动开启麦克风权限。', 'Обнаружено, что вы навсегда отказали в доступе к микрофону. Чтобы продолжить использовать эту функцию, откройте настройки приложения и включите разрешение микрофона вручную.',
'storagePermissionPermanentDenial': 'storagePermissionPermanentDenial':
'检测到您已永久拒绝存储权限。如需继续使用此功能,请前往应用设置中手动开启存储权限。', 'Обнаружено, что вы навсегда отказали в доступе к хранилищу. Чтобы продолжить использовать эту функцию, откройте настройки приложения и включите разрешение хранилища вручную.',
'permissionUtilNeed': 'Need ', 'permissionUtilNeed': 'Нужно ',
'permissionUtilPermission': ' Permission', 'permissionUtilPermission': ' разрешение',
'permissionUtilRestricted': ' Permission Restricted', 'permissionUtilRestricted': ' разрешение ограничено',
'permissionUtilRestrictedMessage': 'permissionUtilRestrictedMessage':
'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'Эта функция недоступна или ограничена на текущем устройстве. Проверьте настройки устройства или системные ограничения.',
'permissionUtilConfirm': 'OK', 'permissionUtilConfirm': 'OK',
// 原生前台服务通知(Android) // 原生前台服务通知(Android)
@ -1412,27 +1423,27 @@ const Map<String, String> ruRU = {
'bleConnectionFailed': 'Не удалось подключиться через BLE', 'bleConnectionFailed': 'Не удалось подключиться через BLE',
'deviceAuthorizationFailedCheckCode': 'deviceAuthorizationFailedCheckCode':
'Ошибка авторизации устройства, проверьте код авторизации', 'Ошибка авторизации устройства, проверьте код авторизации',
'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideTitle': 'Требуется ручное включение Bluetooth', // 需要手动开启蓝牙
'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: 'bluetoothGuideSteps': 'Выполните следующие шаги:', // 请按照以下步骤操作:
'bluetoothGuideStep1': 'bluetoothGuideStep1':
'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 'Включите Bluetooth: Настройки → Bluetooth → Включить', // 开启蓝牙:设置 → 蓝牙 → 开启
'bluetoothGuideStep2': 'bluetoothGuideStep2':
'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 'Подключите устройство: найдите устройство в «Мои устройства» и нажмите, чтобы подключиться', // 连接设备:在"我的设备"中找到您的设备并点击连接
'bluetoothGuideStep3': 'bluetoothGuideStep3':
'Return to app to continue pairing process', // 返回应用继续配对流程 'Вернитесь в приложение, чтобы продолжить сопряжение', // 返回应用继续配对流程
'bluetoothGuideTip': 'bluetoothGuideTip':
'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'Совет: можно также удерживать значок Bluetooth в Пункте управления, чтобы быстро открыть настройки Bluetooth', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置
'iKnow': 'I Know', // 我知道了 'iKnow': 'Понятно', // 我知道了
// 配对模块 - 绑定奖励 // 配对模块 - 绑定奖励
"firstBindRewardTitle": "Welcome Reward", "firstBindRewardTitle": "Приветственный бонус",
"firstBindRewardDesc": "You've received binding rewards.", "firstBindRewardDesc": "Вы получили бонус за привязку устройства.",
"vipLevelLabel": "VIP Level:", "vipLevelLabel": "Уровень VIP:",
"expiryLabel": "Expiration:", "expiryLabel": "Срок действия:",
"notActivated": "Not activated", "notActivated": "Не активировано",
"aiChatCreditsLabel": "AI Chat Credits:", "aiChatCreditsLabel": "Кредиты чата AI:",
"translationCreditsLabel": "Translation Credits:", "translationCreditsLabel": "Кредиты перевода:",
"meetingCreditsLabel": "Meeting Credits:", "meetingCreditsLabel": "Кредиты встреч:",
"ok": "OK", "ok": "OK",
// 用户反馈模块 // 用户反馈模块
@ -1463,13 +1474,14 @@ const Map<String, String> ruRU = {
"connectionFailed": "Ошибка подключения", "connectionFailed": "Ошибка подключения",
"retryConnection": "Повторить подключение", "retryConnection": "Повторить подключение",
"ota_updateNow": "Обновить сейчас", "ota_updateNow": "Обновить сейчас",
"otaVersionInfoFailed": "Failed to get version info. Please try again later.", "otaVersionInfoFailed":
"Не удалось получить информацию о версии. Попробуйте еще раз позже.",
"otaDeviceInfoUnavailable": "otaDeviceInfoUnavailable":
"Unable to get device info. Please check the connection and retry.", "Не удалось получить информацию об устройстве. Проверьте подключение и повторите.",
"otaProductInfoUnavailable": "otaProductInfoUnavailable":
"Unable to identify the device. Please reconnect and retry.", "Не удалось определить устройство. Подключитесь снова и повторите.",
"otaFirmwareVersionInvalid": "otaFirmwareVersionInvalid":
"Firmware version is abnormal. Please reconnect and retry.", "Некорректная версия прошивки. Подключитесь снова и повторите.",
"keepConnectedDontClose": "keepConnectedDontClose":
"Пожалуйста, держите устройство подключенным, не закрывайте приложение", "Пожалуйста, держите устройство подключенным, не закрывайте приложение",
"doNotDisconnect": "Пожалуйста, не отключайтесь", "doNotDisconnect": "Пожалуйста, не отключайтесь",
@ -1496,7 +1508,7 @@ const Map<String, String> ruRU = {
'Требуется BLE-подключение\nУбедитесь, что устройство подключено, и повторите', 'Требуется BLE-подключение\nУбедитесь, что устройство подключено, и повторите',
'otaDeviceInfoUnavailableTitle': 'Информация об устройстве недоступна', 'otaDeviceInfoUnavailableTitle': 'Информация об устройстве недоступна',
'otaCannotGetDeviceInfo': 'otaCannotGetDeviceInfo':
'Cannot get device info\nPlease reconnect device or try again later', 'Не удаётся получить информацию об устройстве\nПереподключите устройство или попробуйте позже',
'otaBleCheckFailed': 'Проверка BLE-соединения не удалась', 'otaBleCheckFailed': 'Проверка BLE-соединения не удалась',
'otaCannotGetDeviceInfoCheckConnection': 'otaCannotGetDeviceInfoCheckConnection':
'Не удаётся получить информацию, проверьте подключение', 'Не удаётся получить информацию, проверьте подключение',

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

@ -1,3 +1,4 @@
// 斯洛伐克-斯洛伐克语
const Map<String, String> skSK = { const Map<String, String> skSK = {
// 通用 // 通用
'continue': 'Pokračovať', 'continue': 'Pokračovať',
@ -18,11 +19,11 @@ const Map<String, String> skSK = {
"unknownError": "Neznáma chyba", "unknownError": "Neznáma chyba",
"asrConnectionFailed": "asrConnectionFailed":
"Pripojenie k službe rozpoznávania reči zlyhalo. Skontrolujte sieť alebo to skúste znova neskôr.", "Pripojenie k službe rozpoznávania reči zlyhalo. Skontrolujte sieť alebo to skúste znova neskôr.",
"justNow": "Just now", "justNow": "Teraz",
"minutesAgo": "@minutes minutes ago", "minutesAgo": "@minutes minút pred",
"yesterday": "Yesterday", "yesterday": "Včera",
"daysAgo": "@days days ago", "daysAgo": "@days dní pred",
"hoursAgo": "@hours hours ago", "hoursAgo": "@hours hodín pred",
// 启动页 // 启动页
"slogan": "Pripájanie sveta, za hranicami zvuku", "slogan": "Pripájanie sveta, za hranicami zvuku",
@ -110,7 +111,7 @@ const Map<String, String> skSK = {
"welcomeToThisApp": "welcomeToThisApp":
"Vitajte v Voitrans, prečítajte si prosím pozorne", // 欢迎使用Voitrans,请充分阅读 "Vitajte v Voitrans, prečítajte si prosím pozorne", // 欢迎使用Voitrans,请充分阅读
"privacyPolicyText": "privacyPolicyText":
",点击'同意并进入'表示您已充分阅读并同意上述协议。点击'不同意'将退出应用。", // ,点击"同意并进入"表示您已充分阅读并同意上述协议。点击"不同意"将退出应用。 ", Klepnutím na „Súhlasím a vstúpiť“ potvrdzujete, že ste si prečítali a súhlasíte s vyššie uvedenými zmluvami. Klepnutím na „Nesúhlasím“ sa aplikácia ukončí.", // ,点击"同意并进入"表示您已充分阅读并同意上述协议。点击"不同意"将退出应用。
"disagree": "Nesúhlasím", // 不同意 "disagree": "Nesúhlasím", // 不同意
"agreeAndEnter": "Súhlasím a vstúpiť", // 同意并进入 "agreeAndEnter": "Súhlasím a vstúpiť", // 同意并进入
@ -169,27 +170,27 @@ const Map<String, String> skSK = {
'checkConnectionStatusFailed': 'Kontrola stavu pripojenia zlyhala', 'checkConnectionStatusFailed': 'Kontrola stavu pripojenia zlyhala',
// 蓝牙扫描模块 // 蓝牙扫描模块
'bleInitFailedWithError': 'Bluetooth initialization failed: @error', 'bleInitFailedWithError': 'Inicializácia Bluetooth zlyhala: @error',
'needBluetoothAndLocationPermission': 'needBluetoothAndLocationPermission':
'Bluetooth and location permissions are required to scan devices', 'Na vyhľadávanie zariadení sú potrebné povolenia Bluetooth a polohy',
'permissionRequestFailedWithError': 'Permission request failed: @error', 'permissionRequestFailedWithError': 'Žiadosť o povolenie zlyhala: @error',
'needPermission': 'Permission Required', 'needPermission': 'Vyžaduje sa povolenie',
'blePermissionDialogContent': 'blePermissionDialogContent':
'This app requires Bluetooth and location permissions to scan devices. Please enable them in Settings.', 'Táto aplikácia potrebuje povolenia Bluetooth a polohy na vyhľadávanie zariadení. Povoľte ich v Nastaveniach.',
'needEnableBluetooth': 'Enable Bluetooth', 'needEnableBluetooth': 'Zapnúť Bluetooth',
'enableBluetoothDialogContent': 'enableBluetoothDialogContent':
'Please enable Bluetooth to scan and connect devices.', 'Zapnite Bluetooth, aby ste mohli vyhľadávať a pripájať zariadenia.',
'bleScanFailedWithError': 'Scan failed: @error', 'bleScanFailedWithError': 'Skenovanie zlyhalo: @error',
'bleConnectionSuccess': 'Connection Successful', 'bleConnectionSuccess': 'Pripojenie úspešné',
'bleConnectedToDevice': 'Connected to @device', 'bleConnectedToDevice': 'Pripojené k @device',
'bleConnectionFailedWithError': 'Connection failed: @error', 'bleConnectionFailedWithError': 'Pripojenie zlyhalo: @error',
'bleDisconnected': 'Disconnected', 'bleDisconnected': 'Odpojené',
'bleDeviceDisconnected': 'Device disconnected', 'bleDeviceDisconnected': 'Zariadenie odpojené',
'bleDisconnectFailedWithError': 'Disconnect failed: @error', 'bleDisconnectFailedWithError': 'Odpojenie zlyhalo: @error',
'signalStrong': 'Strong', 'signalStrong': 'Silný',
'signalMedium': 'Medium', 'signalMedium': 'Stredný',
'signalWeak': 'Weak', 'signalWeak': 'Slabý',
'signalVeryWeak': 'Very Weak', 'signalVeryWeak': 'Veľmi slabý',
// 发现页 // 发现页
"searchAi": "Hľadať AI funkcie...", "searchAi": "Hľadať AI funkcie...",
@ -219,22 +220,22 @@ const Map<String, String> skSK = {
// 用量统计模块 // 用量统计模块
"aiChat": "AI Chat", "aiChat": "AI Chat",
"translationStats": "Translation Statistics", "translationStats": "Štatistika prekladu",
"meetingStats": "Meeting Statistics", "meetingStats": "Štatistika stretnutí",
"today": "Today", "today": "Dnes",
"thisWeek": "This Week", "thisWeek": "Tento týždeň",
"thisMonth": "This Month", "thisMonth": "Tento mesiac",
"history": "History", "history": "História",
"currentSessionStats": "Current Session Stats", "currentSessionStats": "Štatistika aktuálnej relácie",
"translationCount": "Translation Count", "translationCount": "Počet prekladov",
"sessionDuration": "Session Duration", "sessionDuration": "Trvanie relácie",
"characters": "Characters", "characters": "Znaky",
"recordingDuration": "Recording Duration", "recordingDuration": "Trvanie nahrávania",
"totalApiCalls": "Total API Calls", "totalApiCalls": "Celkový počet volaní API",
"sessionCount": "Session Count", "sessionCount": "Počet relácií",
"totalCharacters": "Total Characters", "totalCharacters": "Celkový počet znakov",
"apiCallStats": "API Call Stats", "apiCallStats": "Štatistika volaní API",
"translationApi": "Translation API", "translationApi": "API prekladu",
"asr": "ASR", "asr": "ASR",
"tts": "TTS", "tts": "TTS",
"dataVolumeStats": "Data Volume Stats", "dataVolumeStats": "Data Volume Stats",
@ -253,9 +254,9 @@ const Map<String, String> skSK = {
"totalAudioDuration": "Total Audio Duration", "totalAudioDuration": "Total Audio Duration",
"audioFileSize": "Audio File Size", "audioFileSize": "Audio File Size",
"transcriptBytes": "Transcript Bytes", "transcriptBytes": "Transcript Bytes",
"loadFailed": "Load Failed", "loadFailed": "Načítanie zlyhalo",
"statsLoadFailedTryLater": "statsLoadFailedTryLater":
"Statistics failed to load. Please try again later.", "Štatistiky sa nepodarilo načítať. Skúste to znova neskôr.",
"cleanupComplete": "Cleanup Complete", "cleanupComplete": "Cleanup Complete",
"cleanedOldData": "Cleaned data older than 90 days", "cleanedOldData": "Cleaned data older than 90 days",
"exportFeature": "Export Feature", "exportFeature": "Export Feature",
@ -327,10 +328,10 @@ const Map<String, String> skSK = {
'alipayPaymentException': 'Výnimka Alipay', 'alipayPaymentException': 'Výnimka Alipay',
"insufficientIntegral": "Insufficient integral", "insufficientIntegral": "Insufficient integral",
"insufficientBalanceDesc": "insufficientBalanceDesc":
"Insufficient balance, please go to the corresponding recharge page to recharge.", "Nedostatočný zostatok, prejdite na príslušnú stránku dobitia a dobite si.",
"recharge": "Go to Recharge", "recharge": "Go to Recharge",
"aiMemberExpiredDesc": "aiMemberExpiredDesc":
"AI membership expired, please go to the membership recharge page to renew.", "Členstvo AI vypršalo, prejdite na stránku dobitia členstva a obnovte ho.",
// 商品模块 - AI商品页 // 商品模块 - AI商品页
'musicAndRecommendation': 'Music & Recommendation', 'musicAndRecommendation': 'Music & Recommendation',
@ -358,18 +359,18 @@ const Map<String, String> skSK = {
'templatedMessagesAndScheduleReminders': 'templatedMessagesAndScheduleReminders':
'Template messages and schedule reminders', 'Template messages and schedule reminders',
'aiDisclaimer': 'aiDisclaimer':
'Features depend on device permissions, service availability, and network conditions.', 'Funkcie závisia od povolení zariadenia, dostupnosti služby a sieťových podmienok.',
// 商品模块 - 翻译商品页 // 商品模块 - 翻译商品页
'realtimeTranscription': 'Real-time Transcription', 'realtimeTranscription': 'Real-time Transcription',
'sceneLexicon': 'Scenario Glossary', 'sceneLexicon': 'Scenario Glossary',
'subtitleDisplay': 'Subtitles', 'subtitleDisplay': 'Subtitles',
'transHeaderDesc1': 'transHeaderDesc1':
'Real-time simultaneous interpretation and text translation with low-latency voice.', 'Simultánne tlmočenie a textový preklad v reálnom čase s nízkou latenciou hlasu.',
'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.',
'translateZhEn': 'Chinese-English translation', 'translateZhEn': 'Preklad čínština–angličtina',
'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast',
'multiLangTextTranslation': 'Multilingual text translation', 'multiLangTextTranslation': 'Viacjazyčný textový preklad',
'termOptimizationContextPreserve': 'termOptimizationContextPreserve':
'Terminology optimization and context preservation', 'Terminology optimization and context preservation',
'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons',
@ -377,18 +378,18 @@ const Map<String, String> skSK = {
'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode',
'colorHighContrast': 'High color contrast', 'colorHighContrast': 'High color contrast',
'transDisclaimer': 'transDisclaimer':
'Translation performance depends on microphone, network latency, and ambient noise.', 'Výkon prekladu závisí od mikrofónu, latencie siete a okolitého hluku.',
// 商品模块 - 会议商品页 // 商品模块 - 会议商品页
'meetingRecording': 'Meeting Recording', 'meetingRecording': 'Záznam stretnutia',
'transcriptionAndSummary': 'Transcription & Summary', 'transcriptionAndSummary': 'Transcription & Summary',
'keywordSearch': 'Keyword Search', 'keywordSearch': 'Keyword Search',
'collaborationSharing': 'Collaboration & Sharing', 'collaborationSharing': 'Collaboration & Sharing',
'meetingHeaderDesc1': 'meetingHeaderDesc1':
'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', 'Nahrávanie zvuku, prepis, vyhľadávanie kľúčových slov a automatické zhrnutie na zvýšenie efektivity stretnutí.',
'meetingHeaderDesc2': 'meetingHeaderDesc2':
'Suitable for business meetings, class notes, and interview minutes.', 'Suitable for business meetings, class notes, and interview minutes.',
'meetingAutoRecording': 'Auto recording and segmentation', 'meetingAutoRecording': 'Automatické nahrávanie a segmentácia',
'meetingSpeakerTagging': 'Speaker labeling', 'meetingSpeakerTagging': 'Speaker labeling',
'meetingLongAudioTranscription': 'Long audio transcription', 'meetingLongAudioTranscription': 'Long audio transcription',
'meetingKeyPointSummary': 'Key point extraction', 'meetingKeyPointSummary': 'Key point extraction',
@ -397,7 +398,7 @@ const Map<String, String> skSK = {
'meetingExportSummary': 'Export minutes', 'meetingExportSummary': 'Export minutes',
'meetingMultiPlatformShare': 'Share across platforms', 'meetingMultiPlatformShare': 'Share across platforms',
'meetingDisclaimer': 'meetingDisclaimer':
'Use in quiet environments; performance depends on microphone and network.', 'Používajte v tichom prostredí; výkon závisí od mikrofónu a siete.',
// 商品模块 - VIP会员页 // 商品模块 - VIP会员页
'benefitsOverview': 'Benefits overview', 'benefitsOverview': 'Benefits overview',
@ -411,7 +412,7 @@ const Map<String, String> skSK = {
'longTermDiscountPlan': 'Long-term discount plan', 'longTermDiscountPlan': 'Long-term discount plan',
'generalPrivileges': 'General privileges', 'generalPrivileges': 'General privileges',
'earlyAccessNewFeatures': 'Early access to new features', 'earlyAccessNewFeatures': 'Early access to new features',
'crossDeviceSync': 'Cross-device sync', 'crossDeviceSync': 'Synchronizácia medzi zariadeniami',
'vipDisclaimer': 'vipDisclaimer':
'Actual benefits depend on the package details and may change with versions.', 'Actual benefits depend on the package details and may change with versions.',
@ -422,18 +423,18 @@ const Map<String, String> skSK = {
'meet_001_name': 'Meeting Basic 100', 'meet_001_name': 'Meeting Basic 100',
'meet_002_name': 'Meeting Basic 500', 'meet_002_name': 'Meeting Basic 500',
'meet_003_name': 'Meeting Basic 1000', 'meet_003_name': 'Meeting Basic 1000',
'trans_001_name': 'Translation Basic 100', 'trans_001_name': 'Preklad Základ 100',
'trans_002_name': 'Translation Basic 500', 'trans_002_name': 'Preklad Základ 500',
'trans_003_name': 'Translation Basic 1000', 'trans_003_name': 'Preklad Základ 1000',
'ai_001_desc': 'Includes 100 uses. Access core AI features.', 'ai_001_desc': 'Includes 100 uses. Access core AI features.',
'ai_002_desc': 'Includes 500 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.', 'ai_003_desc': 'Includes 1000 uses. Access core AI features.',
'meet_001_desc': 'Includes 100 meeting recordings/transcriptions.', 'meet_001_desc': 'Obsahuje 100 nahrávok/prepisov stretnutí.',
'meet_002_desc': 'Includes 500 meeting recordings/transcriptions.', 'meet_002_desc': 'Obsahuje 500 nahrávok/prepisov stretnutí.',
'meet_003_desc': 'Includes 1000 meeting recordings/transcriptions.', 'meet_003_desc': 'Obsahuje 1000 nahrávok/prepisov stretnutí.',
'trans_001_desc': 'Includes 100 translations (voice/text).', 'trans_001_desc': 'Obsahuje 100 prekladov (hlas/text).',
'trans_002_desc': 'Includes 500 translations (voice/text).', 'trans_002_desc': 'Obsahuje 500 prekladov (hlas/text).',
'trans_003_desc': 'Includes 1000 translations (voice/text).', 'trans_003_desc': 'Obsahuje 1000 prekladov (hlas/text).',
// 商品模块 - 页脚 // 商品模块 - 页脚
'appNameProvider': 'App: VoiTrans · Provided by: VoiTrans', 'appNameProvider': 'App: VoiTrans · Provided by: VoiTrans',
@ -491,35 +492,36 @@ const Map<String, String> skSK = {
'meetingTranscript': 'Prepis stretnutia', 'meetingTranscript': 'Prepis stretnutia',
'files': 'Files', 'files': 'Files',
'mine': 'Mine', 'mine': 'Mine',
'connect': 'Connect', 'connect': 'Pripojiť',
'allFiles': 'All Files', 'allFiles': 'All Files',
'searchInAllFiles': 'Search in all files', 'searchInAllFiles': 'Search in all files',
'from': 'From', 'from': 'From',
'sortBy': 'Sort by', 'sortBy': 'Sort by',
'creationTime': 'Creation Time', 'creationTime': 'Creation Time',
'bluetoothConnection': 'Bluetooth Connection', 'bluetoothConnection': 'Bluetooth pripojenie',
'meetingReconnect': 'Reconnect', 'meetingReconnect': 'Znova pripojiť',
'searching': 'Searching...', 'searching': 'Searching...',
'searchFailed': 'Search failed, please check if Bluetooth is enabled', 'searchFailed': 'Vyhľadávanie zlyhalo, skontrolujte, či je Bluetooth zapnutý',
'aiPenNotFound': 'AI PEN device not found', 'aiPenNotFound': 'Zariadenie AI PEN sa nenašlo',
'connectedToAiPen': 'Connected to AI PEN device', 'connectedToAiPen': 'Pripojené k zariadeniu AI PEN',
'checkingNewFiles': 'Checking for new files to import', 'checkingNewFiles': 'Kontrola nových súborov na import',
'startingWifi': 'Starting Wi-Fi...', 'startingWifi': 'Starting Wi-Fi...',
'newFilesDetected': 'New files detected, preparing to import', 'newFilesDetected': 'New files detected, preparing to import',
'noNewFiles': 'No new files to import', 'noNewFiles': 'No new files to import',
'connectingWifi': 'Connecting to Wi-Fi...', 'connectingWifi': 'Pripája sa k Wi‑Fi...',
'wifiConnected': 'Wi-Fi connected successfully', 'wifiConnected': 'Wi‑Fi úspešne pripojené',
'downloadingFiles': 'Downloading files...', 'downloadingFiles': 'Sťahovanie súborov...',
'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadingFileProgress':
'downloadComplete': 'Download complete', 'Celkom {total} súborov, sťahuje sa súbor {current}',
'downloadComplete': 'Sťahovanie dokončené',
'downloadCompleteInfo': 'downloadCompleteInfo':
'Download complete, {count} files in total, returning automatically in 2 seconds', 'Sťahovanie dokončené, celkom {count} súborov, automatický návrat o 2 sekundy',
// Meeting模块 - 录音功能 // Meeting模块 - 录音功能
'startRecording': 'Start Recording', 'startRecording': 'Spustiť nahrávanie',
'liveRecording': 'Live Recording', 'liveRecording': 'Nahrávanie naživo',
'audioVideoRecording': 'Audio/Video Recording', 'audioVideoRecording': 'Nahrávanie zvuku/videa',
'callRecording': 'Call Recording', 'callRecording': 'Nahrávanie hovoru',
'importAudio': 'Import Audio', 'importAudio': 'Import Audio',
'meetingRecordExitTitle': 'Ukončiť nahrávanie', // 退出录音 'meetingRecordExitTitle': 'Ukončiť nahrávanie', // 退出录音
'meetingRecordExitMessage': 'Vyberte akciu po odchode', // 请选择离开后的操作 'meetingRecordExitMessage': 'Vyberte akciu po odchode', // 请选择离开后的操作
@ -584,30 +586,31 @@ const Map<String, String> skSK = {
'custom': 'Vlastné', 'custom': 'Vlastné',
'pleaseEnter': 'Prosím zadajte', 'pleaseEnter': 'Prosím zadajte',
'viewAll': 'View All', 'viewAll': 'View All',
'recordingLanguage': 'Recording Language', 'recordingLanguage': 'Jazyk nahrávky',
'chineseSimplified': 'Chinese Mandarin (Simplified)', 'chineseSimplified': 'Chinese Mandarin (Simplified)',
'meetingGenerateNow': 'Generate Now', 'meetingGenerateNow': 'Generate Now',
'keyEventsAnalyzed': 'Analyzed {count} key events.', 'keyEventsAnalyzed': 'Analyzed {count} key events.',
'aiAnalysisDesc': 'aiAnalysisDesc':
'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', 'AI analýza identifikuje kľúčové udalosti v nahrávkach, aby ste mohli vybrať dôležité udalosti na generovanie AI.',
// Meeting模块 - 文件操作 // Meeting模块 - 文件操作
'importing': 'Importing...', 'importing': 'Importing...',
'batchImporting': 'Batch importing...', 'batchImporting': 'Batch importing...',
'importingLocalRecordings': 'Importing local recordings...', 'importingLocalRecordings': 'Import miestnych nahrávok...',
'importFailed': 'Import file failed: {filePath}, error: {error}', 'importFailed': 'Import súboru zlyhal: {filePath}, chyba: {error}',
'importSuccess': 'Successfully imported {count} local recordings', 'importSuccess': 'Úspešne importovaných {count} miestnych nahrávok',
'importError': 'Import failed: {error}', 'importError': 'Import zlyhal: {error}',
'pleaseSelectAudioFile': 'Please select audio file', 'pleaseSelectAudioFile': 'Vyberte zvukový súbor',
'shareAudio': 'Share Meeting Audio', 'shareAudio': 'Share Meeting Audio',
'shareComplete': 'Share complete!', 'shareComplete': 'Share complete!',
'shareFailed': 'Share failed: {error}', 'shareFailed': 'Zdieľanie zlyhalo: {error}',
'fileProcessingFailed': 'File processing failed: {filePath}, error: {error}', 'fileProcessingFailed':
'Spracovanie súboru zlyhalo: {filePath}, chyba: {error}',
// Meeting模块 - 思维导图 // Meeting模块 - 思维导图
'saveMindMap': 'Uložiť myšlienkovú mapu', 'saveMindMap': 'Uložiť myšlienkovú mapu',
'shareMindMap': 'Share Mind Map', 'shareMindMap': 'Share Mind Map',
'shareSuccess': 'Share Success', 'shareSuccess': 'Zdieľanie úspešné',
// Meeting模块 - AI问答 // Meeting模块 - AI问答
'askAI': 'Ask AI ...', 'askAI': 'Ask AI ...',
@ -643,26 +646,27 @@ const Map<String, String> skSK = {
// Meeting模块 - 云端同步 // Meeting模块 - 云端同步
'syncToCloud': 'Sync to Cloud', 'syncToCloud': 'Sync to Cloud',
'syncToCloudTip': 'syncToCloudTip':
'自动将你的录音同步到云端,你可以通过任意VOITRANS APP或VOITRANS Web(web.voitrans.com)播放、管理和分享录音。', 'Nahrávky sa automaticky synchronizujú do cloudu; nahrávky môžete prehrávať, spravovať a zdieľať cez ľubovoľnú aplikáciu VOITRANS alebo VOITRANS Web (web.voitrans.com).',
'syncToVoitransApp': 'Sync VOITRANS APP', 'syncToVoitransApp': 'Synchronizovať do aplikácie VOITRANS',
'transcriptionRecord': 'Transcription Record', 'transcriptionRecord': 'Záznam prepisu',
// Meeting模块 - 我的页面 // Meeting模块 - 我的页面
'transcriptionRecords': 'Transcription Records', 'transcriptionRecords': 'Záznamy prepisu',
'templateCommunity': 'Template Community', 'templateCommunity': 'Template Community',
'comingSoon': 'Coming Soon', 'comingSoon': 'Coming Soon',
'integration': 'Integration', 'integration': 'Integration',
'voitransPrivateCloud': 'VOITRANS PRIVATE CLOUD', 'voitransPrivateCloud': 'VOITRANS PRIVATE CLOUD',
'enabled': 'Enabled', 'enabled': 'Povolené',
'disabled': 'Disabled', 'disabled': 'Zakázané',
'myVoitransDevice': 'My VOITRANS Device', 'myVoitransDevice': 'Moje zariadenie VOITRANS',
'helpAndFeedback': 'Help & Feedback', 'helpAndFeedback': 'Help & Feedback',
'aboutVoitrans': 'About VOITRANS', 'aboutVoitrans': 'About VOITRANS',
'meetingDays': 'Days', 'meetingDays': 'Days',
'meetingHours': 'Hours', 'meetingHours': 'Hours',
'voitransAiMember': 'Voitrans AI Member', 'voitransAiMember': 'Voitrans AI Member',
'unlockStarterMember': 'Unlock Starter Member', 'unlockStarterMember': 'Unlock Starter Member',
'bindDeviceToActivate': 'Bind Voitrans device to activate Starter membership', 'bindDeviceToActivate':
'Ak chcete aktivovať Starter členstvo, pripojte zariadenie Voitrans',
'unlockNow': 'Unlock Now', 'unlockNow': 'Unlock Now',
// Meeting模块 - 会员与升级 // Meeting模块 - 会员与升级
@ -686,7 +690,7 @@ const Map<String, String> skSK = {
'customTemplateDesc': 'customTemplateDesc':
'You can customize summary prompts according to your needs and use them to generate the required summaries.', 'You can customize summary prompts according to your needs and use them to generate the required summaries.',
'askAiDesc': 'askAiDesc':
'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', 'Inteligentne získajte hlbšie informácie z nahrávok; jedným kliknutím vygenerujte tabuľky, kľúčové závery diskusie, zoznam úloh, e-maily so správami a ďalší formátovaný obsah.',
'visualMindMapDesc': 'visualMindMapDesc':
'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.',
'templateCommunityDesc': 'templateCommunityDesc':
@ -694,13 +698,13 @@ const Map<String, String> skSK = {
'speakerIdentificationDesc': 'speakerIdentificationDesc':
'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.',
'privateCloudSyncDesc': 'privateCloudSyncDesc':
'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', 'Vaše nahrávky a prepisy budú bezpečne uložené na vyhradených cloudových serveroch s úplným šifrovaním počas nahrávania aj sťahovania, aby sa zabezpečilo súkromie a bezpečnosť.',
'aiVoiceEnhancementDesc': 'aiVoiceEnhancementDesc':
'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.',
'audioImportDesc': 'audioImportDesc':
'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.',
'multipleExportFormatsDesc': 'multipleExportFormatsDesc':
'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', 'Exportujte zvukové nahrávky, text prepisu a zhrnutia v rôznych formátoch (TXT, PDF, JPEG) podľa potreby.',
'upgradeMembership': 'Upgrade Your Membership', 'upgradeMembership': 'Upgrade Your Membership',
'yearlySubscription': 'Yearly Subscription', 'yearlySubscription': 'Yearly Subscription',
'monthlySubscription': 'Monthly Subscription', 'monthlySubscription': 'Monthly Subscription',
@ -730,7 +734,7 @@ const Map<String, String> skSK = {
'purchase': 'Purchase', 'purchase': 'Purchase',
// Meeting模块 - 录音语言 // Meeting模块 - 录音语言
'recordLanguage': 'Recording Language', 'recordLanguage': 'Jazyk nahrávania',
'cantonese': 'Cantonese', 'cantonese': 'Cantonese',
'sichuan': 'Sichuan Dialect', 'sichuan': 'Sichuan Dialect',
'shanghai': 'Shanghai Dialect', 'shanghai': 'Shanghai Dialect',
@ -757,10 +761,10 @@ const Map<String, String> skSK = {
"translationRecharge": "Nákup prekladov", "translationRecharge": "Nákup prekladov",
"meetingAssistantRecharge": "Nákup asistentu stretnutia", "meetingAssistantRecharge": "Nákup asistentu stretnutia",
"cloudSync": "Nákup synchronizácie v cloude", "cloudSync": "Nákup synchronizácie v cloude",
"memberService": "Member Service", "memberService": "Členské služby",
"bindRewardTitle": "Rewards", "bindRewardTitle": "Odmeny",
"bindRewardSimpleDesc": "bindRewardSimpleDesc":
"First bind device reward has been issued. Tap OK to close.", "Odmena za prvé pripojenie zariadenia bola pripísaná. Klepnite na OK a zatvorte.",
"joinDevice": "Pripojené zariadenie:", "joinDevice": "Pripojené zariadenie:",
"accountId": "ID účtu:", "accountId": "ID účtu:",
"systemSetting": "Systémové nastavenie", "systemSetting": "Systémové nastavenie",
@ -809,19 +813,21 @@ const Map<String, String> skSK = {
"loading": "Načítava sa...", "loading": "Načítava sa...",
// 设备管理模块 // 设备管理模块
"deviceTypeUnknown": "Unknown Device", "deviceTypeUnknown": "Neznáme zariadenie",
"deviceTypeClassicBluetoothHeadset": "Classic Bluetooth Headset", "deviceTypeClassicBluetoothHeadset": "Classic Bluetooth Headset",
"deviceTypeBleBluetoothHeadset": "BLE Bluetooth Headset", "deviceTypeBleBluetoothHeadset": "BLE Bluetooth Headset",
"deviceTypeSmartVoiceRecorder": "Smart Voice Recorder", "deviceTypeSmartVoiceRecorder": "Inteligentný hlasový záznamník",
"deviceTypeSmartEye": "Smart Glasses", "deviceTypeSmartEye": "Smart Glasses",
"unbind": "Zrušiť prepojenie", "unbind": "Zrušiť prepojenie",
"noDevicesBound": "No devices bound yet", "noDevicesBound": "Zatiaľ nie sú pripojené žiadne zariadenia",
"pleaseBindDeviceFirst": "Please bind a device first to manage", "pleaseBindDeviceFirst":
"Najprv pripojte zariadenie, aby ste ho mohli spravovať",
"noMacAddress": "No MAC Address", "noMacAddress": "No MAC Address",
"licenseCode": "License Code", "licenseCode": "License Code",
"confirmUnbind": "Confirm Unbind", "confirmUnbind": "Potvrdiť odpojenie",
"confirmUnbindMessage": "Are you sure you want to unbind device \\", "confirmUnbindMessage":
"confirmUnbindAction": "Confirm Unbind", "Ste si istí, že chcete odpojiť zariadenie \"{deviceName}\"?",
"confirmUnbindAction": "Potvrdiť odpojenie",
// Agent模块 - 主界面 // Agent模块 - 主界面
"Lily": "Lily", "Lily": "Lily",
@ -851,31 +857,31 @@ const Map<String, String> skSK = {
"loadMoreMessages": "Načítať viac správ...", "loadMoreMessages": "Načítať viac správ...",
"loadFailedClickRetry": "Načítanie zlyhalo, kliknite pre opakovanie", "loadFailedClickRetry": "Načítanie zlyhalo, kliknite pre opakovanie",
"swipeUpForMore": "Potiahnite nahor pre viac", "swipeUpForMore": "Potiahnite nahor pre viac",
"callingTool": "I'm helping you, please wait!", // 正在帮您,请稍等! "callingTool": "Pomáham vám, prosím počkajte!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断 "voice_interrupt": "Prerušiť", // 语音打断
'voice_interrupt_tip': '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.', '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模块 - 预设提示词 // Agent模块 - 预设提示词
"presetMusic": "Play some music", // 来点音乐 "presetMusic": "Pusti hudbu", // 来点音乐
"presetNavigation": "Navigation to", // 导航 "presetNavigation": "Naviguj do", // 导航
"presetWeather": "Today's weather", // 今日天气 "presetWeather": "Počasie dnes", // 今日天气
"presetNews": "Today's news", // 今日新闻 "presetNews": "Správy dnes", // 今日新闻
"presetFood": "Nearby food", // 美食 "presetFood": "Jedlo v blízkosti", // 美食
"playSomeMusic": "Play some popular music", // 播放一些流行音乐 "playSomeMusic": "Pusti populárnu hudbu", // 播放一些流行音乐
"navigationTo": "Please help me navigate to", // 导航到 "navigationTo": "Naviguj do", // 导航到
"todayWeather": "How's the weather today?", // 今日天气 "todayWeather": "Aké je dnes počasie?", // 今日天气
"todayNews": "What's the news today?", // 今日新闻 "todayNews": "Aké sú dnes správy?", // 今日新闻
"nearbyFood": "What delicious food is nearby?", // 美食 "nearbyFood": "Kde je dobré jedlo v blízkosti?", // 附近有什么好吃的
// Agent模块 - 欢迎消息与权限 // Agent模块 - 欢迎消息与权限
'welcomeMessage': '你好!我是**Lily**,我能帮你:\n\n' 'welcomeMessage': 'Ahoj! Som **Lily**.\n\n'
'• 回答问题和提供信息\n\n' '• Odpoviem na otázky a poskytnem informácie\n\n'
'• 实时语音翻译\n\n' '• Real-time hlasový preklad\n\n'
'• 推荐音乐和播客\n\n' '• Odporúčam hudbu a podcasty\n\n'
'• 语音备忘录和提醒\n\n' '• Hlasové poznámky a pripomenutia\n\n'
'• 控制耳机功能\n\n' '• Ovládam funkcie slúchadiel\n\n'
'有什么我可以帮你的吗?', 'V čom ti môžem pomôcť?',
'microphonePermission': 'Mikrofón', 'microphonePermission': 'Mikrofón',
'voiceRecognitionPermissionText': 'voiceRecognitionPermissionText':
'Funkcia rozpoznávania reči vyžaduje prístup k mikrofónu.', 'Funkcia rozpoznávania reči vyžaduje prístup k mikrofónu.',
@ -949,16 +955,16 @@ const Map<String, String> skSK = {
'useAppleNavigation': 'Navigate with Apple Maps', 'useAppleNavigation': 'Navigate with Apple Maps',
'builtInNavigation': 'Built-in Navigation', 'builtInNavigation': 'Built-in Navigation',
'useBuiltInNavigation': 'Navigate with built-in map', 'useBuiltInNavigation': 'Navigate with built-in map',
'navigationStartFailed': 'Failed to start navigation', 'navigationStartFailed': 'Spustenie navigácie zlyhalo',
'cannotPlayMusicListRetryLater': 'cannotPlayMusicListRetryLater':
'Cannot play music list, please try again later', 'Zoznam hudby sa nepodarilo prehrať, skúste to neskôr',
'cannotPlaySong': 'Cannot play song', 'cannotPlaySong': 'Cannot play song',
'openMapError': 'Error opening map', 'openMapError': 'Chyba pri otváraní mapy',
'pleaseInstallAmapApp': 'Please install the Amap app first', 'pleaseInstallAmapApp': 'Najprv si nainštalujte aplikáciu Amap',
'pleaseInstallBaiduMapApp': 'Please install the Baidu Maps app first', 'pleaseInstallBaiduMapApp': 'Najprv si nainštalujte aplikáciu Baidu Maps',
'appleMapStartFailed': 'Apple Maps failed to start', 'appleMapStartFailed': 'Apple Maps sa nepodarilo spustiť',
'appleMapUnavailable': 'Apple Maps unavailable', 'appleMapUnavailable': 'Apple Maps unavailable',
'openAppleMapError': 'Error opening Apple Maps', 'openAppleMapError': 'Chyba pri otváraní Apple Maps',
// Agent模块 - 天气卡片 // Agent模块 - 天气卡片
'weatherQuery': 'Dotaz na poveternostné podmienky:', 'weatherQuery': 'Dotaz na poveternostné podmienky:',
@ -1012,8 +1018,8 @@ const Map<String, String> skSK = {
"strongWind": "Silný vietor", "strongWind": "Silný vietor",
// 翻译模块 - 中间层 // 翻译模块 - 中间层
"pictureTranslation": "Picture Translation", "pictureTranslation": "Preklad obrázka",
"textTranslation": "Text Translation", "textTranslation": "Preklad textu",
// 翻译模块 - 主页 // 翻译模块 - 主页
"translationHistory": "História prekladov", "translationHistory": "História prekladov",
@ -1026,29 +1032,30 @@ const Map<String, String> skSK = {
"me": "Me", "me": "Me",
"counterPart": "Counterpart", "counterPart": "Counterpart",
"bluetoothCallStateError": "bluetoothCallStateError":
"Please make sure the Bluetooth headset is connected to the phone and in a call state", "Uistite sa, že Bluetooth slúchadlá sú pripojené k telefónu a že prebieha hovor",
"autoDetect": "Auto Detect", // 自动检测 "autoDetect": "Auto Detect", // 自动检测
// 翻译模块 - 文本翻译 // 翻译模块 - 文本翻译
"languageDetectionFailed": "Language detection failed", "languageDetectionFailed": "Rozpoznanie jazyka zlyhalo",
// 翻译模块 - 悬浮窗与权限 // 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'Disable Floating Window', 'disableFloatingWindow': 'Vypnúť plávajúce okno',
'enableFloatingWindow': 'Enable Floating Window', 'enableFloatingWindow': 'Zapnúť plávajúce okno',
'permissionTip': 'Permission Tip', 'permissionTip': 'Tip k povoleniam',
'micPermissionRequiredForRecording': 'micPermissionRequiredForRecording':
'Microphone permission is required for recording', 'Na nahrávanie je potrebné povolenie mikrofónu',
'deleteTranslationRecordError': 'Error deleting translation record: @error', 'deleteTranslationRecordError':
"translationFailed": "Translation failed", 'Chyba pri odstraňovaní záznamu prekladu: @error',
"translationFailed": "Preklad zlyhal",
"translating": "Translating", "translating": "Translating",
"translate": "Translate", "translate": "Preložiť",
"pleaseInputText": "Please input text", "pleaseInputText": "Zadajte text",
"inputTextToTranslate": "Zadajte text na preklad", "inputTextToTranslate": "Zadajte text na preklad",
"textTooLong": "Text too long, max 5000 characters", "textTooLong": "Text too long, max 5000 characters",
// 翻译模块 - 历史记录 // 翻译模块 - 历史记录
"noTranslationHistory": "Žiadna história", "noTranslationHistory": "Žiadna história",
"historyRecords": "History Records", "historyRecords": "Záznamy histórie",
"clearResults": "Clear Results", "clearResults": "Clear Results",
"clearHistory": "Vymazať históriu", "clearHistory": "Vymazať históriu",
"clearHistoryConfirm": "clearHistoryConfirm":
@ -1061,12 +1068,12 @@ const Map<String, String> skSK = {
// 翻译模块 - 图片翻译 // 翻译模块 - 图片翻译
"selectImageSource": "Select Image Source", "selectImageSource": "Select Image Source",
"imagePreview": "Image Preview", "imagePreview": "Image Preview",
"translationResult": "Translation Result", "translationResult": "Výsledok prekladu",
"recognitionResult": "Recognition Result", "recognitionResult": "Recognition Result",
"translatedImagePreview": "Translated Image Preview", "translatedImagePreview": "Náhľad preloženého obrázka",
"translatedImageLoadFailed": "Failed to load translated image", "translatedImageLoadFailed": "Nepodarilo sa načítať preložený obrázok",
"pleaseSelectImage": "Please select an image", "pleaseSelectImage": "Vyberte obrázok",
"imageLoadFailed": "Image load failed", "imageLoadFailed": "Načítanie obrázka zlyhalo",
"imageQuality": "Image Quality", "imageQuality": "Image Quality",
"maxSize": "Max Size", "maxSize": "Max Size",
"close": "Close", "close": "Close",
@ -1075,38 +1082,38 @@ const Map<String, String> skSK = {
"setMaxSize": "Set Max Size", "setMaxSize": "Set Max Size",
"currentMaxSize": "Current: @pxpx", "currentMaxSize": "Current: @pxpx",
"waitingForAction": "Waiting for action", "waitingForAction": "Waiting for action",
"pleaseSelectImageToStart": "Please select an image to start", "pleaseSelectImageToStart": "Vyberte obrázok na začatie",
"chooseImage": "Choose Image", "chooseImage": "Choose Image",
"openingCamera": "Opening camera...", "openingCamera": "Opening camera...",
"openingPhotoAlbum": "Opening photo album...", "openingPhotoAlbum": "Opening photo album...",
"cancelled": "Cancelled", "cancelled": "Cancelled",
"userCancelledSelection": "User cancelled selection", "userCancelledSelection": "User cancelled selection",
"translatingImage": "Translating Image", "translatingImage": "Translating Image",
"callingImageTranslateService": "Calling image translation service...", "callingImageTranslateService": "Volá sa služba prekladu obrázkov...",
"savingRecord": "Saving Record", "savingRecord": "Ukladanie záznamu",
"savingTranslationResult": "Saving translation result...", "savingTranslationResult": "Ukladanie výsledku prekladu...",
"translationCompleted": "Translation Completed", "translationCompleted": "Preklad dokončený",
"allStepsCompleted": "All steps completed", "allStepsCompleted": "All steps completed",
"processingFailed": "Processing Failed", "processingFailed": "Spracovanie zlyhalo",
"imageProcessingOrTranslationFailed": "imageProcessingOrTranslationFailed":
"Image processing or translation failed. Please retry.\nError: {error}", "Spracovanie obrázka alebo preklad zlyhal. Skúste to znova.\nChyba: {error}",
"imageTooLarge": "Image size exceeds 4MB limit", "imageTooLarge": "Image size exceeds 4MB limit",
"imageTooLargeHint": "imageTooLargeHint":
"Image size exceeds 4MB. Reduce quality or dimensions and retry", "Image size exceeds 4MB. Reduce quality or dimensions and retry",
"emptyTranslationResult": "Image translation API returned empty result", "emptyTranslationResult": "API prekladu obrázkov vrátilo prázdny výsledok",
"imageTranslationFailedTryLater": "imageTranslationFailedTryLater":
"Image translation failed. Network issue or rate limit. Please try later", "Preklad obrázka zlyhal. Problém so sieťou alebo limitom. Skúste to neskôr",
"imageTranslationApiException": "imageTranslationApiException":
"Image translation API exception. Check network and retry", "Chyba API prekladu obrázkov. Skontrolujte sieť a skúste to znova",
"permissionRequired": "Permission Required", "permissionRequired": "Vyžaduje sa povolenie",
"cameraPermissionRequired": "Camera permission required to take photos", "cameraPermissionRequired": "Na fotenie je potrebné povolenie kamery",
"photoAlbumPermissionRequired": "photoAlbumPermissionRequired":
"Photo album permission required to pick images", "Na výber obrázkov je potrebné povolenie fotogalérie",
"translationDetails": "Translation Details", "translationDetails": "Podrobnosti prekladu",
"originalImage": "Original Image", "originalImage": "Original Image",
"sourceLanguage": "Source Language", "sourceLanguage": "Source Language",
"targetLanguage": "Target Language", "targetLanguage": "Target Language",
"translationTime": "Translation Time", "translationTime": "Čas prekladu",
"shareInDevelopment": "Sharing feature under development", "shareInDevelopment": "Sharing feature under development",
// 翻译模块 - 录音文件 // 翻译模块 - 录音文件
@ -1203,18 +1210,18 @@ const Map<String, String> skSK = {
'Služba účtu bola inicializovaná', // AccountService 已初始化 'Služba účtu bola inicializovaná', // AccountService 已初始化
// 权限模块 // 权限模块
'meetingStoragePermission': 'Storage', 'meetingStoragePermission': 'Úložisko',
'meetingStoragePermissionExplanation': 'meetingStoragePermissionExplanation':
'We need access to storage permissions so you can select and upload audio files.', 'Potrebujeme povolenie prístupu k úložisku, aby ste mohli vybrať a nahrať zvukové súbory.',
'meetingStoragePermissionPermanentDenial': 'meetingStoragePermissionPermanentDenial':
'检测到您已永久拒绝存储权限。如需继续使用此功能,请前往应用设置中手动开启存储权限。', 'Zistili sme, že ste trvalo zamietli povolenie úložiska. Ak chcete pokračovať v používaní tejto funkcie, prejdite do nastavení aplikácie a manuálne povoľte prístup k úložisku.',
'getPermissionStatusFailed': 'Získanie stavu povolenia zlyhalo', 'getPermissionStatusFailed': 'Získanie stavu povolenia zlyhalo',
'communicationPermissions': 'Komunikačné povolenia', 'communicationPermissions': 'Komunikačné povolenia',
'bluetoothPermissions': 'Bluetooth Permissions', 'bluetoothPermissions': 'Povolenia Bluetooth',
'notificationPermissions': 'Notification Permissions', 'notificationPermissions': 'Povolenia oznámení',
'storagePermissions': 'Storage Permissions', 'storagePermissions': 'Povolenia úložiska',
'microphonePermissions': 'Microphone Permissions', 'microphonePermissions': 'Povolenia mikrofónu',
'alarmPermissions': 'Alarm Permissions', 'alarmPermissions': 'Povolenia alarmu',
'calendarPermissions': 'Povolenia kalendára', 'calendarPermissions': 'Povolenia kalendára',
'locationPermissions': 'Povolenia polohy', 'locationPermissions': 'Povolenia polohy',
'phone': 'Telefón', 'phone': 'Telefón',
@ -1228,7 +1235,7 @@ const Map<String, String> skSK = {
'phonePermissionDesc': 'Používa sa pre funkciu volania', 'phonePermissionDesc': 'Používa sa pre funkciu volania',
'smsPermissionDesc': 'Používa sa pre funkciu odosielania SMS', 'smsPermissionDesc': 'Používa sa pre funkciu odosielania SMS',
'alarmPermissionDesc': 'alarmPermissionDesc':
'Used to set exact alarms to ensure reminders trigger on time', 'Používa sa na nastavenie presných alarmov, aby sa pripomienky spúšťali načas',
'calendarWritePermissionDesc': 'calendarWritePermissionDesc':
'Používa sa na vytváranie udalostí a pripomienok v kalendári', 'Používa sa na vytváranie udalostí a pripomienok v kalendári',
'calendarFullAccessPermissionDesc': 'calendarFullAccessPermissionDesc':
@ -1247,72 +1254,74 @@ const Map<String, String> skSK = {
'smsPermissionDetailDesc': 'smsPermissionDetailDesc':
'Funkcia odosielania SMS vyžaduje povolenie pre SMS', 'Funkcia odosielania SMS vyžaduje povolenie pre SMS',
'alarmPermissionDetailDesc': 'alarmPermissionDetailDesc':
'This permission is required to set exact alarms and ensure reminders trigger on time', 'Toto povolenie je potrebné na nastavenie presných alarmov a aby sa pripomienky spúšťali načas',
'calendarWritePermissionDetailDesc': 'calendarWritePermissionDetailDesc':
'Vytváranie udalostí v kalendári vyžaduje povolenie na zápis do kalendára', 'Vytváranie udalostí v kalendári vyžaduje povolenie na zápis do kalendára',
'calendarFullAccessPermissionDetailDesc': 'calendarFullAccessPermissionDetailDesc':
'Správa udalostí v kalendári vyžaduje úplné povolenie pre kalendár', 'Správa udalostí v kalendári vyžaduje úplné povolenie pre kalendár',
'locationPermissionDetailDesc': 'locationPermissionDetailDesc':
'Získanie informácií o polohe vyžaduje povolenie pre polohu', 'Získanie informácií o polohe vyžaduje povolenie pre polohu',
'contactsPermissionDesc': 'Used for accessing contact information', 'contactsPermissionDesc': 'Používa sa na prístup k informáciám o kontaktoch',
'contactsPermissionDetailDesc': 'contactsPermissionDetailDesc':
'Phone call and SMS functionality requires contacts permission to select contacts', 'Funkcie volania a SMS vyžadujú povolenie kontaktov na výber kontaktov',
'bluetoothPermissionDesc': 'bluetoothPermissionDesc':
'Used for connecting and managing Bluetooth devices', 'Používa sa na pripojenie a správu Bluetooth zariadení',
'bluetoothPermissionDetailDesc': 'bluetoothPermissionDetailDesc':
'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'Pripojenie k Bluetooth slúchadlám a iným zariadeniam vyžaduje povolenie Bluetooth',
'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', 'bluetoothScanPermissionDesc':
'Používa sa na vyhľadávanie Bluetooth zariadení v okolí',
'bluetoothScanPermissionDetailDesc': 'bluetoothScanPermissionDetailDesc':
'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'Vyhľadávanie Bluetooth zariadení v okolí vyžaduje povolenie na skenovanie Bluetooth',
'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', 'bluetoothConnectPermissionDesc':
'Používa sa na pripájanie k Bluetooth zariadeniam',
'bluetoothConnectPermissionDetailDesc': 'bluetoothConnectPermissionDetailDesc':
'Connecting to Bluetooth devices requires Bluetooth connect permission', 'Pripájanie k Bluetooth zariadeniam vyžaduje povolenie na pripojenie Bluetooth',
'notificationPermissionDesc': 'Used for sending notification messages', 'notificationPermissionDesc': 'Used for sending notification messages',
'notificationPermissionDetailDesc': 'notificationPermissionDetailDesc':
'App needs notification permission to send you important alerts and messages', 'Aplikácia potrebuje povolenie oznámení na odosielanie dôležitých upozornení a správ',
'appNeedsPermissionForFullFunction': 'appNeedsPermissionForFullFunction':
'Aplikácia vyžaduje toto povolenie pre plnú funkčnosť', 'Aplikácia vyžaduje toto povolenie pre plnú funkčnosť',
'permanentDenialText': 'permanentDenialText':
'Trvalo ste odmietli povolenie {permission}, prejdite do nastavení aplikácie, aby ste ho povolili', 'Trvalo ste odmietli povolenie {permission}, prejdite do nastavení aplikácie, aby ste ho povolili',
'goToSettings': 'Prejsť do nastavení', 'goToSettings': 'Prejsť do nastavení',
'bluetoothScan': 'Bluetooth Scan', 'bluetoothScan': 'Bluetooth Scan',
'bluetoothConnect': 'Bluetooth Connect', 'bluetoothConnect': 'Pripojenie Bluetooth',
'bluetoothScanExplanation': 'bluetoothScanExplanation':
'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', 'Aplikácia potrebuje povolenie skenovania Bluetooth na vyhľadávanie Bluetooth zariadení v okolí.',
'bluetoothConnectExplanation': 'bluetoothConnectExplanation':
'The app needs Bluetooth connect permission to connect to Bluetooth devices.', 'Aplikácia potrebuje povolenie pripojenia Bluetooth na pripájanie k Bluetooth zariadeniam.',
'locationForBluetoothExplanation': 'locationForBluetoothExplanation':
'The app needs location permission to scan Bluetooth devices.', 'Aplikácia potrebuje povolenie polohy na vyhľadávanie Bluetooth zariadení.',
'bluetoothScanPermanentDenial': 'bluetoothScanPermanentDenial':
'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', 'Povolenie skenovania Bluetooth bolo trvalo odmietnuté, prejdite do nastavení a povoľte ho manuálne.',
'bluetoothConnectPermanentDenial': 'bluetoothConnectPermanentDenial':
'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', 'Povolenie pripojenia Bluetooth bolo trvalo odmietnuté, prejdite do nastavení a povoľte ho manuálne.',
'locationPermanentDenial': 'locationPermanentDenial':
'Location permission has been permanently denied, please go to settings to enable it manually.', 'Povolenie polohy bolo trvalo odmietnuté, prejdite do nastavení a povoľte ho manuálne.',
'notificationPermission': 'Notification', 'notificationPermission': 'Notification',
'locationPermission': 'Location', 'locationPermission': 'Location',
'notificationPermissionExplanation': 'notificationPermissionExplanation':
'Notification permission is required to display music playback status.', 'Povolenie oznámení je potrebné na zobrazenie stavu prehrávania hudby.',
'locationPermissionExplanation': 'locationPermissionExplanation':
'Location permission is required to get current location.', 'Povolenie polohy je potrebné na získanie aktuálnej polohy.',
'notificationPermissionPermanentDenial': 'notificationPermissionPermanentDenial':
'You have permanently denied notification permission, please go to settings to enable it.', 'Trvalo ste odmietli povolenie oznámení, prejdite do nastavení a povoľte ho.',
'locationPermissionPermanentDenial': 'locationPermissionPermanentDenial':
'You have permanently denied location permission, please go to settings to enable it.', 'Trvalo ste odmietli povolenie polohy, prejdite do nastavení a povoľte ho.',
'storagePermission': 'Storage', 'storagePermission': 'Storage',
'microphonePermissionExplanation': 'microphonePermissionExplanation':
'We need microphone permission to record audio content.', 'Potrebujeme povolenie mikrofónu na nahrávanie zvukového obsahu.',
'storagePermissionExplanation': 'storagePermissionExplanation':
'We need storage permission so you can select and upload audio files.', 'Potrebujeme povolenie úložiska, aby ste mohli vybrať a nahrať zvukové súbory.',
'microphonePermissionPermanentDenial': 'microphonePermissionPermanentDenial':
'检测到您已永久拒绝录音权限。如需继续使用此功能,请前往应用设置中手动开启麦克风权限。', 'Zistili sme, že ste trvalo zamietli povolenie mikrofónu. Ak chcete pokračovať v používaní tejto funkcie, prejdite do nastavení aplikácie a manuálne povoľte prístup k mikrofónu.',
'storagePermissionPermanentDenial': 'storagePermissionPermanentDenial':
'检测到您已永久拒绝存储权限。如需继续使用此功能,请前往应用设置中手动开启存储权限。', 'Zistili sme, že ste trvalo zamietli povolenie úložiska. Ak chcete pokračovať v používaní tejto funkcie, prejdite do nastavení aplikácie a manuálne povoľte prístup k úložisku.',
'permissionUtilNeed': 'Need ', 'permissionUtilNeed': 'Need ',
'permissionUtilPermission': ' Permission', 'permissionUtilPermission': ' Povolenie',
'permissionUtilRestricted': ' Permission Restricted', 'permissionUtilRestricted': ' Povolenie obmedzené',
'permissionUtilRestrictedMessage': 'permissionUtilRestrictedMessage':
'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'Táto funkcia nie je na aktuálnom zariadení dostupná alebo je obmedzená, skontrolujte nastavenia zariadenia alebo systémové obmedzenia',
'permissionUtilConfirm': 'OK', 'permissionUtilConfirm': 'OK',
// 原生前台服务通知(Android) // 原生前台服务通知(Android)
@ -1402,27 +1411,27 @@ const Map<String, String> skSK = {
'bleConnectionFailed': 'Pripojenie BLE zlyhalo', 'bleConnectionFailed': 'Pripojenie BLE zlyhalo',
'deviceAuthorizationFailedCheckCode': 'deviceAuthorizationFailedCheckCode':
'Autorizácia zariadenia zlyhala, skontrolujte autorizačný kód', 'Autorizácia zariadenia zlyhala, skontrolujte autorizačný kód',
'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideTitle': 'Vyžaduje sa manuálne zapnutie Bluetooth', // 需要手动开启蓝牙
'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: 'bluetoothGuideSteps': 'Postupujte podľa týchto krokov:', // 请按照以下步骤操作:
'bluetoothGuideStep1': 'bluetoothGuideStep1':
'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 'Zapnite Bluetooth: Nastavenia → Bluetooth → Zapnúť', // 开启蓝牙:设置 → 蓝牙 → 开启
'bluetoothGuideStep2': 'bluetoothGuideStep2':
'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 'Pripojte zariadenie: v "Moje zariadenia" nájdite svoje zariadenie a ťuknite na pripojenie', // 连接设备:在"我的设备"中找到您的设备并点击连接
'bluetoothGuideStep3': 'bluetoothGuideStep3':
'Return to app to continue pairing process', // 返回应用继续配对流程 'Vráťte sa do aplikácie a pokračujte v procese párovania', // 返回应用继续配对流程
'bluetoothGuideTip': 'bluetoothGuideTip':
'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'Tip: v Ovládacom centre môžete dlhým stlačením ikony Bluetooth rýchlo otvoriť nastavenia Bluetooth', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置
'iKnow': 'I Know', // 我知道了 'iKnow': 'Rozumiem', // 我知道了
// 配对模块 - 绑定奖励 // 配对模块 - 绑定奖励
"firstBindRewardTitle": "Welcome Reward", "firstBindRewardTitle": "Uvítacia odmena",
"firstBindRewardDesc": "You've received binding rewards.", "firstBindRewardDesc": "Získali ste odmeny za pripojenie.",
"vipLevelLabel": "VIP Level:", "vipLevelLabel": "Úroveň VIP:",
"expiryLabel": "Expiration:", "expiryLabel": "Dátum vypršania:",
"notActivated": "Not activated", "notActivated": "Neaktivované",
"aiChatCreditsLabel": "AI Chat Credits:", "aiChatCreditsLabel": "Kredity AI chatu:",
"translationCreditsLabel": "Translation Credits:", "translationCreditsLabel": "Kredity prekladu:",
"meetingCreditsLabel": "Meeting Credits:", "meetingCreditsLabel": "Kredity stretnutí:",
"ok": "OK", "ok": "OK",
// 用户反馈模块 // 用户反馈模块
@ -1454,13 +1463,14 @@ const Map<String, String> skSK = {
"connectionFailed": "Pripojenie zlyhalo", "connectionFailed": "Pripojenie zlyhalo",
"retryConnection": "Znova pripojiť", "retryConnection": "Znova pripojiť",
"ota_updateNow": "Aktualizovať teraz", "ota_updateNow": "Aktualizovať teraz",
"otaVersionInfoFailed": "Failed to get version info. Please try again later.", "otaVersionInfoFailed":
"Nepodarilo sa získať informácie o verzii. Skúste to neskôr.",
"otaDeviceInfoUnavailable": "otaDeviceInfoUnavailable":
"Unable to get device info. Please check the connection and retry.", "Nie je možné získať informácie o zariadení. Skontrolujte pripojenie a skúste to znova.",
"otaProductInfoUnavailable": "otaProductInfoUnavailable":
"Unable to identify the device. Please reconnect and retry.", "Nie je možné identifikovať zariadenie. Znova ho pripojte a skúste to znova.",
"otaFirmwareVersionInvalid": "otaFirmwareVersionInvalid":
"Firmware version is abnormal. Please reconnect and retry.", "Verzia firmvéru je neštandardná. Znova zariadenie pripojte a skúste to znova.",
"keepConnectedDontClose": "keepConnectedDontClose":
"Udržujte zariadenie pripojené, nezatvárajte aplikáciu", "Udržujte zariadenie pripojené, nezatvárajte aplikáciu",
"doNotDisconnect": "Neodpájajte", "doNotDisconnect": "Neodpájajte",
@ -1473,54 +1483,55 @@ const Map<String, String> skSK = {
'otaNewVersionFoundWithVersion': 'New version @version found', 'otaNewVersionFoundWithVersion': 'New version @version found',
'otaConfirmUpdateNow': 'Update now?', 'otaConfirmUpdateNow': 'Update now?',
'otaUpdate': 'Update', 'otaUpdate': 'Update',
'otaUpgradeSuccess': 'Upgrade Successful', 'otaUpgradeSuccess': 'Aktualizácia úspešná',
'otaUpgradeCompleteRepair': 'otaUpgradeCompleteRepair':
'Firmware upgrade complete!\n\nDevice needs to be re-paired to work properly. Go to pairing page now?', 'Aktualizácia firmvéru dokončená!\n\nAby zariadenie fungovalo správne, je potrebné ho znovu spárovať. Prejsť teraz na stránku párovania?',
'otaPairLater': 'Pair Later', 'otaPairLater': 'Pair Later',
'otaPairNow': 'Pair Now', 'otaPairNow': 'Pair Now',
'okConfirm': 'OK', 'okConfirm': 'OK',
// OTA升级模块 - 设备检查 // OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'Error checking BLE connection: @error', 'otaBleCheckErrorWithError': 'Chyba pri kontrole BLE pripojenia: @error',
'otaBleNotConnected': 'BLE Device Not Connected', 'otaBleNotConnected': 'BLE zariadenie nie je pripojené',
'otaBleNeedConnection': 'otaBleNeedConnection':
'Firmware upgrade requires BLE device connection\nPlease ensure device is properly connected and try again', 'Aktualizácia firmvéru vyžaduje pripojenie BLE zariadenia\nUistite sa, že je zariadenie správne pripojené, a skúste to znova',
'otaDeviceInfoUnavailableTitle': 'Device Info Unavailable', 'otaDeviceInfoUnavailableTitle': 'Informácie o zariadení nie sú dostupné',
'otaCannotGetDeviceInfo': 'otaCannotGetDeviceInfo':
'Cannot get device info\nPlease reconnect device or try again later', 'Nie je možné získať informácie o zariadení\nZnova pripojte zariadenie alebo skúste to neskôr',
'otaBleCheckFailed': 'BLE Connection Check Failed', 'otaBleCheckFailed': 'Kontrola BLE pripojenia zlyhala',
'otaCannotGetDeviceInfoCheckConnection': 'otaCannotGetDeviceInfoCheckConnection':
'Cannot get device info, please check device connection', 'Nie je možné získať informácie o zariadení, skontrolujte pripojenie',
'otaCannotGetProductInfoWithName': 'otaCannotGetProductInfoWithName':
'Cannot get product info, device name: @deviceName', 'Nie je možné získať informácie o produkte, názov zariadenia: @deviceName',
'otaCannotGetBatteryInfo': 'Cannot get valid battery info', 'otaCannotGetBatteryInfo': 'Cannot get valid battery info',
'otaLowBattery': 'Low Battery', 'otaLowBattery': 'Low Battery',
'otaSingleBatteryLow': 'otaSingleBatteryLow':
'Device battery too low for firmware upgrade\nRequirement: battery must be above 20%\nCurrent: @ear @battery%\nPlease charge and try again', 'Batéria zariadenia je príliš nízka na aktualizáciu firmvéru\nPožiadavka: batéria musí byť nad 20%\nAktuálne: @ear @battery%\nNabite a skúste to znova',
'otaDoubleBatteryLow': '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', 'Batéria zariadenia je príliš nízka na aktualizáciu firmvéru\nPožiadavka: obe slúchadlá musia byť nad 20%\nAktuálne: Ľavé @left%, Pravé @right%\nNabite a skúste to znova',
'otaBatteryCheckFailed': 'Battery Check Failed', 'otaBatteryCheckFailed': 'Kontrola batérie zlyhala',
// OTA升级模块 - 升级状态 // OTA升级模块 - 升级状态
'otaDefaultUpdateDesc': 'otaDefaultUpdateDesc':
'This update includes performance optimizations and bug fixes.', 'This update includes performance optimizations and bug fixes.',
'otaGetLatestVersionFailed': 'Failed to get latest version info', 'otaGetLatestVersionFailed':
'otaGetVersionInfoFailed': 'Failed to get version info', 'Nepodarilo sa získať informácie o najnovšej verzii',
'otaCheckingDeviceStatus': 'Checking device status...', 'otaGetVersionInfoFailed': 'Nepodarilo sa získať informácie o verzii',
'otaCheckingDeviceStatus': 'Kontroluje sa stav zariadenia...',
'otaDownloadFailedCheckNetwork': 'otaDownloadFailedCheckNetwork':
'Download failed, please check network connection', 'Sťahovanie zlyhalo, skontrolujte sieťové pripojenie',
'otaDownloadFailed': 'Download Failed', 'otaDownloadFailed': 'Sťahovanie zlyhalo',
'otaPreparingConnection': 'Preparing device connection...', 'otaPreparingConnection': 'Pripravuje sa pripojenie zariadenia...',
'otaConnectingDevice': 'Connecting to device...', 'otaConnectingDevice': 'Pripája sa k zariadeniu...',
'otaUpgradeStarted': 'OTA upgrade started...', 'otaUpgradeStarted': 'OTA upgrade started...',
'otaUpgradeProgressWithPercent': 'Upgrade progress: @percent%', 'otaUpgradeProgressWithPercent': 'Upgrade progress: @percent%',
'otaUpgradeSuccessComplete': 'Upgrade completed successfully', 'otaUpgradeSuccessComplete': 'Aktualizácia bola úspešne dokončená',
'otaUpgradeFailedWithCode': 'Upgrade failed, error code: @code', 'otaUpgradeFailedWithCode': 'Aktualizácia zlyhala, kód chyby: @code',
'otaUpgradeFailedTitle': 'Upgrade Failed', 'otaUpgradeFailedTitle': 'Aktualizácia zlyhala',
'otaUpgradeFailedDesc': 'otaUpgradeFailedDesc':
'Please check device connection or update package, error code: @code', 'Skontrolujte pripojenie zariadenia alebo aktualizačný balík, kód chyby: @code',
'otaDeviceDisconnected': 'Device disconnected', 'otaDeviceDisconnected': 'Zariadenie sa odpojilo',
'otaDeviceConnected': 'Device connected', 'otaDeviceConnected': 'Zariadenie je pripojené',
// 音乐模块 // 音乐模块
"noMusic": "Žiadna hudba", // 暂无音乐 "noMusic": "Žiadna hudba", // 暂无音乐

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

@ -1,3 +1,4 @@
// 斯洛文尼亚-斯洛文尼亚语
const Map<String, String> slSI = { const Map<String, String> slSI = {
// 通用 // 通用
'continue': 'Nadaljuj', 'continue': 'Nadaljuj',
@ -18,11 +19,11 @@ const Map<String, String> slSI = {
"unknownError": "Neznana napaka", "unknownError": "Neznana napaka",
"asrConnectionFailed": "asrConnectionFailed":
"Povezava s storitvijo za prepoznavanje govora ni uspela. Preverite omrežje ali poskusite znova pozneje.", "Povezava s storitvijo za prepoznavanje govora ni uspela. Preverite omrežje ali poskusite znova pozneje.",
"justNow": "Just now", "justNow": "Pravkar",
"minutesAgo": "@minutes minutes ago", "minutesAgo": "Pred @minutes minutami",
"yesterday": "Yesterday", "yesterday": "Včeraj",
"daysAgo": "@days days ago", "daysAgo": "Pred @days dnevi",
"hoursAgo": "@hours hours ago", "hoursAgo": "Pred @hours urami",
// 启动页 // 启动页
"slogan": "Povezovanje sveta, onkraj zvoka", "slogan": "Povezovanje sveta, onkraj zvoka",
@ -110,7 +111,7 @@ const Map<String, String> slSI = {
"welcomeToThisApp": "welcomeToThisApp":
"Dobrodošli v Voitrans, prosimo, da natančno preberete", // 欢迎使用Voitrans,请充分阅读 "Dobrodošli v Voitrans, prosimo, da natančno preberete", // 欢迎使用Voitrans,请充分阅读
"privacyPolicyText": "privacyPolicyText":
",点击'同意并进入'表示您已充分阅读并同意上述协议。点击'不同意'将退出应用。", // ,点击"同意并进入"表示您已充分阅读并同意上述协议。点击"不同意"将退出应用。 "Z dotikom »Strinjam se in vstopi« potrjujete, da ste prebrali in se strinjate z zgornjimi pogoji. Če tapnete »Ne strinjam se«, se aplikacija zapre.", // ,点击"同意并进入"表示您已充分阅读并同意上述协议。点击"不同意"将退出应用。
"disagree": "Ne strinjam se", // 不同意 "disagree": "Ne strinjam se", // 不同意
"agreeAndEnter": "Strinjam se in vstopi", // 同意并进入 "agreeAndEnter": "Strinjam se in vstopi", // 同意并进入
@ -169,27 +170,27 @@ const Map<String, String> slSI = {
'checkConnectionStatusFailed': 'Preverjanje stanja povezave ni uspelo', 'checkConnectionStatusFailed': 'Preverjanje stanja povezave ni uspelo',
// 蓝牙扫描模块 // 蓝牙扫描模块
'bleInitFailedWithError': 'Bluetooth initialization failed: @error', 'bleInitFailedWithError': 'Inicializacija Bluetooth ni uspela: @error',
'needBluetoothAndLocationPermission': 'needBluetoothAndLocationPermission':
'Bluetooth and location permissions are required to scan devices', 'Za iskanje naprav so potrebna dovoljenja Bluetooth in lokacije',
'permissionRequestFailedWithError': 'Permission request failed: @error', 'permissionRequestFailedWithError': 'Zahteva za dovoljenje ni uspela: @error',
'needPermission': 'Permission Required', 'needPermission': 'Zahtevano dovoljenje',
'blePermissionDialogContent': 'blePermissionDialogContent':
'This app requires Bluetooth and location permissions to scan devices. Please enable them in Settings.', 'Ta aplikacija za iskanje naprav potrebuje dovoljenja Bluetooth in lokacije. Omogočite jih v Nastavitvah.',
'needEnableBluetooth': 'Enable Bluetooth', 'needEnableBluetooth': 'Vklopi Bluetooth',
'enableBluetoothDialogContent': 'enableBluetoothDialogContent':
'Please enable Bluetooth to scan and connect devices.', 'Vklopite Bluetooth za iskanje in povezovanje naprav.',
'bleScanFailedWithError': 'Scan failed: @error', 'bleScanFailedWithError': 'Skeniranje ni uspelo: @error',
'bleConnectionSuccess': 'Connection Successful', 'bleConnectionSuccess': 'Povezava uspešna',
'bleConnectedToDevice': 'Connected to @device', 'bleConnectedToDevice': 'Povezano z @device',
'bleConnectionFailedWithError': 'Connection failed: @error', 'bleConnectionFailedWithError': 'Povezava ni uspela: @error',
'bleDisconnected': 'Disconnected', 'bleDisconnected': 'Povezava prekinjena',
'bleDeviceDisconnected': 'Device disconnected', 'bleDeviceDisconnected': 'Naprava je prekinila povezavo',
'bleDisconnectFailedWithError': 'Disconnect failed: @error', 'bleDisconnectFailedWithError': 'Prekinitev povezave ni uspela: @error',
'signalStrong': 'Strong', 'signalStrong': 'Močan',
'signalMedium': 'Medium', 'signalMedium': 'Srednji',
'signalWeak': 'Weak', 'signalWeak': 'Šibek',
'signalVeryWeak': 'Very Weak', 'signalVeryWeak': 'Zelo šibek',
// 发现页 // 发现页
"searchAi": "Išči funkcije AI...", "searchAi": "Išči funkcije AI...",
@ -219,22 +220,22 @@ const Map<String, String> slSI = {
// 用量统计模块 // 用量统计模块
"aiChat": "AI Chat", "aiChat": "AI Chat",
"translationStats": "Translation Statistics", "translationStats": "Statistika prevodov",
"meetingStats": "Meeting Statistics", "meetingStats": "Statistika sestankov",
"today": "Today", "today": "Danes",
"thisWeek": "This Week", "thisWeek": "Ta teden",
"thisMonth": "This Month", "thisMonth": "Ta mesec",
"history": "History", "history": "Zgodovina",
"currentSessionStats": "Current Session Stats", "currentSessionStats": "Statistika trenutne seje",
"translationCount": "Translation Count", "translationCount": "Število prevodov",
"sessionDuration": "Session Duration", "sessionDuration": "Trajanje seje",
"characters": "Characters", "characters": "Znaki",
"recordingDuration": "Recording Duration", "recordingDuration": "Trajanje snemanja",
"totalApiCalls": "Total API Calls", "totalApiCalls": "Skupno klicev API",
"sessionCount": "Session Count", "sessionCount": "Število sej",
"totalCharacters": "Total Characters", "totalCharacters": "Skupno znakov",
"apiCallStats": "API Call Stats", "apiCallStats": "Statistika klicev API",
"translationApi": "Translation API", "translationApi": "API prevajanja",
"asr": "ASR", "asr": "ASR",
"tts": "TTS", "tts": "TTS",
"dataVolumeStats": "Data Volume Stats", "dataVolumeStats": "Data Volume Stats",
@ -253,9 +254,9 @@ const Map<String, String> slSI = {
"totalAudioDuration": "Total Audio Duration", "totalAudioDuration": "Total Audio Duration",
"audioFileSize": "Audio File Size", "audioFileSize": "Audio File Size",
"transcriptBytes": "Transcript Bytes", "transcriptBytes": "Transcript Bytes",
"loadFailed": "Load Failed", "loadFailed": "Nalaganje ni uspelo",
"statsLoadFailedTryLater": "statsLoadFailedTryLater":
"Statistics failed to load. Please try again later.", "Statistike ni bilo mogoče naložiti. Poskusite znova pozneje.",
"cleanupComplete": "Cleanup Complete", "cleanupComplete": "Cleanup Complete",
"cleanedOldData": "Cleaned data older than 90 days", "cleanedOldData": "Cleaned data older than 90 days",
"exportFeature": "Export Feature", "exportFeature": "Export Feature",
@ -328,10 +329,10 @@ const Map<String, String> slSI = {
'alipayPaymentException': 'Izjema Alipay', 'alipayPaymentException': 'Izjema Alipay',
"insufficientIntegral": "Insufficient integral", "insufficientIntegral": "Insufficient integral",
"insufficientBalanceDesc": "insufficientBalanceDesc":
"Insufficient balance, please go to the corresponding recharge page to recharge.", "Ni dovolj dobroimetja, pojdite na ustrezno stran za polnjenje in dopolnite.",
"recharge": "Go to Recharge", "recharge": "Go to Recharge",
"aiMemberExpiredDesc": "aiMemberExpiredDesc":
"AI membership expired, please go to the membership recharge page to renew.", "Članstvo AI je poteklo, pojdite na stran za polnjenje članstva in ga obnovite.",
// 商品模块 - AI商品页 // 商品模块 - AI商品页
'musicAndRecommendation': 'Music & Recommendation', 'musicAndRecommendation': 'Music & Recommendation',
@ -359,18 +360,18 @@ const Map<String, String> slSI = {
'templatedMessagesAndScheduleReminders': 'templatedMessagesAndScheduleReminders':
'Template messages and schedule reminders', 'Template messages and schedule reminders',
'aiDisclaimer': 'aiDisclaimer':
'Features depend on device permissions, service availability, and network conditions.', 'Funkcije so odvisne od dovoljenj naprave, razpoložljivosti storitev in omrežnih razmer.',
// 商品模块 - 翻译商品页 // 商品模块 - 翻译商品页
'realtimeTranscription': 'Real-time Transcription', 'realtimeTranscription': 'Real-time Transcription',
'sceneLexicon': 'Scenario Glossary', 'sceneLexicon': 'Scenario Glossary',
'subtitleDisplay': 'Subtitles', 'subtitleDisplay': 'Subtitles',
'transHeaderDesc1': 'transHeaderDesc1':
'Real-time simultaneous interpretation and text translation with low-latency voice.', 'Sočasno tolmačenje in prevajanje besedila v realnem času z nizko zakasnitvijo zvoka.',
'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.',
'translateZhEn': 'Chinese-English translation', 'translateZhEn': 'Prevajanje kitajščina–angleščina',
'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast',
'multiLangTextTranslation': 'Multilingual text translation', 'multiLangTextTranslation': 'Večjezično prevajanje besedila',
'termOptimizationContextPreserve': 'termOptimizationContextPreserve':
'Terminology optimization and context preservation', 'Terminology optimization and context preservation',
'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons',
@ -378,18 +379,18 @@ const Map<String, String> slSI = {
'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode',
'colorHighContrast': 'High color contrast', 'colorHighContrast': 'High color contrast',
'transDisclaimer': 'transDisclaimer':
'Translation performance depends on microphone, network latency, and ambient noise.', 'Učinkovitost prevajanja je odvisna od mikrofona, zakasnitve omrežja in hrupa okolice.',
// 商品模块 - 会议商品页 // 商品模块 - 会议商品页
'meetingRecording': 'Meeting Recording', 'meetingRecording': 'Snemanje sestankov',
'transcriptionAndSummary': 'Transcription & Summary', 'transcriptionAndSummary': 'Transcription & Summary',
'keywordSearch': 'Keyword Search', 'keywordSearch': 'Keyword Search',
'collaborationSharing': 'Collaboration & Sharing', 'collaborationSharing': 'Collaboration & Sharing',
'meetingHeaderDesc1': 'meetingHeaderDesc1':
'Audio recording, transcription, keyword search, and auto summary to boost meeting efficiency.', 'Snemanje zvoka, prepis, iskanje ključnih besed in samodejni povzetek za večjo učinkovitost sestankov.',
'meetingHeaderDesc2': 'meetingHeaderDesc2':
'Suitable for business meetings, class notes, and interview minutes.', 'Suitable for business meetings, class notes, and interview minutes.',
'meetingAutoRecording': 'Auto recording and segmentation', 'meetingAutoRecording': 'Samodejno snemanje in segmentacija',
'meetingSpeakerTagging': 'Speaker labeling', 'meetingSpeakerTagging': 'Speaker labeling',
'meetingLongAudioTranscription': 'Long audio transcription', 'meetingLongAudioTranscription': 'Long audio transcription',
'meetingKeyPointSummary': 'Key point extraction', 'meetingKeyPointSummary': 'Key point extraction',
@ -398,7 +399,7 @@ const Map<String, String> slSI = {
'meetingExportSummary': 'Export minutes', 'meetingExportSummary': 'Export minutes',
'meetingMultiPlatformShare': 'Share across platforms', 'meetingMultiPlatformShare': 'Share across platforms',
'meetingDisclaimer': 'meetingDisclaimer':
'Use in quiet environments; performance depends on microphone and network.', 'Uporabljajte v tihem okolju; delovanje je odvisno od mikrofona in omrežja.',
// 商品模块 - VIP会员页 // 商品模块 - VIP会员页
'benefitsOverview': 'Benefits overview', 'benefitsOverview': 'Benefits overview',
@ -412,7 +413,7 @@ const Map<String, String> slSI = {
'longTermDiscountPlan': 'Long-term discount plan', 'longTermDiscountPlan': 'Long-term discount plan',
'generalPrivileges': 'General privileges', 'generalPrivileges': 'General privileges',
'earlyAccessNewFeatures': 'Early access to new features', 'earlyAccessNewFeatures': 'Early access to new features',
'crossDeviceSync': 'Cross-device sync', 'crossDeviceSync': 'Sinhronizacija med napravami',
'vipDisclaimer': 'vipDisclaimer':
'Actual benefits depend on the package details and may change with versions.', 'Actual benefits depend on the package details and may change with versions.',
@ -423,18 +424,18 @@ const Map<String, String> slSI = {
'meet_001_name': 'Meeting Basic 100', 'meet_001_name': 'Meeting Basic 100',
'meet_002_name': 'Meeting Basic 500', 'meet_002_name': 'Meeting Basic 500',
'meet_003_name': 'Meeting Basic 1000', 'meet_003_name': 'Meeting Basic 1000',
'trans_001_name': 'Translation Basic 100', 'trans_001_name': 'Prevod Osnovni 100',
'trans_002_name': 'Translation Basic 500', 'trans_002_name': 'Prevod Osnovni 500',
'trans_003_name': 'Translation Basic 1000', 'trans_003_name': 'Prevod Osnovni 1000',
'ai_001_desc': 'Includes 100 uses. Access core AI features.', 'ai_001_desc': 'Includes 100 uses. Access core AI features.',
'ai_002_desc': 'Includes 500 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.', 'ai_003_desc': 'Includes 1000 uses. Access core AI features.',
'meet_001_desc': 'Includes 100 meeting recordings/transcriptions.', 'meet_001_desc': 'Vključuje 100 snemanj/prepisov sestankov.',
'meet_002_desc': 'Includes 500 meeting recordings/transcriptions.', 'meet_002_desc': 'Vključuje 500 snemanj/prepisov sestankov.',
'meet_003_desc': 'Includes 1000 meeting recordings/transcriptions.', 'meet_003_desc': 'Vključuje 1000 snemanj/prepisov sestankov.',
'trans_001_desc': 'Includes 100 translations (voice/text).', 'trans_001_desc': 'Vključuje 100 prevodov (glas/besedilo).',
'trans_002_desc': 'Includes 500 translations (voice/text).', 'trans_002_desc': 'Vključuje 500 prevodov (glas/besedilo).',
'trans_003_desc': 'Includes 1000 translations (voice/text).', 'trans_003_desc': 'Vključuje 1000 prevodov (glas/besedilo).',
// 商品模块 - 页脚 // 商品模块 - 页脚
'appNameProvider': 'App: VoiTrans · Provided by: VoiTrans', 'appNameProvider': 'App: VoiTrans · Provided by: VoiTrans',
@ -492,35 +493,36 @@ const Map<String, String> slSI = {
'meetingTranscript': 'Prepis sestanka', 'meetingTranscript': 'Prepis sestanka',
'files': 'Files', 'files': 'Files',
'mine': 'Mine', 'mine': 'Mine',
'connect': 'Connect', 'connect': 'Poveži',
'allFiles': 'All Files', 'allFiles': 'All Files',
'searchInAllFiles': 'Search in all files', 'searchInAllFiles': 'Search in all files',
'from': 'From', 'from': 'From',
'sortBy': 'Sort by', 'sortBy': 'Sort by',
'creationTime': 'Creation Time', 'creationTime': 'Creation Time',
'bluetoothConnection': 'Bluetooth Connection', 'bluetoothConnection': 'Povezava Bluetooth',
'meetingReconnect': 'Reconnect', 'meetingReconnect': 'Ponovno poveži',
'searching': 'Searching...', 'searching': 'Searching...',
'searchFailed': 'Search failed, please check if Bluetooth is enabled', 'searchFailed': 'Iskanje ni uspelo, preverite, ali je Bluetooth vklopljen',
'aiPenNotFound': 'AI PEN device not found', 'aiPenNotFound': 'Naprave AI PEN ni mogoče najti',
'connectedToAiPen': 'Connected to AI PEN device', 'connectedToAiPen': 'Povezano z napravo AI PEN',
'checkingNewFiles': 'Checking for new files to import', 'checkingNewFiles': 'Preverjanje novih datotek za uvoz',
'startingWifi': 'Starting Wi-Fi...', 'startingWifi': 'Starting Wi-Fi...',
'newFilesDetected': 'New files detected, preparing to import', 'newFilesDetected': 'New files detected, preparing to import',
'noNewFiles': 'No new files to import', 'noNewFiles': 'No new files to import',
'connectingWifi': 'Connecting to Wi-Fi...', 'connectingWifi': 'Povezovanje z Wi‑Fi...',
'wifiConnected': 'Wi-Fi connected successfully', 'wifiConnected': 'Wi‑Fi je uspešno povezan',
'downloadingFiles': 'Downloading files...', 'downloadingFiles': 'Prenašanje datotek...',
'downloadingFileProgress': 'Total {total} files, downloading file {current}', 'downloadingFileProgress':
'downloadComplete': 'Download complete', 'Skupaj {total} datotek, prenaša se datoteka {current}',
'downloadComplete': 'Prenos dokončan',
'downloadCompleteInfo': 'downloadCompleteInfo':
'Download complete, {count} files in total, returning automatically in 2 seconds', 'Prenos dokončan, skupaj {count} datotek, samodejna vrnitev čez 2 sekundi',
// Meeting模块 - 录音功能 // Meeting模块 - 录音功能
'startRecording': 'Start Recording', 'startRecording': 'Začni snemanje',
'liveRecording': 'Live Recording', 'liveRecording': 'Snemanje v živo',
'audioVideoRecording': 'Audio/Video Recording', 'audioVideoRecording': 'Snemanje avdia/videa',
'callRecording': 'Call Recording', 'callRecording': 'Snemanje klica',
'importAudio': 'Import Audio', 'importAudio': 'Import Audio',
'meetingRecordExitTitle': 'Izhod iz snemanja', // 退出录音 'meetingRecordExitTitle': 'Izhod iz snemanja', // 退出录音
'meetingRecordExitMessage': 'Izberite dejanje po izhodu', // 请选择离开后的操作 'meetingRecordExitMessage': 'Izberite dejanje po izhodu', // 请选择离开后的操作
@ -585,30 +587,31 @@ const Map<String, String> slSI = {
'custom': 'Po meri', 'custom': 'Po meri',
'pleaseEnter': 'Prosimo vnesite', 'pleaseEnter': 'Prosimo vnesite',
'viewAll': 'View All', 'viewAll': 'View All',
'recordingLanguage': 'Recording Language', 'recordingLanguage': 'Jezik snemanja',
'chineseSimplified': 'Chinese Mandarin (Simplified)', 'chineseSimplified': 'Chinese Mandarin (Simplified)',
'meetingGenerateNow': 'Generate Now', 'meetingGenerateNow': 'Generate Now',
'keyEventsAnalyzed': 'Analyzed {count} key events.', 'keyEventsAnalyzed': 'Analyzed {count} key events.',
'aiAnalysisDesc': 'aiAnalysisDesc':
'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.', 'AI analiza prepozna ključne dogodke v posnetkih, kar vam omogoča izbiro pomembnih dogodkov za generiranje z AI.',
// Meeting模块 - 文件操作 // Meeting模块 - 文件操作
'importing': 'Importing...', 'importing': 'Importing...',
'batchImporting': 'Batch importing...', 'batchImporting': 'Batch importing...',
'importingLocalRecordings': 'Importing local recordings...', 'importingLocalRecordings': 'Uvažanje lokalnih posnetkov...',
'importFailed': 'Import file failed: {filePath}, error: {error}', 'importFailed': 'Uvoz datoteke ni uspel: {filePath}, napaka: {error}',
'importSuccess': 'Successfully imported {count} local recordings', 'importSuccess': 'Uspešno uvoženih {count} lokalnih posnetkov',
'importError': 'Import failed: {error}', 'importError': 'Uvoz ni uspel: {error}',
'pleaseSelectAudioFile': 'Please select audio file', 'pleaseSelectAudioFile': 'Izberite zvočno datoteko',
'shareAudio': 'Share Meeting Audio', 'shareAudio': 'Share Meeting Audio',
'shareComplete': 'Share complete!', 'shareComplete': 'Share complete!',
'shareFailed': 'Share failed: {error}', 'shareFailed': 'Deljenje ni uspelo: {error}',
'fileProcessingFailed': 'File processing failed: {filePath}, error: {error}', 'fileProcessingFailed':
'Obdelava datoteke ni uspela: {filePath}, napaka: {error}',
// Meeting模块 - 思维导图 // Meeting模块 - 思维导图
'saveMindMap': 'Shrani miselni zemljevid', 'saveMindMap': 'Shrani miselni zemljevid',
'shareMindMap': 'Share Mind Map', 'shareMindMap': 'Share Mind Map',
'shareSuccess': 'Share Success', 'shareSuccess': 'Deljenje uspešno',
// Meeting模块 - AI问答 // Meeting模块 - AI问答
'askAI': 'Ask AI ...', 'askAI': 'Ask AI ...',
@ -642,28 +645,29 @@ const Map<String, String> slSI = {
'Summary speakers will be updated automatically', 'Summary speakers will be updated automatically',
// Meeting模块 - 云端同步 // Meeting模块 - 云端同步
'syncToCloud': 'Sync to Cloud', 'syncToCloud': 'Sinhroniziraj v oblak',
'syncToCloudTip': 'syncToCloudTip':
'自动将你的录音同步到云端,你可以通过任意VOITRANS APP或VOITRANS Web(web.voitrans.com)播放、管理和分享录音。', 'Samodejno sinhronizirajte posnetke v oblak; posnetke lahko predvajate, upravljate in delite prek katere koli aplikacije VOITRANS ali VOITRANS Web (web.voitrans.com).',
'syncToVoitransApp': 'Sync VOITRANS APP', 'syncToVoitransApp': 'Sinhroniziraj v aplikacijo VOITRANS',
'transcriptionRecord': 'Transcription Record', 'transcriptionRecord': 'Zapis prepisa',
// Meeting模块 - 我的页面 // Meeting模块 - 我的页面
'transcriptionRecords': 'Transcription Records', 'transcriptionRecords': 'Zapisi prepisov',
'templateCommunity': 'Template Community', 'templateCommunity': 'Template Community',
'comingSoon': 'Coming Soon', 'comingSoon': 'Coming Soon',
'integration': 'Integration', 'integration': 'Integration',
'voitransPrivateCloud': 'VOITRANS PRIVATE CLOUD', 'voitransPrivateCloud': 'VOITRANS PRIVATE CLOUD',
'enabled': 'Enabled', 'enabled': 'Omogočeno',
'disabled': 'Disabled', 'disabled': 'Onemogočeno',
'myVoitransDevice': 'My VOITRANS Device', 'myVoitransDevice': 'Moja naprava VOITRANS',
'helpAndFeedback': 'Help & Feedback', 'helpAndFeedback': 'Help & Feedback',
'aboutVoitrans': 'About VOITRANS', 'aboutVoitrans': 'About VOITRANS',
'meetingDays': 'Days', 'meetingDays': 'Days',
'meetingHours': 'Hours', 'meetingHours': 'Hours',
'voitransAiMember': 'Voitrans AI Member', 'voitransAiMember': 'Voitrans AI Member',
'unlockStarterMember': 'Unlock Starter Member', 'unlockStarterMember': 'Unlock Starter Member',
'bindDeviceToActivate': 'Bind Voitrans device to activate Starter membership', 'bindDeviceToActivate':
'Povežite napravo Voitrans za aktivacijo Starter članstva',
'unlockNow': 'Unlock Now', 'unlockNow': 'Unlock Now',
// Meeting模块 - 会员与升级 // Meeting模块 - 会员与升级
@ -687,7 +691,7 @@ const Map<String, String> slSI = {
'customTemplateDesc': 'customTemplateDesc':
'You can customize summary prompts according to your needs and use them to generate the required summaries.', 'You can customize summary prompts according to your needs and use them to generate the required summaries.',
'askAiDesc': 'askAiDesc':
'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.', 'Pametno izluščite globlje informacije iz posnetkov; z enim klikom ustvarite podatkovne tabele, ključne zaključke razprave, sezname opravil, poročilna e‑sporočila in drugo formatirano vsebino.',
'visualMindMapDesc': 'visualMindMapDesc':
'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', 'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.',
'templateCommunityDesc': 'templateCommunityDesc':
@ -695,13 +699,13 @@ const Map<String, String> slSI = {
'speakerIdentificationDesc': 'speakerIdentificationDesc':
'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', 'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.',
'privateCloudSyncDesc': 'privateCloudSyncDesc':
'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.', 'Vaši posnetki in prepisi bodo varno shranjeni na namenskih strežnikih v oblaku, z popolnim šifriranjem med nalaganjem in prenašanjem, za zagotavljanje zasebnosti in varnosti.',
'aiVoiceEnhancementDesc': 'aiVoiceEnhancementDesc':
'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', 'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.',
'audioImportDesc': 'audioImportDesc':
'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', 'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.',
'multipleExportFormatsDesc': 'multipleExportFormatsDesc':
'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.', 'Izvozite zvočne posnetke, besedilo prepisa in povzetke v različnih formatih (TXT, PDF, JPEG) po svojih potrebah.',
'upgradeMembership': 'Upgrade Your Membership', 'upgradeMembership': 'Upgrade Your Membership',
'yearlySubscription': 'Yearly Subscription', 'yearlySubscription': 'Yearly Subscription',
'monthlySubscription': 'Monthly Subscription', 'monthlySubscription': 'Monthly Subscription',
@ -731,7 +735,7 @@ const Map<String, String> slSI = {
'purchase': 'Purchase', 'purchase': 'Purchase',
// Meeting模块 - 录音语言 // Meeting模块 - 录音语言
'recordLanguage': 'Recording Language', 'recordLanguage': 'Jezik snemanja',
'cantonese': 'Cantonese', 'cantonese': 'Cantonese',
'sichuan': 'Sichuan Dialect', 'sichuan': 'Sichuan Dialect',
'shanghai': 'Shanghai Dialect', 'shanghai': 'Shanghai Dialect',
@ -758,10 +762,10 @@ const Map<String, String> slSI = {
"translationRecharge": "Nákup prevajanja", "translationRecharge": "Nákup prevajanja",
"meetingAssistantRecharge": "Nákup asistenta sestanka", "meetingAssistantRecharge": "Nákup asistenta sestanka",
"cloudSync": "Nákup sinkronizacije v oblaku", "cloudSync": "Nákup sinkronizacije v oblaku",
"memberService": "Member Service", "memberService": "Članske storitve",
"bindRewardTitle": "Rewards", "bindRewardTitle": "Nagrade",
"bindRewardSimpleDesc": "bindRewardSimpleDesc":
"First bind device reward has been issued. Tap OK to close.", "Nagrada za prvo povezavo naprave je bila izdana. Tapnite OK za zapiranje.",
"joinDevice": "Povezana naprava:", "joinDevice": "Povezana naprava:",
"accountId": "ID računa:", "accountId": "ID računa:",
"systemSetting": "Sistemska nastavitev", "systemSetting": "Sistemska nastavitev",
@ -812,19 +816,20 @@ const Map<String, String> slSI = {
"loading": "Nalaganje...", "loading": "Nalaganje...",
// 设备管理模块 // 设备管理模块
"deviceTypeUnknown": "Unknown Device", "deviceTypeUnknown": "Neznana naprava",
"deviceTypeClassicBluetoothHeadset": "Classic Bluetooth Headset", "deviceTypeClassicBluetoothHeadset": "Classic Bluetooth Headset",
"deviceTypeBleBluetoothHeadset": "BLE Bluetooth Headset", "deviceTypeBleBluetoothHeadset": "BLE Bluetooth Headset",
"deviceTypeSmartVoiceRecorder": "Smart Voice Recorder", "deviceTypeSmartVoiceRecorder": "Pametni glasovni snemalnik",
"deviceTypeSmartEye": "Smart Glasses", "deviceTypeSmartEye": "Smart Glasses",
"unbind": "Prekini povezavo", "unbind": "Prekini povezavo",
"noDevicesBound": "No devices bound yet", "noDevicesBound": "Še ni povezanih naprav",
"pleaseBindDeviceFirst": "Please bind a device first to manage", "pleaseBindDeviceFirst": "Najprej povežite napravo za upravljanje",
"noMacAddress": "No MAC Address", "noMacAddress": "No MAC Address",
"licenseCode": "License Code", "licenseCode": "License Code",
"confirmUnbind": "Confirm Unbind", "confirmUnbind": "Potrdi prekinitev povezave",
"confirmUnbindMessage": "Are you sure you want to unbind device \\", "confirmUnbindMessage":
"confirmUnbindAction": "Confirm Unbind", "Ali ste prepričani, da želite prekiniti povezavo z napravo \"{deviceName}\"?",
"confirmUnbindAction": "Potrdi prekinitev povezave",
// Agent模块 - 主界面 // Agent模块 - 主界面
"Lily": "Lily", "Lily": "Lily",
@ -854,31 +859,31 @@ const Map<String, String> slSI = {
"loadMoreMessages": "Naloži več sporočil...", "loadMoreMessages": "Naloži več sporočil...",
"loadFailedClickRetry": "Nalaganje ni uspelo, kliknite za ponovni poskus", "loadFailedClickRetry": "Nalaganje ni uspelo, kliknite za ponovni poskus",
"swipeUpForMore": "Povlecite navzgor za več", "swipeUpForMore": "Povlecite navzgor za več",
"callingTool": "I'm helping you, please wait!", // 正在帮您,请稍等! "callingTool": "Pomagam vam, prosim počakajte!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断 "voice_interrupt": "Prekini", // 语音打断
'voice_interrupt_tip': '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.', '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模块 - 预设提示词 // Agent模块 - 预设提示词
"presetMusic": "Play some music", // 来点音乐 "presetMusic": "Predvajaj glasbo", // 来点音乐
"presetNavigation": "Navigation to", // 导航 "presetNavigation": "Navigiraj do", // 导航
"presetWeather": "Today's weather", // 今日天气 "presetWeather": "Vreme danes", // 今日天气
"presetNews": "Today's news", // 今日新闻 "presetNews": "Novice danes", // 今日新闻
"presetFood": "Nearby food", // 美食 "presetFood": "Hrano v bližini", // 美食
"playSomeMusic": "Play some popular music", // 播放一些流行音乐 "playSomeMusic": "Predvajaj priljubljeno glasbo", // 播放一些流行音乐
"navigationTo": "Please help me navigate to", // 导航到 "navigationTo": "Navigiraj do", // 导航到
"todayWeather": "How's the weather today?", // 今日天气 "todayWeather": "Kako je danes vreme?", // 今日天气
"todayNews": "What's the news today?", // 今日新闻 "todayNews": "Kakšne so danes novice?", // 今日新闻
"nearbyFood": "What delicious food is nearby?", // 美食 "nearbyFood": "Kje je dobrih jedi v bližini?", // 附近有什么好吃的
// Agent模块 - 欢迎消息与权限 // Agent模块 - 欢迎消息与权限
'welcomeMessage': '你好!我是**Lily**,我能帮你:\n\n' 'welcomeMessage': 'Pozdravljeni! Sem **Lily**.\n\n'
'• 回答问题和提供信息\n\n' '• Odgovorim na vprašanja in podam informacije\n\n'
'• 实时语音翻译\n\n' '• Realnočasovni govorni prevod\n\n'
'• 推荐音乐和播客\n\n' '• Priporočam glasbo in podkaste\n\n'
'• 语音备忘录和提醒\n\n' '• Glasovne zapiske in opomniki\n\n'
'• 控制耳机功能\n\n' '• Upravljam funkcije slušalk\n\n'
'有什么我可以帮你的吗?', 'V čem vam lahko pomagam?',
'microphonePermission': 'Mikrofon', 'microphonePermission': 'Mikrofon',
'voiceRecognitionPermissionText': 'voiceRecognitionPermissionText':
'Funkcija prepoznavanja govora zahteva dostop do mikrofona.', 'Funkcija prepoznavanja govora zahteva dostop do mikrofona.',
@ -953,16 +958,16 @@ const Map<String, String> slSI = {
'useAppleNavigation': 'Navigate with Apple Maps', 'useAppleNavigation': 'Navigate with Apple Maps',
'builtInNavigation': 'Built-in Navigation', 'builtInNavigation': 'Built-in Navigation',
'useBuiltInNavigation': 'Navigate with built-in map', 'useBuiltInNavigation': 'Navigate with built-in map',
'navigationStartFailed': 'Failed to start navigation', 'navigationStartFailed': 'Zagon navigacije ni uspel',
'cannotPlayMusicListRetryLater': 'cannotPlayMusicListRetryLater':
'Cannot play music list, please try again later', 'Seznama glasbe ni mogoče predvajati, poskusite znova pozneje',
'cannotPlaySong': 'Cannot play song', 'cannotPlaySong': 'Cannot play song',
'openMapError': 'Error opening map', 'openMapError': 'Napaka pri odpiranju zemljevida',
'pleaseInstallAmapApp': 'Please install the Amap app first', 'pleaseInstallAmapApp': 'Najprej namestite aplikacijo Amap',
'pleaseInstallBaiduMapApp': 'Please install the Baidu Maps app first', 'pleaseInstallBaiduMapApp': 'Najprej namestite aplikacijo Baidu Maps',
'appleMapStartFailed': 'Apple Maps failed to start', 'appleMapStartFailed': 'Apple Maps se ni uspel zagnati',
'appleMapUnavailable': 'Apple Maps unavailable', 'appleMapUnavailable': 'Apple Maps unavailable',
'openAppleMapError': 'Error opening Apple Maps', 'openAppleMapError': 'Napaka pri odpiranju Apple Maps',
// Agent模块 - 天气卡片 // Agent模块 - 天气卡片
'weatherQuery': 'Poizvedba o vremenskih razmerah:', 'weatherQuery': 'Poizvedba o vremenskih razmerah:',
@ -1017,8 +1022,8 @@ const Map<String, String> slSI = {
"strongWind": "Močan veter", "strongWind": "Močan veter",
// 翻译模块 - 中间层 // 翻译模块 - 中间层
"pictureTranslation": "Picture Translation", "pictureTranslation": "Prevajanje slike",
"textTranslation": "Text Translation", "textTranslation": "Prevajanje besedila",
// 翻译模块 - 主页 // 翻译模块 - 主页
"translationHistory": "Zgodovina prevodov", "translationHistory": "Zgodovina prevodov",
@ -1031,29 +1036,29 @@ const Map<String, String> slSI = {
"me": "Me", "me": "Me",
"counterPart": "Counterpart", "counterPart": "Counterpart",
"bluetoothCallStateError": "bluetoothCallStateError":
"Please make sure the Bluetooth headset is connected to the phone and in a call state", "Preverite, ali so Bluetooth slušalke povezane s telefonom in v stanju klica",
"autoDetect": "Auto Detect", // 自动检测 "autoDetect": "Auto Detect", // 自动检测
// 翻译模块 - 文本翻译 // 翻译模块 - 文本翻译
"languageDetectionFailed": "Language detection failed", "languageDetectionFailed": "Prepoznavanje jezika ni uspelo",
// 翻译模块 - 悬浮窗与权限 // 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'Disable Floating Window', 'disableFloatingWindow': 'Onemogoči plavajoče okno',
'enableFloatingWindow': 'Enable Floating Window', 'enableFloatingWindow': 'Omogoči plavajoče okno',
'permissionTip': 'Permission Tip', 'permissionTip': 'Namig za dovoljenja',
'micPermissionRequiredForRecording': 'micPermissionRequiredForRecording':
'Microphone permission is required for recording', 'Za snemanje je potrebno dovoljenje mikrofona',
'deleteTranslationRecordError': 'Error deleting translation record: @error', 'deleteTranslationRecordError': 'Napaka pri brisanju zapisa prevoda: @error',
"translationFailed": "Translation failed", "translationFailed": "Prevajanje ni uspelo",
"translating": "Translating", "translating": "Translating",
"translate": "Translate", "translate": "Prevedi",
"pleaseInputText": "Please input text", "pleaseInputText": "Vnesite besedilo",
"inputTextToTranslate": "Vnesite besedilo za prevod", "inputTextToTranslate": "Vnesite besedilo za prevod",
"textTooLong": "Text too long, max 5000 characters", "textTooLong": "Text too long, max 5000 characters",
// 翻译模块 - 历史记录 // 翻译模块 - 历史记录
"noTranslationHistory": "Ni zgodovine", "noTranslationHistory": "Ni zgodovine",
"historyRecords": "History Records", "historyRecords": "Zgodovina",
"clearResults": "Clear Results", "clearResults": "Clear Results",
"clearHistory": "Počisti zgodovino", "clearHistory": "Počisti zgodovino",
"clearHistoryConfirm": "clearHistoryConfirm":
@ -1066,12 +1071,12 @@ const Map<String, String> slSI = {
// 翻译模块 - 图片翻译 // 翻译模块 - 图片翻译
"selectImageSource": "Select Image Source", "selectImageSource": "Select Image Source",
"imagePreview": "Image Preview", "imagePreview": "Image Preview",
"translationResult": "Translation Result", "translationResult": "Rezultat prevoda",
"recognitionResult": "Recognition Result", "recognitionResult": "Recognition Result",
"translatedImagePreview": "Translated Image Preview", "translatedImagePreview": "Predogled prevedene slike",
"translatedImageLoadFailed": "Failed to load translated image", "translatedImageLoadFailed": "Prevedene slike ni bilo mogoče naložiti",
"pleaseSelectImage": "Please select an image", "pleaseSelectImage": "Izberite sliko",
"imageLoadFailed": "Image load failed", "imageLoadFailed": "Nalaganje slike ni uspelo",
"imageQuality": "Image Quality", "imageQuality": "Image Quality",
"maxSize": "Max Size", "maxSize": "Max Size",
"close": "Close", "close": "Close",
@ -1080,38 +1085,38 @@ const Map<String, String> slSI = {
"setMaxSize": "Set Max Size", "setMaxSize": "Set Max Size",
"currentMaxSize": "Current: @pxpx", "currentMaxSize": "Current: @pxpx",
"waitingForAction": "Waiting for action", "waitingForAction": "Waiting for action",
"pleaseSelectImageToStart": "Please select an image to start", "pleaseSelectImageToStart": "Za začetek izberite sliko",
"chooseImage": "Choose Image", "chooseImage": "Choose Image",
"openingCamera": "Opening camera...", "openingCamera": "Opening camera...",
"openingPhotoAlbum": "Opening photo album...", "openingPhotoAlbum": "Opening photo album...",
"cancelled": "Cancelled", "cancelled": "Cancelled",
"userCancelledSelection": "User cancelled selection", "userCancelledSelection": "User cancelled selection",
"translatingImage": "Translating Image", "translatingImage": "Translating Image",
"callingImageTranslateService": "Calling image translation service...", "callingImageTranslateService": "Klicanje storitve za prevajanje slik...",
"savingRecord": "Saving Record", "savingRecord": "Shranjevanje zapisa",
"savingTranslationResult": "Saving translation result...", "savingTranslationResult": "Shranjevanje rezultata prevoda...",
"translationCompleted": "Translation Completed", "translationCompleted": "Prevajanje dokončano",
"allStepsCompleted": "All steps completed", "allStepsCompleted": "All steps completed",
"processingFailed": "Processing Failed", "processingFailed": "Obdelava ni uspela",
"imageProcessingOrTranslationFailed": "imageProcessingOrTranslationFailed":
"Image processing or translation failed. Please retry.\nError: {error}", "Obdelava slike ali prevajanje ni uspelo. Poskusite znova.\nNapaka: {error}",
"imageTooLarge": "Image size exceeds 4MB limit", "imageTooLarge": "Image size exceeds 4MB limit",
"imageTooLargeHint": "imageTooLargeHint":
"Image size exceeds 4MB. Reduce quality or dimensions and retry", "Image size exceeds 4MB. Reduce quality or dimensions and retry",
"emptyTranslationResult": "Image translation API returned empty result", "emptyTranslationResult": "API za prevajanje slik je vrnil prazen rezultat",
"imageTranslationFailedTryLater": "imageTranslationFailedTryLater":
"Image translation failed. Network issue or rate limit. Please try later", "Prevajanje slike ni uspelo. Težava z omrežjem ali omejitev hitrosti. Poskusite pozneje",
"imageTranslationApiException": "imageTranslationApiException":
"Image translation API exception. Check network and retry", "Izjema API za prevajanje slik. Preverite omrežje in poskusite znova",
"permissionRequired": "Permission Required", "permissionRequired": "Zahtevano dovoljenje",
"cameraPermissionRequired": "Camera permission required to take photos", "cameraPermissionRequired": "Za fotografiranje je potrebno dovoljenje kamere",
"photoAlbumPermissionRequired": "photoAlbumPermissionRequired":
"Photo album permission required to pick images", "Za izbiro slik je potrebno dovoljenje za fotografije",
"translationDetails": "Translation Details", "translationDetails": "Podrobnosti prevoda",
"originalImage": "Original Image", "originalImage": "Original Image",
"sourceLanguage": "Source Language", "sourceLanguage": "Source Language",
"targetLanguage": "Target Language", "targetLanguage": "Target Language",
"translationTime": "Translation Time", "translationTime": "Čas prevajanja",
"shareInDevelopment": "Sharing feature under development", "shareInDevelopment": "Sharing feature under development",
// 翻译模块 - 录音文件 // 翻译模块 - 录音文件
@ -1208,18 +1213,18 @@ const Map<String, String> slSI = {
'AccountService je bil inicializiran', // AccountService 已初始化 'AccountService je bil inicializiran', // AccountService 已初始化
// 权限模块 // 权限模块
'meetingStoragePermission': 'Storage', 'meetingStoragePermission': 'Shramba',
'meetingStoragePermissionExplanation': 'meetingStoragePermissionExplanation':
'We need access to storage permissions so you can select and upload audio files.', 'Za izbiro in nalaganje zvočnih datotek potrebujemo dostop do dovoljenja za shranjevanje.',
'meetingStoragePermissionPermanentDenial': 'meetingStoragePermissionPermanentDenial':
'检测到您已永久拒绝存储权限。如需继续使用此功能,请前往应用设置中手动开启存储权限。', 'Zaznali smo, da ste trajno zavrnili dovoljenje za shrambo. Za nadaljnjo uporabo te funkcije pojdite v nastavitve aplikacije in ročno omogočite dovoljenje za shrambo.',
'getPermissionStatusFailed': 'Pridobivanje stanja dovoljenja ni uspelo', 'getPermissionStatusFailed': 'Pridobivanje stanja dovoljenja ni uspelo',
'communicationPermissions': 'Dovoljenja za komunikacijo', 'communicationPermissions': 'Dovoljenja za komunikacijo',
'bluetoothPermissions': 'Bluetooth Permissions', 'bluetoothPermissions': 'Dovoljenja Bluetooth',
'notificationPermissions': 'Notification Permissions', 'notificationPermissions': 'Dovoljenja za obvestila',
'storagePermissions': 'Storage Permissions', 'storagePermissions': 'Dovoljenja za shranjevanje',
'microphonePermissions': 'Microphone Permissions', 'microphonePermissions': 'Dovoljenja za mikrofon',
'alarmPermissions': 'Alarm Permissions', 'alarmPermissions': 'Dovoljenja za alarm',
'calendarPermissions': 'Dovoljenja za koledar', 'calendarPermissions': 'Dovoljenja za koledar',
'locationPermissions': 'Dovoljenja za lokacijo', 'locationPermissions': 'Dovoljenja za lokacijo',
'phone': 'Telefon', 'phone': 'Telefon',
@ -1253,7 +1258,7 @@ const Map<String, String> slSI = {
'smsPermissionDetailDesc': 'smsPermissionDetailDesc':
'Funkcija pošiljanja SMS zahteva dovoljenje za SMS', 'Funkcija pošiljanja SMS zahteva dovoljenje za SMS',
'alarmPermissionDetailDesc': 'alarmPermissionDetailDesc':
'This permission is required to set exact alarms and ensure reminders trigger on time', 'To dovoljenje je potrebno za nastavitev natančnih alarmov in zagotavljanje pravočasnega sprožanja opomnikov',
'calendarWritePermissionDetailDesc': 'calendarWritePermissionDetailDesc':
'Ustvarjanje dogodkov v koledarju zahteva dovoljenje za pisanje v koledar', 'Ustvarjanje dogodkov v koledarju zahteva dovoljenje za pisanje v koledar',
'calendarFullAccessPermissionDetailDesc': 'calendarFullAccessPermissionDetailDesc':
@ -1262,63 +1267,65 @@ const Map<String, String> slSI = {
'Pridobivanje informacij o lokaciji zahteva dovoljenje za lokacijo', 'Pridobivanje informacij o lokaciji zahteva dovoljenje za lokacijo',
'contactsPermissionDesc': 'Used for accessing contact information', 'contactsPermissionDesc': 'Used for accessing contact information',
'contactsPermissionDetailDesc': 'contactsPermissionDetailDesc':
'Phone call and SMS functionality requires contacts permission to select contacts', 'Funkciji klicanja in SMS zahtevata dovoljenje za stike, da lahko izberete stike',
'bluetoothPermissionDesc': 'bluetoothPermissionDesc':
'Used for connecting and managing Bluetooth devices', 'Uporablja se za povezovanje in upravljanje Bluetooth naprav',
'bluetoothPermissionDetailDesc': 'bluetoothPermissionDetailDesc':
'Connecting to Bluetooth headphones and other devices requires Bluetooth permission', 'Za povezovanje z Bluetooth slušalkami in drugimi napravami je potrebno dovoljenje Bluetooth',
'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices', 'bluetoothScanPermissionDesc':
'Uporablja se za iskanje bližnjih Bluetooth naprav',
'bluetoothScanPermissionDetailDesc': 'bluetoothScanPermissionDetailDesc':
'Scanning for nearby Bluetooth devices requires Bluetooth scan permission', 'Za iskanje bližnjih Bluetooth naprav je potrebno dovoljenje za skeniranje Bluetooth',
'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices', 'bluetoothConnectPermissionDesc':
'Uporablja se za povezovanje z Bluetooth napravami',
'bluetoothConnectPermissionDetailDesc': 'bluetoothConnectPermissionDetailDesc':
'Connecting to Bluetooth devices requires Bluetooth connect permission', 'Za povezovanje z Bluetooth napravami je potrebno dovoljenje za povezavo Bluetooth',
'notificationPermissionDesc': 'Used for sending notification messages', 'notificationPermissionDesc': 'Used for sending notification messages',
'notificationPermissionDetailDesc': 'notificationPermissionDetailDesc':
'App needs notification permission to send you important alerts and messages', 'Aplikacija potrebuje dovoljenje za obvestila, da vam lahko pošilja pomembna opozorila in sporočila',
'appNeedsPermissionForFullFunction': 'appNeedsPermissionForFullFunction':
'Aplikacija zahteva to dovoljenje za polno funkcionalnost', 'Aplikacija zahteva to dovoljenje za polno funkcionalnost',
'permanentDenialText': 'permanentDenialText':
'Trajno ste zavrnili dovoljenje za {permission}, pojdite v nastavitve aplikacije, da ga omogočite', 'Trajno ste zavrnili dovoljenje za {permission}, pojdite v nastavitve aplikacije, da ga omogočite',
'goToSettings': 'Pojdi na nastavitve', 'goToSettings': 'Pojdi na nastavitve',
'bluetoothScan': 'Bluetooth Scan', 'bluetoothScan': 'Bluetooth Scan',
'bluetoothConnect': 'Bluetooth Connect', 'bluetoothConnect': 'Povezava Bluetooth',
'bluetoothScanExplanation': 'bluetoothScanExplanation':
'The app needs Bluetooth scan permission to scan nearby Bluetooth devices.', 'Aplikacija potrebuje dovoljenje za skeniranje Bluetooth za iskanje bližnjih Bluetooth naprav.',
'bluetoothConnectExplanation': 'bluetoothConnectExplanation':
'The app needs Bluetooth connect permission to connect to Bluetooth devices.', 'Aplikacija potrebuje dovoljenje za povezavo Bluetooth za povezovanje z Bluetooth napravami.',
'locationForBluetoothExplanation': 'locationForBluetoothExplanation':
'The app needs location permission to scan Bluetooth devices.', 'Aplikacija potrebuje dovoljenje za lokacijo za iskanje Bluetooth naprav.',
'bluetoothScanPermanentDenial': 'bluetoothScanPermanentDenial':
'Bluetooth scan permission has been permanently denied, please go to settings to enable it manually.', 'Dovoljenje za skeniranje Bluetooth je bilo trajno zavrnjeno, pojdite v nastavitve in ga ročno omogočite.',
'bluetoothConnectPermanentDenial': 'bluetoothConnectPermanentDenial':
'Bluetooth connect permission has been permanently denied, please go to settings to enable it manually.', 'Dovoljenje za povezavo Bluetooth je bilo trajno zavrnjeno, pojdite v nastavitve in ga ročno omogočite.',
'locationPermanentDenial': 'locationPermanentDenial':
'Location permission has been permanently denied, please go to settings to enable it manually.', 'Dovoljenje za lokacijo je bilo trajno zavrnjeno, pojdite v nastavitve in ga ročno omogočite.',
'notificationPermission': 'Notification', 'notificationPermission': 'Notification',
'locationPermission': 'Location', 'locationPermission': 'Location',
'notificationPermissionExplanation': 'notificationPermissionExplanation':
'Notification permission is required to display music playback status.', 'Dovoljenje za obvestila je potrebno za prikaz stanja predvajanja glasbe.',
'locationPermissionExplanation': 'locationPermissionExplanation':
'Location permission is required to get current location.', 'Dovoljenje za lokacijo je potrebno za pridobitev trenutne lokacije.',
'notificationPermissionPermanentDenial': 'notificationPermissionPermanentDenial':
'You have permanently denied notification permission, please go to settings to enable it.', 'Trajno ste zavrnili dovoljenje za obvestila, pojdite v nastavitve in ga omogočite.',
'locationPermissionPermanentDenial': 'locationPermissionPermanentDenial':
'You have permanently denied location permission, please go to settings to enable it.', 'Trajno ste zavrnili dovoljenje za lokacijo, pojdite v nastavitve in ga omogočite.',
'storagePermission': 'Storage', 'storagePermission': 'Storage',
'microphonePermissionExplanation': 'microphonePermissionExplanation':
'We need microphone permission to record audio content.', 'Potrebujemo dovoljenje mikrofona za snemanje zvočne vsebine.',
'storagePermissionExplanation': 'storagePermissionExplanation':
'We need storage permission so you can select and upload audio files.', 'Potrebujemo dovoljenje za shranjevanje, da lahko izberete in naložite zvočne datoteke.',
'microphonePermissionPermanentDenial': 'microphonePermissionPermanentDenial':
'检测到您已永久拒绝录音权限。如需继续使用此功能,请前往应用设置中手动开启麦克风权限。', 'Zaznali smo, da ste trajno zavrnili dovoljenje za mikrofon. Za nadaljnjo uporabo te funkcije pojdite v nastavitve aplikacije in ročno omogočite dovoljenje za mikrofon.',
'storagePermissionPermanentDenial': 'storagePermissionPermanentDenial':
'检测到您已永久拒绝存储权限。如需继续使用此功能,请前往应用设置中手动开启存储权限。', 'Zaznali smo, da ste trajno zavrnili dovoljenje za shrambo. Za nadaljnjo uporabo te funkcije pojdite v nastavitve aplikacije in ročno omogočite dovoljenje za shrambo.',
'permissionUtilNeed': 'Need ', 'permissionUtilNeed': 'Need ',
'permissionUtilPermission': ' Permission', 'permissionUtilPermission': ' Dovoljenje',
'permissionUtilRestricted': ' Permission Restricted', 'permissionUtilRestricted': ' Dovoljenje omejeno',
'permissionUtilRestrictedMessage': 'permissionUtilRestrictedMessage':
'This feature is unavailable or restricted on the current device, please check device settings or system restrictions', 'Ta funkcija na trenutni napravi ni na voljo ali je omejena; preverite nastavitve naprave ali sistemske omejitve',
'permissionUtilConfirm': 'OK', 'permissionUtilConfirm': 'OK',
// 原生前台服务通知(Android) // 原生前台服务通知(Android)
@ -1409,27 +1416,27 @@ const Map<String, String> slSI = {
'bleConnectionFailed': 'Povezava BLE ni uspela', 'bleConnectionFailed': 'Povezava BLE ni uspela',
'deviceAuthorizationFailedCheckCode': 'deviceAuthorizationFailedCheckCode':
'Avtorizacija naprave ni uspela, preverite avtorizacijsko kodo', 'Avtorizacija naprave ni uspela, preverite avtorizacijsko kodo',
'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙 'bluetoothGuideTitle': 'Potrebna je ročna aktivacija Bluetootha', // 需要手动开启蓝牙
'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作: 'bluetoothGuideSteps': 'Prosimo, sledite tem korakom:', // 请按照以下步骤操作:
'bluetoothGuideStep1': 'bluetoothGuideStep1':
'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启 'Vklopite Bluetooth: Nastavitve → Bluetooth → Vklopi', // 开启蓝牙:设置 → 蓝牙 → 开启
'bluetoothGuideStep2': 'bluetoothGuideStep2':
'Connect Device: Find your device in "My Devices" and tap to connect', // 连接设备:在"我的设备"中找到您的设备并点击连接 'Povežite napravo: v "Moje naprave" poiščite svojo napravo in tapnite za povezavo', // 连接设备:在"我的设备"中找到您的设备并点击连接
'bluetoothGuideStep3': 'bluetoothGuideStep3':
'Return to app to continue pairing process', // 返回应用继续配对流程 'Vrnite se v aplikacijo in nadaljujte postopek seznanjanja', // 返回应用继续配对流程
'bluetoothGuideTip': 'bluetoothGuideTip':
'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置 'Namig: za hiter dostop do nastavitev Bluetooth lahko v Nadzornem centru dolgo pritisnete ikono Bluetooth', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置
'iKnow': 'I Know', // 我知道了 'iKnow': 'Razumem', // 我知道了
// 配对模块 - 绑定奖励 // 配对模块 - 绑定奖励
"firstBindRewardTitle": "Welcome Reward", "firstBindRewardTitle": "Pozdravna nagrada",
"firstBindRewardDesc": "You've received binding rewards.", "firstBindRewardDesc": "Prejeli ste nagrade za vezavo.",
"vipLevelLabel": "VIP Level:", "vipLevelLabel": "VIP raven:",
"expiryLabel": "Expiration:", "expiryLabel": "Datum poteka:",
"notActivated": "Not activated", "notActivated": "Ni aktivirano",
"aiChatCreditsLabel": "AI Chat Credits:", "aiChatCreditsLabel": "Krediti za AI klepet:",
"translationCreditsLabel": "Translation Credits:", "translationCreditsLabel": "Kredity prevajanja:",
"meetingCreditsLabel": "Meeting Credits:", "meetingCreditsLabel": "Krediti za sestanke:",
"ok": "OK", "ok": "OK",
// 用户反馈模块 // 用户反馈模块
@ -1460,13 +1467,14 @@ const Map<String, String> slSI = {
"connectionFailed": "Povezava ni uspela", "connectionFailed": "Povezava ni uspela",
"retryConnection": "Ponovno poskusi povezati", "retryConnection": "Ponovno poskusi povezati",
"ota_updateNow": "Posodobi zdaj", "ota_updateNow": "Posodobi zdaj",
"otaVersionInfoFailed": "Failed to get version info. Please try again later.", "otaVersionInfoFailed":
"Pridobivanje informacij o različici ni uspelo. Poskusite znova pozneje.",
"otaDeviceInfoUnavailable": "otaDeviceInfoUnavailable":
"Unable to get device info. Please check the connection and retry.", "Ni mogoče pridobiti informacij o napravi. Preverite povezavo in poskusite znova.",
"otaProductInfoUnavailable": "otaProductInfoUnavailable":
"Unable to identify the device. Please reconnect and retry.", "Naprave ni mogoče prepoznati. Ponovno jo povežite in poskusite znova.",
"otaFirmwareVersionInvalid": "otaFirmwareVersionInvalid":
"Firmware version is abnormal. Please reconnect and retry.", "Različica vdelane programske opreme je nenavadna. Ponovno povežite napravo in poskusite znova.",
"keepConnectedDontClose": "keepConnectedDontClose":
"Ohranite napravo povezano, ne zapirajte aplikacije", "Ohranite napravo povezano, ne zapirajte aplikacije",
"doNotDisconnect": "Ne prekinjajte povezave", "doNotDisconnect": "Ne prekinjajte povezave",
@ -1479,54 +1487,55 @@ const Map<String, String> slSI = {
'otaNewVersionFoundWithVersion': 'New version @version found', 'otaNewVersionFoundWithVersion': 'New version @version found',
'otaConfirmUpdateNow': 'Update now?', 'otaConfirmUpdateNow': 'Update now?',
'otaUpdate': 'Update', 'otaUpdate': 'Update',
'otaUpgradeSuccess': 'Upgrade Successful', 'otaUpgradeSuccess': 'Nadgradnja uspešna',
'otaUpgradeCompleteRepair': 'otaUpgradeCompleteRepair':
'Firmware upgrade complete!\n\nDevice needs to be re-paired to work properly. Go to pairing page now?', 'Nadgradnja vdelane programske opreme dokončana!\n\nZa pravilno delovanje je treba napravo znova seznaniti. Želite zdaj na stran za seznanjanje?',
'otaPairLater': 'Pair Later', 'otaPairLater': 'Pair Later',
'otaPairNow': 'Pair Now', 'otaPairNow': 'Pair Now',
'okConfirm': 'OK', 'okConfirm': 'OK',
// OTA升级模块 - 设备检查 // OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'Error checking BLE connection: @error', 'otaBleCheckErrorWithError': 'Napaka pri preverjanju povezave BLE: @error',
'otaBleNotConnected': 'BLE Device Not Connected', 'otaBleNotConnected': 'Naprava BLE ni povezana',
'otaBleNeedConnection': 'otaBleNeedConnection':
'Firmware upgrade requires BLE device connection\nPlease ensure device is properly connected and try again', 'Nadgradnja vdelane programske opreme zahteva povezavo naprave BLE\nPreverite, ali je naprava pravilno povezana, in poskusite znova',
'otaDeviceInfoUnavailableTitle': 'Device Info Unavailable', 'otaDeviceInfoUnavailableTitle': 'Informacije o napravi niso na voljo',
'otaCannotGetDeviceInfo': 'otaCannotGetDeviceInfo':
'Cannot get device info\nPlease reconnect device or try again later', 'Ni mogoče pridobiti informacij o napravi\nPonovno povežite napravo ali poskusite znova pozneje',
'otaBleCheckFailed': 'BLE Connection Check Failed', 'otaBleCheckFailed': 'Preverjanje povezave BLE ni uspelo',
'otaCannotGetDeviceInfoCheckConnection': 'otaCannotGetDeviceInfoCheckConnection':
'Cannot get device info, please check device connection', 'Ni mogoče pridobiti informacij o napravi, preverite povezavo naprave',
'otaCannotGetProductInfoWithName': 'otaCannotGetProductInfoWithName':
'Cannot get product info, device name: @deviceName', 'Ni mogoče pridobiti informacij o izdelku, ime naprave: @deviceName',
'otaCannotGetBatteryInfo': 'Cannot get valid battery info', 'otaCannotGetBatteryInfo': 'Cannot get valid battery info',
'otaLowBattery': 'Low Battery', 'otaLowBattery': 'Low Battery',
'otaSingleBatteryLow': 'otaSingleBatteryLow':
'Device battery too low for firmware upgrade\nRequirement: battery must be above 20%\nCurrent: @ear @battery%\nPlease charge and try again', 'Baterija naprave je prenizka za nadgradnjo vdelane programske opreme\nZahteva: baterija mora biti nad 20%\nTrenutno: @ear @battery%\nNapolnite in poskusite znova',
'otaDoubleBatteryLow': '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', 'Baterija naprave je prenizka za nadgradnjo vdelane programske opreme\nZahteva: obe slušalki morata biti nad 20%\nTrenutno: Leva @left%, Desna @right%\nNapolnite in poskusite znova',
'otaBatteryCheckFailed': 'Battery Check Failed', 'otaBatteryCheckFailed': 'Preverjanje baterije ni uspelo',
// OTA升级模块 - 升级状态 // OTA升级模块 - 升级状态
'otaDefaultUpdateDesc': 'otaDefaultUpdateDesc':
'This update includes performance optimizations and bug fixes.', 'This update includes performance optimizations and bug fixes.',
'otaGetLatestVersionFailed': 'Failed to get latest version info', 'otaGetLatestVersionFailed':
'otaGetVersionInfoFailed': 'Failed to get version info', 'Pridobivanje informacij o najnovejši različici ni uspelo',
'otaCheckingDeviceStatus': 'Checking device status...', 'otaGetVersionInfoFailed': 'Pridobivanje informacij o različici ni uspelo',
'otaCheckingDeviceStatus': 'Preverjanje stanja naprave...',
'otaDownloadFailedCheckNetwork': 'otaDownloadFailedCheckNetwork':
'Download failed, please check network connection', 'Prenos ni uspel, preverite omrežno povezavo',
'otaDownloadFailed': 'Download Failed', 'otaDownloadFailed': 'Prenos ni uspel',
'otaPreparingConnection': 'Preparing device connection...', 'otaPreparingConnection': 'Priprava povezave naprave...',
'otaConnectingDevice': 'Connecting to device...', 'otaConnectingDevice': 'Povezovanje z napravo...',
'otaUpgradeStarted': 'OTA upgrade started...', 'otaUpgradeStarted': 'OTA upgrade started...',
'otaUpgradeProgressWithPercent': 'Upgrade progress: @percent%', 'otaUpgradeProgressWithPercent': 'Upgrade progress: @percent%',
'otaUpgradeSuccessComplete': 'Upgrade completed successfully', 'otaUpgradeSuccessComplete': 'Nadgradnja je bila uspešno dokončana',
'otaUpgradeFailedWithCode': 'Upgrade failed, error code: @code', 'otaUpgradeFailedWithCode': 'Nadgradnja ni uspela, koda napake: @code',
'otaUpgradeFailedTitle': 'Upgrade Failed', 'otaUpgradeFailedTitle': 'Nadgradnja ni uspela',
'otaUpgradeFailedDesc': 'otaUpgradeFailedDesc':
'Please check device connection or update package, error code: @code', 'Preverite povezavo naprave ali paket posodobitve, koda napake: @code',
'otaDeviceDisconnected': 'Device disconnected', 'otaDeviceDisconnected': 'Naprava je prekinila povezavo',
'otaDeviceConnected': 'Device connected', 'otaDeviceConnected': 'Naprava je povezana',
// 音乐模块 // 音乐模块
"noMusic": "Ni glasbe", // 暂无音乐 "noMusic": "Ni glasbe", // 暂无音乐

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

@ -1,3 +1,4 @@
// 塞尔维亚-塞尔维亚语
const Map<String, String> srRS = { const Map<String, String> srRS = {
// 通用 // 通用
'continue': 'Nastavi', 'continue': 'Nastavi',
@ -172,8 +173,7 @@ const Map<String, String> srRS = {
'bleInitFailedWithError': 'Inicijalizacija Bluetooth-a nije uspela: @error', 'bleInitFailedWithError': 'Inicijalizacija Bluetooth-a nije uspela: @error',
'needBluetoothAndLocationPermission': 'needBluetoothAndLocationPermission':
'Za skeniranje uređaja potrebne su dozvole za Bluetooth i lokaciju', 'Za skeniranje uređaja potrebne su dozvole za Bluetooth i lokaciju',
'permissionRequestFailedWithError': 'permissionRequestFailedWithError': 'Zahtev za dozvolu nije uspeo: @error',
'Zahtev za dozvolu nije uspeo: @error',
'needPermission': 'Potrebna dozvola', 'needPermission': 'Potrebna dozvola',
'blePermissionDialogContent': 'blePermissionDialogContent':
'Ova aplikacija zahteva dozvole za Bluetooth i lokaciju za skeniranje uređaja. Molimo omogućite ih u Podešavanjima.', 'Ova aplikacija zahteva dozvole za Bluetooth i lokaciju za skeniranje uređaja. Molimo omogućite ih u Podešavanjima.',
@ -343,14 +343,16 @@ const Map<String, String> srRS = {
'Duža kvota za razgovor, više poziva alata, produžena dužina konteksta.', 'Duža kvota za razgovor, više poziva alata, produžena dužina konteksta.',
'aiHeaderDesc2': 'aiHeaderDesc2':
'Pogodno za pitanja i odgovore agenta, sažimanje, analizu i izvršavanje zadataka.', 'Pogodno za pitanja i odgovore agenta, sažimanje, analizu i izvršavanje zadataka.',
'musicSearchPlaybackControl': 'Pretraga muzičke biblioteke i kontrola reprodukcije', 'musicSearchPlaybackControl':
'Pretraga muzičke biblioteke i kontrola reprodukcije',
'smartPlaylistAndSimilarRecommendations': 'smartPlaylistAndSimilarRecommendations':
'Pametna lista pesama i preporuke sličnih pesama', 'Pametna lista pesama i preporuke sličnih pesama',
'routePlanningAndCongestionAvoidance': 'routePlanningAndCongestionAvoidance': 'Planiranje rute i izbegavanje gužve',
'Planiranje rute i izbegavanje gužve', 'voiceBroadcastAndWaypoints':
'voiceBroadcastAndWaypoints': 'Glasovno emitovanje i podešavanje putnih tačaka', 'Glasovno emitovanje i podešavanje putnih tačaka',
'realTimeWeatherForecast': 'Vremenski uslovi i prognoza u realnom vremenu', 'realTimeWeatherForecast': 'Vremenski uslovi i prognoza u realnom vremenu',
'clothingAdviceAndTravelReminders': 'Saveti za odeću i podsetnici za putovanje', 'clothingAdviceAndTravelReminders':
'Saveti za odeću i podsetnici za putovanje',
'poiSearchFoodGasParking': 'POI pretraga: hrana / gorivo / parking', 'poiSearchFoodGasParking': 'POI pretraga: hrana / gorivo / parking',
'ratingsHoursAndDirectRoutes': 'Ocene, radno vreme i direktne rute', 'ratingsHoursAndDirectRoutes': 'Ocene, radno vreme i direktne rute',
'hotNewsAndTopicOverview': 'Najnovije vesti i pregled tema', 'hotNewsAndTopicOverview': 'Najnovije vesti i pregled tema',
@ -511,7 +513,8 @@ const Map<String, String> srRS = {
'connectingWifi': 'Povezivanje sa Wi-Fi-jem...', 'connectingWifi': 'Povezivanje sa Wi-Fi-jem...',
'wifiConnected': 'Wi-Fi uspešno povezan', 'wifiConnected': 'Wi-Fi uspešno povezan',
'downloadingFiles': 'Preuzimanje datoteka...', 'downloadingFiles': 'Preuzimanje datoteka...',
'downloadingFileProgress': 'Ukupno {total} datoteka, preuzimanje datoteke {current}', 'downloadingFileProgress':
'Ukupno {total} datoteka, preuzimanje datoteke {current}',
'downloadComplete': 'Preuzimanje završeno', 'downloadComplete': 'Preuzimanje završeno',
'downloadCompleteInfo': 'downloadCompleteInfo':
'Preuzimanje završeno, ukupno {count} datoteka, automatsko vraćanje za 2 sekunde', 'Preuzimanje završeno, ukupno {count} datoteka, automatsko vraćanje za 2 sekunde',
@ -603,7 +606,8 @@ const Map<String, String> srRS = {
'shareAudio': 'Podeli audio sastanka', 'shareAudio': 'Podeli audio sastanka',
'shareComplete': 'Deljenje završeno!', 'shareComplete': 'Deljenje završeno!',
'shareFailed': 'Deljenje nije uspelo: {error}', 'shareFailed': 'Deljenje nije uspelo: {error}',
'fileProcessingFailed': 'Obrada datoteke nije uspela: {filePath}, greška: {error}', 'fileProcessingFailed':
'Obrada datoteke nije uspela: {filePath}, greška: {error}',
// Meeting模块 - 思维导图 // Meeting模块 - 思维导图
'saveMindMap': 'Sačuvaj mentalnu mapu', 'saveMindMap': 'Sačuvaj mentalnu mapu',
@ -663,7 +667,8 @@ const Map<String, String> srRS = {
'meetingHours': 'Sati', 'meetingHours': 'Sati',
'voitransAiMember': 'Voitrans AI član', 'voitransAiMember': 'Voitrans AI član',
'unlockStarterMember': 'Otključajte početno članstvo', 'unlockStarterMember': 'Otključajte početno članstvo',
'bindDeviceToActivate': 'Povežite Voitrans uređaj da aktivirate početno članstvo', 'bindDeviceToActivate':
'Povežite Voitrans uređaj da aktivirate početno članstvo',
'unlockNow': 'Otključaj sada', 'unlockNow': 'Otključaj sada',
// Meeting模块 - 会员与升级 // Meeting模块 - 会员与升级
@ -712,7 +717,8 @@ const Map<String, String> srRS = {
'unlimitedMonthly': 'Neograničeno ¥120/mesec', 'unlimitedMonthly': 'Neograničeno ¥120/mesec',
'unlimitedMonthlyDesc': 'unlimitedMonthlyDesc':
'7-dnevni besplatni probni period, zatim ¥1600/godišnje. Otkažite bilo kada pre isteka probnog perioda.', '7-dnevni besplatni probni period, zatim ¥1600/godišnje. Otkažite bilo kada pre isteka probnog perioda.',
'trialNote': '*Besplatni probni period 7 dana, zatim se naplaćuje godišnje, otkažite bilo kada.', 'trialNote':
'*Besplatni probni period 7 dana, zatim se naplaćuje godišnje, otkažite bilo kada.',
'proPrice': 'Pro ¥120', 'proPrice': 'Pro ¥120',
'proMonthlyPrice': '¥120/mesec', 'proMonthlyPrice': '¥120/mesec',
'subscribe': 'Pretplati se', 'subscribe': 'Pretplati se',
@ -822,7 +828,8 @@ const Map<String, String> srRS = {
"noMacAddress": "Nema MAC adrese", "noMacAddress": "Nema MAC adrese",
"licenseCode": "Licencni kod", "licenseCode": "Licencni kod",
"confirmUnbind": "Potvrdite prekid veze", "confirmUnbind": "Potvrdite prekid veze",
"confirmUnbindMessage": "Da li ste sigurni da želite da prekinete vezu sa uređajem \\", "confirmUnbindMessage":
"Da li ste sigurni da želite da prekinete vezu sa uređajem \\",
"confirmUnbindAction": "Potvrdi prekid veze", "confirmUnbindAction": "Potvrdi prekid veze",
// Agent模块 - 主界面 // Agent模块 - 主界面
@ -1102,8 +1109,7 @@ const Map<String, String> srRS = {
"Izuzetak API-ja za prevod slike. Proverite mrežu i pokušajte ponovo", "Izuzetak API-ja za prevod slike. Proverite mrežu i pokušajte ponovo",
"permissionRequired": "Potrebna dozvola", "permissionRequired": "Potrebna dozvola",
"cameraPermissionRequired": "Dozvola za kameru je potrebna za fotografisanje", "cameraPermissionRequired": "Dozvola za kameru je potrebna za fotografisanje",
"photoAlbumPermissionRequired": "photoAlbumPermissionRequired": "Dozvola za album je potrebna za izbor slika",
"Dozvola za album je potrebna za izbor slika",
"translationDetails": "Detalji prevoda", "translationDetails": "Detalji prevoda",
"originalImage": "Originalna slika", "originalImage": "Originalna slika",
"sourceLanguage": "Izvorni jezik", "sourceLanguage": "Izvorni jezik",
@ -1265,10 +1271,12 @@ const Map<String, String> srRS = {
'Koristi se za povezivanje i upravljanje Bluetooth uređajima', 'Koristi se za povezivanje i upravljanje Bluetooth uređajima',
'bluetoothPermissionDetailDesc': 'bluetoothPermissionDetailDesc':
'Povezivanje sa Bluetooth slušalicama i drugim uređajima zahteva dozvolu za Bluetooth', 'Povezivanje sa Bluetooth slušalicama i drugim uređajima zahteva dozvolu za Bluetooth',
'bluetoothScanPermissionDesc': 'Koristi se za skeniranje Bluetooth uređaja u blizini', 'bluetoothScanPermissionDesc':
'Koristi se za skeniranje Bluetooth uređaja u blizini',
'bluetoothScanPermissionDetailDesc': 'bluetoothScanPermissionDetailDesc':
'Skeniranje Bluetooth uređaja u blizini zahteva dozvolu za Bluetooth skeniranje', 'Skeniranje Bluetooth uređaja u blizini zahteva dozvolu za Bluetooth skeniranje',
'bluetoothConnectPermissionDesc': 'Koristi se za povezivanje sa Bluetooth uređajima', 'bluetoothConnectPermissionDesc':
'Koristi se za povezivanje sa Bluetooth uređajima',
'bluetoothConnectPermissionDetailDesc': 'bluetoothConnectPermissionDetailDesc':
'Povezivanje sa Bluetooth uređajima zahteva dozvolu za Bluetooth povezivanje', 'Povezivanje sa Bluetooth uređajima zahteva dozvolu za Bluetooth povezivanje',
'notificationPermissionDesc': 'Koristi se za slanje obaveštenja', 'notificationPermissionDesc': 'Koristi se za slanje obaveštenja',
@ -1406,7 +1414,8 @@ const Map<String, String> srRS = {
'bleConnectionFailed': 'Neuspešna BLE veza', 'bleConnectionFailed': 'Neuspešna BLE veza',
'deviceAuthorizationFailedCheckCode': 'deviceAuthorizationFailedCheckCode':
'Neuspešna autorizacija uređaja, proverite autorizacioni kod', 'Neuspešna autorizacija uređaja, proverite autorizacioni kod',
'bluetoothGuideTitle': 'Potrebno je ručno uključivanje Bluetooth-a', // 需要手动开启蓝牙 'bluetoothGuideTitle':
'Potrebno je ručno uključivanje Bluetooth-a', // 需要手动开启蓝牙
'bluetoothGuideSteps': 'Molimo pratite sledeće korake:', // 请按照以下步骤操作: 'bluetoothGuideSteps': 'Molimo pratite sledeće korake:', // 请按照以下步骤操作:
'bluetoothGuideStep1': 'bluetoothGuideStep1':
'Uključite Bluetooth: Podešavanja → Bluetooth → Uključi', // 开启蓝牙:设置 → 蓝牙 → 开启 'Uključite Bluetooth: Podešavanja → Bluetooth → Uključi', // 开启蓝牙:设置 → 蓝牙 → 开启
@ -1458,7 +1467,8 @@ const Map<String, String> srRS = {
"connectionFailed": "Neuspešno povezivanje", "connectionFailed": "Neuspešno povezivanje",
"retryConnection": "Pokušaj ponovo povezivanje", "retryConnection": "Pokušaj ponovo povezivanje",
"ota_updateNow": "Ažuriraj sada", "ota_updateNow": "Ažuriraj sada",
"otaVersionInfoFailed": "Dobijanje informacija o verziji nije uspelo. Pokušajte ponovo kasnije.", "otaVersionInfoFailed":
"Dobijanje informacija o verziji nije uspelo. Pokušajte ponovo kasnije.",
"otaDeviceInfoUnavailable": "otaDeviceInfoUnavailable":
"Nije moguće dobiti informacije o uređaju. Proverite vezu i pokušajte ponovo.", "Nije moguće dobiti informacije o uređaju. Proverite vezu i pokušajte ponovo.",
"otaProductInfoUnavailable": "otaProductInfoUnavailable":
@ -1496,7 +1506,8 @@ const Map<String, String> srRS = {
'Nije moguće dobiti informacije o uređaju, proverite vezu sa uređajem', 'Nije moguće dobiti informacije o uređaju, proverite vezu sa uređajem',
'otaCannotGetProductInfoWithName': 'otaCannotGetProductInfoWithName':
'Nije moguće dobiti informacije o proizvodu, naziv uređaja: @deviceName', 'Nije moguće dobiti informacije o proizvodu, naziv uređaja: @deviceName',
'otaCannotGetBatteryInfo': 'Nije moguće dobiti validne informacije o bateriji', 'otaCannotGetBatteryInfo':
'Nije moguće dobiti validne informacije o bateriji',
'otaLowBattery': 'Slab nivo baterije', 'otaLowBattery': 'Slab nivo baterije',
'otaSingleBatteryLow': 'otaSingleBatteryLow':
'Nivo baterije uređaja je prenizak za nadogradnju firmvera\nUslov: baterija mora biti iznad 20%\nTrenutno: @ear @battery%\nMolimo napunite i pokušajte ponovo', 'Nivo baterije uređaja je prenizak za nadogradnju firmvera\nUslov: baterija mora biti iznad 20%\nTrenutno: @ear @battery%\nMolimo napunite i pokušajte ponovo',
@ -1507,7 +1518,8 @@ const Map<String, String> srRS = {
// OTA升级模块 - 升级状态 // OTA升级模块 - 升级状态
'otaDefaultUpdateDesc': 'otaDefaultUpdateDesc':
'Ovo ažuriranje uključuje optimizacije performansi i ispravke grešaka.', 'Ovo ažuriranje uključuje optimizacije performansi i ispravke grešaka.',
'otaGetLatestVersionFailed': 'Dobijanje informacija o najnovijoj verziji nije uspelo', 'otaGetLatestVersionFailed':
'Dobijanje informacija o najnovijoj verziji nije uspelo',
'otaGetVersionInfoFailed': 'Dobijanje informacija o verziji nije uspelo', 'otaGetVersionInfoFailed': 'Dobijanje informacija o verziji nije uspelo',
'otaCheckingDeviceStatus': 'Provera statusa uređaja...', 'otaCheckingDeviceStatus': 'Provera statusa uređaja...',
'otaDownloadFailedCheckNetwork': 'otaDownloadFailedCheckNetwork':

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

File diff suppressed because it is too large

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

File diff suppressed because it is too large

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

@ -1,3 +1,4 @@
//菲律宾-塔加路语
const Map<String, String> tlPH = { const Map<String, String> tlPH = {
// 通用 // 通用
'continue': 'Magpatuloy', 'continue': 'Magpatuloy',
@ -110,7 +111,7 @@ const Map<String, String> tlPH = {
"welcomeToThisApp": "welcomeToThisApp":
"Maligayang pagdating sa Voitrans, mangyaring basahin nang mabuti", // 欢迎使用Voitrans,请充分阅读 "Maligayang pagdating sa Voitrans, mangyaring basahin nang mabuti", // 欢迎使用Voitrans,请充分阅读
"privacyPolicyText": "privacyPolicyText":
",点击'同意并进入'表示您已充分阅读并同意上述协议。点击'不同意'将退出应用。", // ,点击"同意并进入"表示您已充分阅读并同意上述协议。点击"不同意"将退出应用。 ", Sa pag-click sa 'Sumang-ayon at Pumasok', ibig sabihin nabasa mo na at sumasang-ayon ka sa mga nakasaad na kasunduan. Sa pag-click sa 'Hindi Sumasang-ayon', isasara ang app.", // ,点击"同意并进入"表示您已充分阅读并同意上述协议。点击"不同意"将退出应用。
"disagree": "Hindi Sumasang-ayon", // 不同意 "disagree": "Hindi Sumasang-ayon", // 不同意
"agreeAndEnter": "Sumang-ayon at Pumasok", // 同意并进入 "agreeAndEnter": "Sumang-ayon at Pumasok", // 同意并进入
@ -654,7 +655,7 @@ const Map<String, String> tlPH = {
// Meeting模块 - 云端同步 // Meeting模块 - 云端同步
'syncToCloud': 'Sync to Cloud', 'syncToCloud': 'Sync to Cloud',
'syncToCloudTip': 'syncToCloudTip':
'自动将你的录音同步到云端,你可以通过任意VOITRANS APP或VOITRANS Web(web.voitrans.com)播放、管理和分享录音。', 'Awtomatikong i-sync ang iyong mga recording sa cloud; maaari mong i-play, i-manage, at i-share ang mga ito sa anumang VOITRANS app o VOITRANS Web (web.voitrans.com).',
'syncToVoitransApp': 'Sync VOITRANS APP', 'syncToVoitransApp': 'Sync VOITRANS APP',
'transcriptionRecord': 'Record ng transkripsyon', 'transcriptionRecord': 'Record ng transkripsyon',
@ -769,8 +770,8 @@ const Map<String, String> tlPH = {
"translationRecharge": "Pagsasalin ng Recharge", "translationRecharge": "Pagsasalin ng Recharge",
"meetingAssistantRecharge": "Pagsasalin ng Recharge ng Pulong", "meetingAssistantRecharge": "Pagsasalin ng Recharge ng Pulong",
"cloudSync": "Pagsasalin ng Recharge ng Cloud", "cloudSync": "Pagsasalin ng Recharge ng Cloud",
"memberService": "Member Service", "memberService": "Serbisyo ng Miyembro",
"bindRewardTitle": "Rewards", "bindRewardTitle": "Mga gantimpala",
"bindRewardSimpleDesc": "bindRewardSimpleDesc":
"Na-issue na ang gantimpala para sa unang pag-bind ng device. I-tap ang OK upang isara.", "Na-issue na ang gantimpala para sa unang pag-bind ng device. I-tap ang OK upang isara.",
"joinDevice": "Konektadong device:", "joinDevice": "Konektadong device:",
@ -868,30 +869,30 @@ const Map<String, String> tlPH = {
"loadFailedClickRetry": "Nabigo ang pag-load, i-click para subukang muli", "loadFailedClickRetry": "Nabigo ang pag-load, i-click para subukang muli",
"swipeUpForMore": "Mag-swipe pataas para sa higit pa", "swipeUpForMore": "Mag-swipe pataas para sa higit pa",
"callingTool": "Tinutulungan kita, pakihintay!", // 正在帮您,请稍等! "callingTool": "Tinutulungan kita, pakihintay!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断 "voice_interrupt": "Ihinto", // 语音打断
'voice_interrupt_tip': 'voice_interrupt_tip':
'Kapag naka-enable: Hindi maaantala ng iyong boses ang AI habang nagsasalita at isang round lang ng usapan ang kayang i-handle. Para magsimula ng bagong round, sabihin lang ang wake-up word.', 'Kapag naka-enable: Hindi maaantala ng iyong boses ang AI habang nagsasalita at isang round lang ng usapan ang kayang i-handle. Para magsimula ng bagong round, sabihin lang ang wake-up word.',
// Agent模块 - 预设提示词 // Agent模块 - 预设提示词
"presetMusic": "Play some music", // 来点音乐 "presetMusic": "Magpatugtog ng musika", // 来点音乐
"presetNavigation": "Navigation to", // 导航 "presetNavigation": "Mag-navigate patungo", // 导航
"presetWeather": "Today's weather", // 今日天气 "presetWeather": "Panahon ngayon", // 今日天气
"presetNews": "Today's news", // 今日新闻 "presetNews": "Balita ngayon", // 今日新闻
"presetFood": "Nearby food", // 美食 "presetFood": "Pagkain malapit dito", // 美食
"playSomeMusic": "Play some popular music", // 播放一些流行音乐 "playSomeMusic": "Magpatugtog ng sikat na musika", // 播放一些流行音乐
"navigationTo": "Pakitulungan akong mag-navigate sa", // 导航到 "navigationTo": "Mag-navigate patungo", // 导航到
"todayWeather": "How's the weather today?", // 今日天气 "todayWeather": "Anong panahon ngayon?", // 今日天气
"todayNews": "What's the news today?", // 今日新闻 "todayNews": "Anong balita ngayon?", // 今日新闻
"nearbyFood": "What delicious food is nearby?", // 美食 "nearbyFood": "Saan may masarap na pagkain malapit dito?", // 附近有什么好吃的
// Agent模块 - 欢迎消息与权限 // Agent模块 - 欢迎消息与权限
'welcomeMessage': '你好!我是**Lily**,我能帮你:\n\n' 'welcomeMessage': 'Kumusta! Ako si **Lily**.\n\n'
'• 回答问题和提供信息\n\n' '• Sasagot sa mga tanong at magbibigay ng impormasyon\n\n'
'• 实时语音翻译\n\n' '• Real-time na voice translation\n\n'
'• 推荐音乐和播客\n\n' '• Magrerekomenda ng musika at podcast\n\n'
'• 语音备忘录和提醒\n\n' '• Voice memo at paalala\n\n'
'• 控制耳机功能\n\n' '• Kontrol ang mga function ng headset\n\n'
'有什么我可以帮你的吗?', 'Paano kita matutulungan?',
'microphonePermission': 'Mikropono', 'microphonePermission': 'Mikropono',
'voiceRecognitionPermissionText': 'voiceRecognitionPermissionText':
'Ang pagkilala sa boses ay nangangailangan ng access sa mikropono.', 'Ang pagkilala sa boses ay nangangailangan ng access sa mikropono.',
@ -1232,7 +1233,7 @@ const Map<String, String> tlPH = {
'meetingStoragePermissionExplanation': 'meetingStoragePermissionExplanation':
'Kailangan namin ng access sa storage permission para makapili at makapag-upload ka ng mga audio file.', 'Kailangan namin ng access sa storage permission para makapili at makapag-upload ka ng mga audio file.',
'meetingStoragePermissionPermanentDenial': 'meetingStoragePermissionPermanentDenial':
'检测到您已永久拒绝存储权限。如需继续使用此功能,请前往应用设置中手动开启存储权限。', 'Nadetect na permanenteng tinanggihan mo ang permission sa storage. Para magpatuloy, pumunta sa app settings at manu-manong i-enable ang storage permission.',
'getPermissionStatusFailed': 'Nabigong makuha ang katayuan ng pahintulot', 'getPermissionStatusFailed': 'Nabigong makuha ang katayuan ng pahintulot',
'communicationPermissions': 'Mga Pahintulot sa Komunikasyon', 'communicationPermissions': 'Mga Pahintulot sa Komunikasyon',
'bluetoothPermissions': 'Mga pahintulot sa Bluetooth', 'bluetoothPermissions': 'Mga pahintulot sa Bluetooth',
@ -1280,7 +1281,8 @@ const Map<String, String> tlPH = {
'Ang pamamahala ng mga kaganapan sa kalendaryo ay nangangailangan ng buong pahintulot sa kalendaryo', 'Ang pamamahala ng mga kaganapan sa kalendaryo ay nangangailangan ng buong pahintulot sa kalendaryo',
'locationPermissionDetailDesc': 'locationPermissionDetailDesc':
'Ang pagkuha ng impormasyon sa lokasyon ay nangangailangan ng pahintulot sa lokasyon', 'Ang pagkuha ng impormasyon sa lokasyon ay nangangailangan ng pahintulot sa lokasyon',
'contactsPermissionDesc': 'Ginagamit para sa pag-access ng impormasyon sa contacts', 'contactsPermissionDesc':
'Ginagamit para sa pag-access ng impormasyon sa contacts',
'contactsPermissionDetailDesc': 'contactsPermissionDetailDesc':
'Ang function ng pagtawag at SMS ay nangangailangan ng pahintulot sa contacts para pumili ng contacts', 'Ang function ng pagtawag at SMS ay nangangailangan ng pahintulot sa contacts para pumili ng contacts',
'bluetoothPermissionDesc': 'bluetoothPermissionDesc':
@ -1333,9 +1335,9 @@ const Map<String, String> tlPH = {
'storagePermissionExplanation': 'storagePermissionExplanation':
'Kailangan namin ang pahintulot sa storage para makapili at makapag-upload ka ng mga audio file.', 'Kailangan namin ang pahintulot sa storage para makapili at makapag-upload ka ng mga audio file.',
'microphonePermissionPermanentDenial': 'microphonePermissionPermanentDenial':
'检测到您已永久拒绝录音权限。如需继续使用此功能,请前往应用设置中手动开启麦克风权限。', 'Nadetect na permanenteng tinanggihan mo ang permission sa mikropono. Para magpatuloy, pumunta sa app settings at manu-manong i-enable ang microphone permission.',
'storagePermissionPermanentDenial': 'storagePermissionPermanentDenial':
'检测到您已永久拒绝存储权限。如需继续使用此功能,请前往应用设置中手动开启存储权限。', 'Nadetect na permanenteng tinanggihan mo ang permission sa storage. Para magpatuloy, pumunta sa app settings at manu-manong i-enable ang storage permission.',
'permissionUtilNeed': 'Kailangan ', 'permissionUtilNeed': 'Kailangan ',
'permissionUtilPermission': ' pahintulot', 'permissionUtilPermission': ' pahintulot',
'permissionUtilRestricted': ' ay may restriksyon', 'permissionUtilRestricted': ' ay may restriksyon',
@ -1448,14 +1450,14 @@ const Map<String, String> tlPH = {
'iKnow': 'Naiintindihan ko', // 我知道了 'iKnow': 'Naiintindihan ko', // 我知道了
// 配对模块 - 绑定奖励 // 配对模块 - 绑定奖励
"firstBindRewardTitle": "Welcome Reward", "firstBindRewardTitle": "Pembelian Terlebih Dahulu",
"firstBindRewardDesc": "You've received binding rewards.", "firstBindRewardDesc": "Anda telah menerima premi binding.",
"vipLevelLabel": "VIP Level:", "vipLevelLabel": "Level VIP:",
"expiryLabel": "Expiration:", "expiryLabel": "Petsa ng pag-expire:",
"notActivated": "Not activated", "notActivated": "Belum diaktifkan",
"aiChatCreditsLabel": "AI Chat Credits:", "aiChatCreditsLabel": "Kredit Chat AI:",
"translationCreditsLabel": "Translation Credits:", "translationCreditsLabel": "Mga Kredito sa Pagsasalin:",
"meetingCreditsLabel": "Meeting Credits:", "meetingCreditsLabel": "Kredity meeting:",
"ok": "OK", "ok": "OK",
// 用户反馈模块 // 用户反馈模块
@ -1536,13 +1538,13 @@ const Map<String, String> tlPH = {
'otaBatteryCheckFailed': 'Nabigo ang pag-check ng baterya', 'otaBatteryCheckFailed': 'Nabigo ang pag-check ng baterya',
// OTA升级模块 - 升级状态 // OTA升级模块 - 升级状态
'otaDefaultUpdateDesc': 'otaDefaultUpdateDesc':
'This update includes performance optimizations and bug fixes.', 'Kasama sa update na ito ang mga pagpapahusay sa performance at pag-aayos ng mga bug.',
'otaGetLatestVersionFailed': 'otaGetLatestVersionFailed':
'Nabigong kunin ang pinakabagong impormasyon ng bersyon', 'Nabigong kunin ang pinakabagong impormasyon ng bersyon',
'otaGetVersionInfoFailed': 'Nabigong kunin ang impormasyon ng bersyon', 'otaGetVersionInfoFailed': 'Nabigong kunin ang impormasyon ng bersyon',
'otaCheckingDeviceStatus': 'Tinitingnan ang estado ng device...', 'otaCheckingDeviceStatus': 'Tinitingnan ang estado ng device...',
'otaDownloadFailedCheckNetwork': 'otaDownloadFailedCheckNetwork':
'Download failed, please check network connection', 'Nabigo ang pag-download, pakisuri ang koneksyon sa network',
'otaDownloadFailed': 'Nabigo ang pag-download', 'otaDownloadFailed': 'Nabigo ang pag-download',
'otaPreparingConnection': 'Inihahanda ang koneksyon ng device...', 'otaPreparingConnection': 'Inihahanda ang koneksyon ng device...',
'otaConnectingDevice': 'Kumokonekta sa device...', 'otaConnectingDevice': 'Kumokonekta sa device...',
@ -1552,7 +1554,7 @@ const Map<String, String> tlPH = {
'otaUpgradeFailedWithCode': 'Nabigo ang pag-upgrade, code ng error: @code', 'otaUpgradeFailedWithCode': 'Nabigo ang pag-upgrade, code ng error: @code',
'otaUpgradeFailedTitle': 'Nabigo ang pag-upgrade', 'otaUpgradeFailedTitle': 'Nabigo ang pag-upgrade',
'otaUpgradeFailedDesc': 'otaUpgradeFailedDesc':
'Please check device connection or update package, error code: @code', 'Pakisuri ang koneksyon ng device o ang update package, code ng error: @code',
'otaDeviceDisconnected': 'Na-disconnect ang device', 'otaDeviceDisconnected': 'Na-disconnect ang device',
'otaDeviceConnected': 'Nakakonekta ang device', 'otaDeviceConnected': 'Nakakonekta ang device',

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

File diff suppressed because it is too large

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

File diff suppressed because it is too large

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

@ -1,3 +1,4 @@
//越南-越南语
const Map<String, String> viVN = { const Map<String, String> viVN = {
// 通用 // 通用
'continue': 'Tiếp tục', 'continue': 'Tiếp tục',
@ -109,7 +110,7 @@ const Map<String, String> viVN = {
"welcomeToThisApp": "welcomeToThisApp":
"Chào mừng bạn đến với Voitrans, vui lòng đọc kỹ", // 欢迎使用Voitrans,请充分阅读 "Chào mừng bạn đến với Voitrans, vui lòng đọc kỹ", // 欢迎使用Voitrans,请充分阅读
"privacyPolicyText": "privacyPolicyText":
",点击'同意并进入'表示您已充分阅读并同意上述协议。点击'不同意'将退出应用。", // ,点击"同意并进入"表示您已充分阅读并同意上述协议。点击"不同意"将退出应用。 "Nhấn “Đồng ý và vào” nghĩa là bạn đã đọc và đồng ý với các thỏa thuận ở trên. Nhấn “Không đồng ý” sẽ thoát ứng dụng.", // ,点击"同意并进入"表示您已充分阅读并同意上述协议。点击"不同意"将退出应用。
"disagree": "Không đồng ý", // 不同意 "disagree": "Không đồng ý", // 不同意
"agreeAndEnter": "Đồng ý và vào", // 同意并进入 "agreeAndEnter": "Đồng ý và vào", // 同意并进入
@ -850,7 +851,7 @@ const Map<String, String> viVN = {
"loadFailedClickRetry": "Tải thất bại, nhấn để thử lại", "loadFailedClickRetry": "Tải thất bại, nhấn để thử lại",
"swipeUpForMore": "Vuốt lên để xem thêm", "swipeUpForMore": "Vuốt lên để xem thêm",
"callingTool": "Tôi đang giúp bạn, vui lòng đợi!", // 正在帮您,请稍等! "callingTool": "Tôi đang giúp bạn, vui lòng đợi!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断 "voice_interrupt": "Ngắt", // 语音打断
'voice_interrupt_tip': 'voice_interrupt_tip':
'Khi bật: AI sẽ không bị ngắt bởi giọng nói của bạn khi đang nói và chỉ có thể xử lý một lượt hội thoại. Để bắt đầu lượt mới, chỉ cần nói từ kích hoạt.', 'Khi bật: AI sẽ không bị ngắt bởi giọng nói của bạn khi đang nói và chỉ có thể xử lý một lượt hội thoại. Để bắt đầu lượt mới, chỉ cần nói từ kích hoạt.',

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

@ -1,3 +1,4 @@
//中国-简体中文
const Map<String, String> zhCN = { const Map<String, String> zhCN = {
// 通用 // 通用
'continue': '继续', 'continue': '继续',
@ -1269,15 +1270,15 @@ const Map<String, String> zhCN = {
'iKnow': '我知道了', 'iKnow': '我知道了',
// 配对模块 - 绑定奖励 // 配对模块 - 绑定奖励
"firstBindRewardTitle": "Welcome Reward", "firstBindRewardTitle": "首次绑定奖励",
"firstBindRewardDesc": "You've received binding rewards.", "firstBindRewardDesc": "您已领取绑定奖励。",
"vipLevelLabel": "VIP Level:", "vipLevelLabel": "VIP等级:",
"expiryLabel": "到期时间:", "expiryLabel": "到期时间:",
"notActivated": "未激活", "notActivated": "未激活",
"aiChatCreditsLabel": "AI Chat Credits:", "aiChatCreditsLabel": "AI聊天额度:",
"translationCreditsLabel": "Translation Credits:", "translationCreditsLabel": "翻译额度:",
"meetingCreditsLabel": "Meeting Credits:", "meetingCreditsLabel": "会议额度:",
"ok": "OK", "ok": "确定",
// 用户反馈模块 // 用户反馈模块
"feedback": "用户反馈", "feedback": "用户反馈",

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

@ -1,3 +1,4 @@
//香港-繁体中文
const Map<String, String> zhHK = { const Map<String, String> zhHK = {
// 通用 // 通用
'continue': '繼續', 'continue': '繼續',
@ -1271,14 +1272,14 @@ const Map<String, String> zhHK = {
'iKnow': '我知道了', // 我知道了 'iKnow': '我知道了', // 我知道了
// 配对模块 - 绑定奖励 // 配对模块 - 绑定奖励
"firstBindRewardTitle": 'Welcome Reward', "firstBindRewardTitle": '首次綁定獎勵',
"firstBindRewardDesc": 'You\'ve received binding rewards.', "firstBindRewardDesc": '您已獲得綁定獎勵。',
"vipLevelLabel": 'VIP Level:', "vipLevelLabel": 'VIP 等級:',
"expiryLabel": '到期時間:', "expiryLabel": '到期時間:',
"notActivated": '未啟用', "notActivated": '未啟用',
"aiChatCreditsLabel": 'AI Chat Credits:', "aiChatCreditsLabel": 'AI 聊天額度:',
"translationCreditsLabel": 'Translation Credits:', "translationCreditsLabel": '翻譯額度:',
"meetingCreditsLabel": 'Meeting Credits:', "meetingCreditsLabel": '會議額度:',
"ok": 'OK', "ok": 'OK',
// 用户反馈模块 // 用户反馈模块

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

@ -1,3 +1,4 @@
//台湾-繁体中文
const Map<String, String> zhTW = { const Map<String, String> zhTW = {
// 通用 // 通用
'continue': '繼續', 'continue': '繼續',
@ -1271,14 +1272,14 @@ const Map<String, String> zhTW = {
'iKnow': '我知道了', // 我知道了 'iKnow': '我知道了', // 我知道了
// 配对模块 - 绑定奖励 // 配对模块 - 绑定奖励
"firstBindRewardTitle": 'Welcome Reward', "firstBindRewardTitle": '首次綁定獎勵',
"firstBindRewardDesc": 'You\'ve received binding rewards.', "firstBindRewardDesc": '您已獲得綁定獎勵。',
"vipLevelLabel": 'VIP Level:', "vipLevelLabel": 'VIP 等級:',
"expiryLabel": '到期時間:', "expiryLabel": '到期時間:',
"notActivated": '未啟用', "notActivated": '未啟用',
"aiChatCreditsLabel": 'AI Chat Credits:', "aiChatCreditsLabel": 'AI 聊天額度:',
"translationCreditsLabel": 'Translation Credits:', "translationCreditsLabel": '翻譯額度:',
"meetingCreditsLabel": 'Meeting Credits:', "meetingCreditsLabel": '會議額度:',
"ok": 'OK', "ok": 'OK',
// 用户反馈模块 // 用户反馈模块

41
tools/i18n_audit.py

@ -119,6 +119,47 @@ def _looks_english_sentence(s: str) -> bool:
"disable", "disable",
"check", "check",
"try again", "try again",
"stats",
"threshold",
"cost",
"estimated",
"data volume",
"source text",
"characters",
"duration",
"session",
"history",
"cleanup",
"export",
"available",
"package",
"remaining",
"quota",
"feature description",
"most-used",
"audio",
"file size",
"bytes",
"interrupt",
"reward",
"credits",
"vip",
"expiration",
"membership",
"subscription",
"subscribe",
"purchase",
"buy",
"upgrade",
"yearly",
"monthly",
"template",
"community",
"coming soon",
"comparison",
"detailed",
"information",
"select image source",
] ]
return any(w in s_low for w in common) return any(w in s_low for w in common)

Loading…
Cancel
Save