Browse Source

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

- 为所有语言文件添加区域-语言注释头
- 统一翻译"绑定奖励"相关术语为本地化表达
- 修复德语、西班牙语、法语等语言的翻译不一致问题
- 更新越南语、印尼语、马来语等语言的隐私政策文本
- 扩展i18n审计工具的英语术语识别列表
weicu
lxm 7 months ago
parent
commit
e1ca7edc51
  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 = {
// 通用
'continue': 'متابعة',
@ -1392,15 +1393,15 @@ const Map<String, String> arSA = {
'iKnow': 'أنا أعرف', // 我知道了
// 配对模块 - 绑定奖励
"firstBindRewardTitle": "Welcome Reward",
"firstBindRewardDesc": "You've received binding rewards.",
"vipLevelLabel": "VIP Level:",
"firstBindRewardTitle": "مكافأة الترحيب",
"firstBindRewardDesc": "لقد حصلت على مكافآت الربط.",
"vipLevelLabel": "مستوى VIP:",
"expiryLabel": "تاريخ الانتهاء:",
"notActivated": "غير مفعل",
"aiChatCreditsLabel": "AI Chat Credits:",
"translationCreditsLabel": "Translation Credits:",
"meetingCreditsLabel": "Meeting Credits:",
"ok": "OK",
"aiChatCreditsLabel": "رصيد محادثة الذكاء الاصطناعي:",
"translationCreditsLabel": "رصيد الترجمة:",
"meetingCreditsLabel": "رصيد الاجتماعات:",
"ok": "موافق",
// 用户反馈模块
"feedback": "ملاحظات المستخدم",

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -1,10 +1,11 @@
//西班牙-西班牙语
const Map<String, String> esES = {
// 通用
'continue': 'Continuar',
'confirm': 'Confirmar',
'cancel': 'Cancelar',
'retry': 'Reintentar',
'error': 'Error',
'error': 'Fallo',
'success': 'Éxito',
'connected': 'Conectado',
'connecting': 'Conectando...',
@ -245,7 +246,7 @@ const Map<String, String> esES = {
"costStats": "Cost Stats",
"estimatedCost": "Estimated Cost",
"dailyCostThreshold": "Daily Cost Threshold",
"monthlyCostThreshold": "Monthly Cost Threshold",
"monthlyCostThreshold": "Umbral de costo mensual",
"usageBehaviorStats": "Usage Behavior Stats",
"mostUsedLanguagePair": "Most-used language pair",
"mostUsedMode": "Most-used mode",
@ -308,7 +309,7 @@ const Map<String, String> esES = {
'wechatPayWithAmount': 'WeChat Pay ¥@amount',
'alipayPayWithAmount': 'Alipay ¥@amount',
'paymentStatusTitle': 'Estado del pago',
'errorInfoWithMessage': 'Error: @message',
'errorInfoWithMessage': 'Fallo: @message',
'retest': 'Volver a probar',
'paymentTestInstructionsTitle': 'Instrucciones',
'paymentTestInstructionsContent':
@ -357,7 +358,7 @@ const Map<String, String> esES = {
'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points',
'helpCallAndSMS': 'Help with calls and SMS',
'templatedMessagesAndScheduleReminders':
'Template messages and schedule reminders',
'Mensajes de plantilla y recordatorios programados',
'aiDisclaimer':
'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.',
'multipleExportFormatsDesc':
'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',
'yearlySubscription': 'Yearly Subscription',
'monthlySubscription': 'Monthly Subscription',
'upgradeMembership': 'Actualiza tu membresía',
'yearlySubscription': 'Suscripción anual',
'monthlySubscription': 'Suscripción mensual',
'proMonthly': 'Pro ¥60/month',
'proMonthlyDesc':
'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.',
'proPrice': 'Pro ¥120',
'proMonthlyPrice': '¥120/month',
'subscribe': 'Subscribe',
'subscribe': 'Suscribirse',
'unlimitedPrice': 'Unlimited ¥198',
'unlimitedMonthlyPrice': '¥198/month',
'upgradeNote':
'*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account',
'buyMoreTranscriptionTime': 'Buy More Transcription Time',
'*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': 'Comprar más tiempo de transcripción',
'sixThousandMinutes': '6,000 minutes',
'threeThousandMinutes': '3,000 minutes',
'sixHundredMinutes': '600 minutes',
'oneHundredTwentyMinutes': '120 minutes',
'validityPeriod': '*Validity Period: ',
'validityNote':
'Activated immediately after purchase, valid for 2 years after activation.',
'purchase': 'Purchase',
'Se activa inmediatamente tras la compra, válido durante 2 años después de la activación.',
'purchase': 'Comprar',
// Meeting模块 - 录音语言
'recordLanguage': 'Idioma de grabación',
@ -859,7 +860,7 @@ const Map<String, String> esES = {
"loadFailedClickRetry": "Carga fallida, haz clic para reintentar",
"swipeUpForMore": "Desliza hacia arriba para más",
"callingTool": "Estoy ayudándote, por favor espera.", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断
"voice_interrupt": "Interrumpir", // 语音打断
'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.',
@ -1438,14 +1439,14 @@ const Map<String, String> esES = {
'iKnow': 'Entendido', // 我知道了
// 配对模块 - 绑定奖励
"firstBindRewardTitle": "Welcome Reward",
"firstBindRewardDesc": "You've received binding rewards.",
"vipLevelLabel": "VIP Level:",
"expiryLabel": "Expiration:",
"notActivated": "Not activated",
"aiChatCreditsLabel": "AI Chat Credits:",
"translationCreditsLabel": "Translation Credits:",
"meetingCreditsLabel": "Meeting Credits:",
"firstBindRewardTitle": "Recompensa de bienvenida",
"firstBindRewardDesc": "Has recibido recompensas por vinculación.",
"vipLevelLabel": "Nivel VIP:",
"expiryLabel": "Caducidad:",
"notActivated": "No activado",
"aiChatCreditsLabel": "Créditos de chat de IA:",
"translationCreditsLabel": "Créditos de traducción:",
"meetingCreditsLabel": "Créditos de reuniones:",
"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 = {
// 通用
'continue': 'ادامه',
@ -21,8 +22,8 @@ const Map<String, String> faIR = {
"justNow": "همین الان",
"minutesAgo": "@minutes دقیقه پیش",
"yesterday": "دیروز",
"daysAgo": "@days days ago",
"hoursAgo": "@hours hours ago",
"daysAgo": "@days روز پیش",
"hoursAgo": "@hours ساعت پیش",
// 启动页
"slogan": "دنیا را متصل کن، فراتر از صدا",
@ -1073,33 +1074,32 @@ const Map<String, String> faIR = {
"openingPhotoAlbum": "در حال باز کردن آلبوم عکس...",
"cancelled": "لغو شد",
"userCancelledSelection": "کاربر انتخاب را لغو کرد",
"translatingImage": "Translating Image",
"callingImageTranslateService": "Calling image translation service...",
"savingRecord": "Saving Record",
"savingTranslationResult": "Saving translation result...",
"translationCompleted": "Translation Completed",
"allStepsCompleted": "All steps completed",
"processingFailed": "Processing Failed",
"translatingImage": "در حال ترجمه تصویر",
"callingImageTranslateService": "در حال فراخوانی سرویس ترجمه تصویر...",
"savingRecord": "در حال ذخیره رکورد",
"savingTranslationResult": "در حال ذخیره نتیجه ترجمه...",
"translationCompleted": "ترجمه تکمیل شد",
"allStepsCompleted": "تمام مراحل تکمیل شد",
"processingFailed": "پردازش ناموفق بود",
"imageProcessingOrTranslationFailed":
"Image processing or translation failed. Please retry.\nError: {error}",
"imageTooLarge": "Image size exceeds 4MB limit",
"پردازش تصویر یا ترجمه ناموفق بود. لطفاً دوباره تلاش کنید.\nخطا: {error}",
"imageTooLarge": "حجم تصویر از محدودیت ۴ مگابایت بیشتر است",
"imageTooLargeHint":
"Image size exceeds 4MB. Reduce quality or dimensions and retry",
"emptyTranslationResult": "Image translation API returned empty result",
"حجم تصویر از ۴ مگابایت بیشتر است. کیفیت یا ابعاد را کاهش دهید و دوباره تلاش کنید",
"emptyTranslationResult": "API ترجمه تصویر نتیجه‌ای خالی برگرداند",
"imageTranslationFailedTryLater":
"Image translation failed. Network issue or rate limit. Please try later",
"ترجمه تصویر ناموفق بود. مشکل شبکه یا محدودیت نرخ. لطفاً بعداً تلاش کنید",
"imageTranslationApiException":
"Image translation API exception. Check network and retry",
"permissionRequired": "Permission Required",
"cameraPermissionRequired": "Camera permission required to take photos",
"photoAlbumPermissionRequired":
"Photo album permission required to pick images",
"translationDetails": "Translation Details",
"originalImage": "Original Image",
"sourceLanguage": "Source Language",
"targetLanguage": "Target Language",
"translationTime": "Translation Time",
"shareInDevelopment": "Sharing feature under development",
"استثنای API ترجمه تصویر. شبکه را بررسی کنید و دوباره تلاش کنید",
"permissionRequired": "نیاز به مجوز",
"cameraPermissionRequired": "برای گرفتن عکس، مجوز دوربین لازم است",
"photoAlbumPermissionRequired": "برای انتخاب تصویر، مجوز آلبوم عکس لازم است",
"translationDetails": "جزئیات ترجمه",
"originalImage": "تصویر اصلی",
"sourceLanguage": "زبان مبدأ",
"targetLanguage": "زبان مقصد",
"translationTime": "زمان ترجمه",
"shareInDevelopment": "قابلیت اشتراک‌گذاری در حال توسعه است",
// 翻译模块 - 录音文件
"translateAudioFiles": "ترجمه فایل‌های صوتی",
@ -1279,7 +1279,7 @@ const Map<String, String> faIR = {
'bluetoothConnectPermanentDenial':
'مجوز اتصال بلوتوث برای همیشه رد شده است، لطفاً برای فعال کردن آن به صورت دستی به تنظیمات بروید.',
'locationPermanentDenial':
'Location permission has been permanently denied, please go to settings to enable it manually.',
'مجوز موقعیت مکانی برای همیشه رد شده است، لطفاً برای فعال کردن آن به صورت دستی به تنظیمات بروید.',
'notificationPermission': 'اعلان',
'locationPermission': 'موقعیت مکانی',
'notificationPermissionExplanation':
@ -1406,14 +1406,14 @@ const Map<String, String> faIR = {
'iKnow': 'متوجه شدم', // 我知道了
// 配对模块 - 绑定奖励
"firstBindRewardTitle": "Welcome Reward",
"firstBindRewardDesc": "You've received binding rewards.",
"vipLevelLabel": "VIP Level:",
"expiryLabel": "Expiration:",
"notActivated": "Not activated",
"aiChatCreditsLabel": "AI Chat Credits:",
"translationCreditsLabel": "Translation Credits:",
"meetingCreditsLabel": "Meeting Credits:",
"firstBindRewardTitle": "مباحث ویژه",
"firstBindRewardDesc": "شما به جای награدهای معمولی دریافت خواهید کرد.",
"vipLevelLabel": "VIP سطح:",
"expiryLabel": "تTL:",
"notActivated": "نامفعال",
"aiChatCreditsLabel": "اعتبار چت AI:",
"translationCreditsLabel": "اعتبار ترجمه:",
"meetingCreditsLabel": "مباحث:",
"ok": "OK",
// 用户反馈模块
@ -1443,13 +1443,14 @@ const Map<String, String> faIR = {
"connectionFailed": "اتصال ناموفق",
"retryConnection": "تلاش مجدد برای اتصال",
"ota_updateNow": "اکنون به‌روزرسانی کن",
"otaVersionInfoFailed": "Failed to get version info. Please try again later.",
"otaVersionInfoFailed":
"دریافت اطلاعات نسخه ناموفق بود. لطفاً بعداً دوباره تلاش کنید.",
"otaDeviceInfoUnavailable":
"Unable to get device info. Please check the connection and retry.",
"امکان دریافت اطلاعات دستگاه نیست. لطفاً اتصال را بررسی کرده و دوباره تلاش کنید.",
"otaProductInfoUnavailable":
"Unable to identify the device. Please reconnect and retry.",
"شناسایی دستگاه ممکن نیست. لطفاً دوباره وصل کنید و تلاش کنید.",
"otaFirmwareVersionInvalid":
"Firmware version is abnormal. Please reconnect and retry.",
"نسخه سفت‌افزار غیرعادی است. لطفاً دوباره وصل کنید و تلاش کنید.",
"keepConnectedDontClose": "لطفاً دستگاه را متصل نگه دارید، برنامه را نبندید",
"doNotDisconnect": "اتصال را قطع نکنید",
"charging": "در حال شارژ",
@ -1458,57 +1459,57 @@ const Map<String, String> faIR = {
"هر دو ایرباد را بردارید و اطمینان حاصل کنید که سطح باتری بالای ۲۰٪ است",
// OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': 'New version @version found',
'otaConfirmUpdateNow': 'Update now?',
'otaUpdate': 'Update',
'otaUpgradeSuccess': 'Upgrade Successful',
'otaNewVersionFoundWithVersion': 'نسخه جدید @version پیدا شد',
'otaConfirmUpdateNow': 'اکنون به‌روزرسانی شود؟',
'otaUpdate': 'به‌روزرسانی',
'otaUpgradeSuccess': 'ارتقا با موفقیت انجام شد',
'otaUpgradeCompleteRepair':
'Firmware upgrade complete!\n\nDevice needs to be re-paired to work properly. Go to pairing page now?',
'otaPairLater': 'Pair Later',
'otaPairNow': 'Pair Now',
'ارتقای سفت‌افزار کامل شد!\n\nبرای عملکرد صحیح، دستگاه باید دوباره جفت شود. اکنون به صفحه جفت‌سازی بروید؟',
'otaPairLater': 'بعداً جفت شود',
'otaPairNow': 'اکنون جفت شود',
'okConfirm': 'OK',
// OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'Error checking BLE connection: @error',
'otaBleNotConnected': 'BLE Device Not Connected',
'otaBleCheckErrorWithError': 'خطا در بررسی اتصال BLE: @error',
'otaBleNotConnected': 'دستگاه BLE متصل نیست',
'otaBleNeedConnection':
'Firmware upgrade requires BLE device connection\nPlease ensure device is properly connected and try again',
'otaDeviceInfoUnavailableTitle': 'Device Info Unavailable',
'ارتقای سفت‌افزار به اتصال دستگاه BLE نیاز دارد\nلطفاً مطمئن شوید دستگاه به درستی متصل است و دوباره تلاش کنید',
'otaDeviceInfoUnavailableTitle': 'اطلاعات دستگاه در دسترس نیست',
'otaCannotGetDeviceInfo':
'Cannot get device info\nPlease reconnect device or try again later',
'otaBleCheckFailed': 'BLE Connection Check Failed',
'امکان دریافت اطلاعات دستگاه نیست\nلطفاً دستگاه را دوباره متصل کنید یا بعداً تلاش کنید',
'otaBleCheckFailed': 'بررسی اتصال BLE ناموفق بود',
'otaCannotGetDeviceInfoCheckConnection':
'Cannot get device info, please check device connection',
'امکان دریافت اطلاعات دستگاه نیست، لطفاً اتصال دستگاه را بررسی کنید',
'otaCannotGetProductInfoWithName':
'Cannot get product info, device name: @deviceName',
'otaCannotGetBatteryInfo': 'Cannot get valid battery info',
'otaLowBattery': 'Low Battery',
'امکان دریافت اطلاعات محصول نیست، نام دستگاه: @deviceName',
'otaCannotGetBatteryInfo': 'امکان دریافت اطلاعات معتبر باتری نیست',
'otaLowBattery': 'باتری کم',
'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':
'Device battery too low for firmware upgrade\nRequirement: both earbuds must be above 20%\nCurrent: Left @left%, Right @right%\nPlease charge and try again',
'otaBatteryCheckFailed': 'Battery Check Failed',
'باتری دستگاه برای ارتقای سفت‌افزار خیلی کم است\nشرط: هر دو ایرباد باید بالای ۲۰٪ باشند\nفعلی: چپ @left٪، راست @right٪\nلطفاً شارژ کنید و دوباره تلاش کنید',
'otaBatteryCheckFailed': 'بررسی باتری ناموفق بود',
// OTA升级模块 - 升级状态
'otaDefaultUpdateDesc':
'This update includes performance optimizations and bug fixes.',
'otaGetLatestVersionFailed': 'Failed to get latest version info',
'otaGetVersionInfoFailed': 'Failed to get version info',
'otaCheckingDeviceStatus': 'Checking device status...',
'این به‌روزرسانی شامل بهینه‌سازی عملکرد و رفع باگ‌هاست.',
'otaGetLatestVersionFailed': 'دریافت اطلاعات آخرین نسخه ناموفق بود',
'otaGetVersionInfoFailed': 'دریافت اطلاعات نسخه ناموفق بود',
'otaCheckingDeviceStatus': 'در حال بررسی وضعیت دستگاه...',
'otaDownloadFailedCheckNetwork':
'Download failed, please check network connection',
'otaDownloadFailed': 'Download Failed',
'otaPreparingConnection': 'Preparing device connection...',
'otaConnectingDevice': 'Connecting to device...',
'otaUpgradeStarted': 'OTA upgrade started...',
'otaUpgradeProgressWithPercent': 'Upgrade progress: @percent%',
'otaUpgradeSuccessComplete': 'Upgrade completed successfully',
'otaUpgradeFailedWithCode': 'Upgrade failed, error code: @code',
'otaUpgradeFailedTitle': 'Upgrade Failed',
'دانلود ناموفق بود، لطفاً اتصال شبکه را بررسی کنید',
'otaDownloadFailed': 'دانلود ناموفق بود',
'otaPreparingConnection': 'در حال آماده‌سازی اتصال دستگاه...',
'otaConnectingDevice': 'در حال اتصال به دستگاه...',
'otaUpgradeStarted': 'ارتقای OTA آغاز شد...',
'otaUpgradeProgressWithPercent': 'پیشرفت ارتقا: @percent٪',
'otaUpgradeSuccessComplete': 'ارتقا با موفقیت تکمیل شد',
'otaUpgradeFailedWithCode': 'ارتقا ناموفق بود، کد خطا: @code',
'otaUpgradeFailedTitle': 'ارتقا ناموفق بود',
'otaUpgradeFailedDesc':
'Please check device connection or update package, error code: @code',
'otaDeviceDisconnected': 'Device disconnected',
'otaDeviceConnected': 'Device connected',
'لطفاً اتصال دستگاه یا بسته به‌روزرسانی را بررسی کنید، کد خطا: @code',
'otaDeviceDisconnected': 'دستگاه قطع شد',
'otaDeviceConnected': 'دستگاه متصل شد',
// 音乐模块
"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 = {
// 通用
'continue': 'Continuer',
@ -871,7 +872,7 @@ const Map<String, String> frFR = {
"loadFailedClickRetry": "Échec du chargement, cliquer pour réessayer",
"swipeUpForMore": "Glisser vers le haut pour plus",
"callingTool": "Je vous aide, veuillez patienter…", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断
"voice_interrupt": "Interrompre", // 语音打断
'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.",
@ -1456,14 +1457,14 @@ const Map<String, String> frFR = {
'iKnow': 'Je comprends', // 我知道了
// 配对模块 - 绑定奖励
"firstBindRewardTitle": "Welcome Reward",
"firstBindRewardDesc": "You've received binding rewards.",
"vipLevelLabel": "VIP Level:",
"expiryLabel": "Expiration:",
"notActivated": "Not activated",
"aiChatCreditsLabel": "AI Chat Credits:",
"translationCreditsLabel": "Translation Credits:",
"meetingCreditsLabel": "Meeting Credits:",
"firstBindRewardTitle": "Bienvenue Récompense",
"firstBindRewardDesc": "Vous avez reçu des récompenses de liaison.",
"vipLevelLabel": "Niveau VIP:",
"expiryLabel": "Date d'expiration :",
"notActivated": "Non activé",
"aiChatCreditsLabel": "Crédits de chat AI:",
"translationCreditsLabel": "Crédits de traduction :",
"meetingCreditsLabel": "Crédits de réunion:",
"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 = {
// 通用
'continue': 'Lanjutkan',
@ -855,21 +856,21 @@ const Map<String, String> idID = {
"loadFailedClickRetry": "Gagal memuat, klik untuk mencoba lagi",
"swipeUpForMore": "Geser ke atas untuk lebih banyak",
"callingTool": "Saya sedang membantu Anda, harap tunggu!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断
"voice_interrupt": "Interupsi", // 语音打断
'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.',
// Agent模块 - 预设提示词
"presetMusic": "Play some music", // 来点音乐
"presetNavigation": "Navigation to", // 导航
"presetWeather": "Today's weather", // 今日天气
"presetNews": "Today's news", // 今日新闻
"presetFood": "Nearby food", // 美食
"playSomeMusic": "Play some popular music", // 播放一些流行音乐
"presetMusic": "Putar musik", // 来点音乐
"presetNavigation": "Navigasi ke", // 导航
"presetWeather": "Cuaca hari ini", // 今日天气
"presetNews": "Berita hari ini", // 今日新闻
"presetFood": "Makanan di dekat sini", // 美食
"playSomeMusic": "Putar musik populer", // 播放一些流行音乐
"navigationTo": "Tolong bantu saya menavigasi ke", // 导航到
"todayWeather": "How's the weather today?", // 今日天气
"todayNews": "What's the news today?", // 今日新闻
"nearbyFood": "What delicious food is nearby?", // 美食
"todayWeather": "Bagaimana cuaca hari ini?", // 今日天气
"todayNews": "Apa berita hari ini?", // 今日新闻
"nearbyFood": "Makanan enak apa yang ada di dekat sini?", // 美食
// Agent模块 - 欢迎消息与权限
'welcomeMessage': 'Halo! Saya **Lily**, saya bisa membantu Anda:\n\n'
@ -1419,14 +1420,14 @@ const Map<String, String> idID = {
'iKnow': 'Saya Mengerti', // 我知道了
// 配对模块 - 绑定奖励
"firstBindRewardTitle": "Welcome Reward",
"firstBindRewardDesc": "You've received binding rewards.",
"vipLevelLabel": "VIP Level:",
"expiryLabel": "Expiration:",
"notActivated": "Not activated",
"aiChatCreditsLabel": "AI Chat Credits:",
"translationCreditsLabel": "Translation Credits:",
"meetingCreditsLabel": "Meeting Credits:",
"firstBindRewardTitle": "Pembelian Terlebih Dahulu",
"firstBindRewardDesc": "Anda telah menerima premi binding.",
"vipLevelLabel": "Level VIP:",
"expiryLabel": "Kedaluwarsa:",
"notActivated": "Belum diaktifkan",
"aiChatCreditsLabel": "Kredit Chat AI:",
"translationCreditsLabel": "Kredit Terjemahan:",
"meetingCreditsLabel": "Kredit Meeting:",
"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 = {
// 通用
'continue': '계속',
@ -240,8 +241,7 @@ const Map<String, String> koKR = {
"audioFileSize": "오디오 파일 크기",
"transcriptBytes": "전사 바이트 수",
"loadFailed": "로드 실패",
"statsLoadFailedTryLater":
"통계를 불러오지 못했습니다. 나중에 다시 시도해 주세요.",
"statsLoadFailedTryLater": "통계를 불러오지 못했습니다. 나중에 다시 시도해 주세요.",
"cleanupComplete": "정리 완료",
"cleanedOldData": "90일 이전 데이터를 정리했습니다",
"exportFeature": "내보내기 기능",
@ -309,11 +309,9 @@ const Map<String, String> koKR = {
'cannotLaunchAlipayPayment': 'Alipay를 실행할 수 없습니다',
'alipayPaymentException': 'Alipay 예외',
"insufficientIntegral": "포인트 부족",
"insufficientBalanceDesc":
'잔액이 부족합니다. 해당 충전 페이지에서 충전해 주세요.',
"insufficientBalanceDesc": '잔액이 부족합니다. 해당 충전 페이지에서 충전해 주세요.',
"recharge": '충전하러 가기',
"aiMemberExpiredDesc":
'AI 멤버십이 만료되었습니다. 멤버십 충전 페이지에서 갱신해 주세요.',
"aiMemberExpiredDesc": 'AI 멤버십이 만료되었습니다. 멤버십 충전 페이지에서 갱신해 주세요.',
// 商品模块 - AI商品页
'musicAndRecommendation': '음악 및 추천',
@ -321,15 +319,11 @@ const Map<String, String> koKR = {
'nearbySearch': '주변 검색',
'newsInformation': '뉴스',
'communicationAssistant': '커뮤니케이션 어시스턴트',
'aiHeaderDesc1':
'더 긴 대화 한도, 더 많은 도구 호출, 확장된 컨텍스트 길이.',
'aiHeaderDesc2':
'에이전트 Q&A, 요약, 분석 및 작업 실행에 적합합니다.',
'aiHeaderDesc1': '더 긴 대화 한도, 더 많은 도구 호출, 확장된 컨텍스트 길이.',
'aiHeaderDesc2': '에이전트 Q&A, 요약, 분석 및 작업 실행에 적합합니다.',
'musicSearchPlaybackControl': '음악 라이브러리 검색 및 재생 제어',
'smartPlaylistAndSimilarRecommendations':
'스마트 재생목록 및 유사 곡 추천',
'routePlanningAndCongestionAvoidance':
'경로 계획 및 정체 구간 우회',
'smartPlaylistAndSimilarRecommendations': '스마트 재생목록 및 유사 곡 추천',
'routePlanningAndCongestionAvoidance': '경로 계획 및 정체 구간 우회',
'voiceBroadcastAndWaypoints': '음성 안내 및 경유지 설정',
'realTimeWeatherForecast': '실시간 날씨 및 예보',
'clothingAdviceAndTravelReminders': '의류 조언 및 여행 알림',
@ -338,10 +332,8 @@ const Map<String, String> koKR = {
'hotNewsAndTopicOverview': '인기 뉴스 및 주제 개요',
'longArticleSummariesAndKeyPoints': '긴 기사 요약 및 핵심 포인트',
'helpCallAndSMS': '전화 및 문자 도움',
'templatedMessagesAndScheduleReminders':
'템플릿 메시지 및 일정 알림',
'aiDisclaimer':
'기능은 기기 권한, 서비스 가용성 및 네트워크 상태에 따라 달라집니다.',
'templatedMessagesAndScheduleReminders': '템플릿 메시지 및 일정 알림',
'aiDisclaimer': '기능은 기기 권한, 서비스 가용성 및 네트워크 상태에 따라 달라집니다.',
// 商品模块 - 翻译商品页
'realtimeTranscription': '실시간 받아쓰기',
@ -364,10 +356,8 @@ const Map<String, String> koKR = {
'transcriptionAndSummary': '전사 및 요약',
'keywordSearch': '키워드 검색',
'collaborationSharing': '협업 및 공유',
'meetingHeaderDesc1':
'오디오 녹음, 전사, 키워드 검색 및 자동 요약.',
'meetingHeaderDesc2':
'비즈니스 회의, 수업 필기 및 인터뷰 회의록에 적합합니다.',
'meetingHeaderDesc1': '오디오 녹음, 전사, 키워드 검색 및 자동 요약.',
'meetingHeaderDesc2': '비즈니스 회의, 수업 필기 및 인터뷰 회의록에 적합합니다.',
'meetingAutoRecording': '자동 녹음 및 분할',
'meetingSpeakerTagging': '발언자 태깅',
'meetingLongAudioTranscription': '장시간 오디오 전사',
@ -376,8 +366,7 @@ const Map<String, String> koKR = {
'meetingTimelineJump': '타임라인 이동',
'meetingExportSummary': '회의록 내보내기',
'meetingMultiPlatformShare': '멀티 플랫폼 공유',
'meetingDisclaimer':
'조용한 환경에서 사용하세요. 성능은 마이크와 네트워크에 따라 달라집니다.',
'meetingDisclaimer': '조용한 환경에서 사용하세요. 성능은 마이크와 네트워크에 따라 달라집니다.',
// 商品模块 - VIP会员页
'benefitsOverview': '혜택 개요',
@ -442,8 +431,7 @@ const Map<String, String> koKR = {
'guideNavInput': "선전 공항으로 안내해줘",
'guideNavSend': "Lily가 경로를 계획할 거예요",
'guideNavEnd': "내비게이션이 설정되었어요—다른 명령도 시도해 보세요",
'guideMeetingStart':
"Lily에게 말하세요: “내일 오후 3시 회의 알림 만들어줘”",
'guideMeetingStart': "Lily에게 말하세요: “내일 오후 3시 회의 알림 만들어줘”",
'guideMeetingInput': "내일 오후 3시 회의 알림 만들어줘",
'guideMeetingSend': "Lily가 회의 알림을 만들어드릴 거예요",
'guideMeetingEnd': "알림이 생성되었어요—다른 명령도 시도해 보세요",
@ -491,8 +479,7 @@ const Map<String, String> koKR = {
'downloadingFiles': '파일 다운로드 중...',
'downloadingFileProgress': '총 {total}개 파일 중 {current}번째 다운로드 중',
'downloadComplete': '다운로드 완료',
'downloadCompleteInfo':
'다운로드 완료, 총 {count}개 파일, 2초 후 자동으로 돌아갑니다',
'downloadCompleteInfo': '다운로드 완료, 총 {count}개 파일, 2초 후 자동으로 돌아갑니다',
// Meeting模块 - 录音功能
'startRecording': '녹음 시작',
@ -563,8 +550,7 @@ const Map<String, String> koKR = {
'chineseSimplified': '중국어 보통화(간체)',
'meetingGenerateNow': '지금 생성',
'keyEventsAnalyzed': '{count}개의 주요 이벤트를 분석했습니다.',
'aiAnalysisDesc':
'AI 분석으로 녹음에서 주요 이벤트를 식별하고, 중요한 이벤트를 선택하여 AI로 생성할 수 있습니다.',
'aiAnalysisDesc': 'AI 분석으로 녹음에서 주요 이벤트를 식별하고, 중요한 이벤트를 선택하여 AI로 생성할 수 있습니다.',
// Meeting模块 - 文件操作
'importing': '가져오는 중...',
@ -611,8 +597,7 @@ const Map<String, String> koKR = {
'recentlyUsedNames': '최근 사용한 이름',
'applyToCurrentParagraph': '현재 문단에 적용',
'totalTime': '총 시간',
'summarySpeakerWillBeUpdatedAutomatically':
'요약의 발언자가 자동으로 업데이트됩니다',
'summarySpeakerWillBeUpdatedAutomatically': '요약의 발언자가 자동으로 업데이트됩니다',
// Meeting模块 - 云端同步
'syncToCloud': '클라우드에 동기화',
@ -655,52 +640,44 @@ const Map<String, String> koKR = {
'audioImport': '오디오 가져오기',
'multipleExportFormats': '다양한 내보내기 형식',
'professionalSummaryTemplates': '전문 요약 템플릿',
'professionalTemplateDesc':
'업무 효율성을 높이는 전문 템플릿 디자인. 업종별 요구에 맞춰 맞춤 제작됩니다.',
'customTemplateDesc':
'필요에 따라 요약 프롬프트를 맞춤 설정하고, 이를 사용하여 필요한 요약을 생성할 수 있습니다.',
'professionalTemplateDesc': '업무 효율성을 높이는 전문 템플릿 디자인. 업종별 요구에 맞춰 맞춤 제작됩니다.',
'customTemplateDesc': '필요에 따라 요약 프롬프트를 맞춤 설정하고, 이를 사용하여 필요한 요약을 생성할 수 있습니다.',
'askAiDesc':
'녹음에서 심층 정보를 지능적으로 추출하고, 데이터 표, 주요 논의 결론, 할 일 목록, 보고서 이메일 등 서식화된 콘텐츠를 원클릭으로 생성합니다.',
'visualMindMapDesc':
'요약을 넘어서 마인드맵으로 핵심 사항을 정리하고 시각화하여 전체 내용을 더 효과적으로 이해할 수 있습니다.',
'templateCommunityDesc':
'사용자들이 만든 템플릿 라이브러리에서 영감을 발견하고 공유하세요.',
'templateCommunityDesc': '사용자들이 만든 템플릿 라이브러리에서 영감을 발견하고 공유하세요.',
'speakerIdentificationDesc':
'오디오 전사에서 발언자 식별을 지원하여 회의 또는 통화 내용을 더 직관적으로 복원합니다. 동시에 요약의 정확도도 향상됩니다.',
'privateCloudSyncDesc':
'녹음과 전사 내용이 전용 클라우드 서버에 안전하게 저장되며, 업로드 및 다운로드 시 완전히 암호화되어 개인정보와 보안을 보장합니다.',
'aiVoiceEnhancementDesc':
'AI 음성 향상은 다양한 노이즈 감소 설정을 지원하여 배경 소음을 지능적으로 제거하고, 음성 선명도를 높이며, 오디오 재생 품질을 향상시킵니다.',
'audioImportDesc':
'음성 메모, Google 드라이브 등 로컬 또는 타사 앱에서 오디오 파일을 쉽게 가져올 수 있습니다.',
'audioImportDesc': '음성 메모, Google 드라이브 등 로컬 또는 타사 앱에서 오디오 파일을 쉽게 가져올 수 있습니다.',
'multipleExportFormatsDesc':
'오디오 녹음, 전사 텍스트 및 요약을 다양한 형식(TXT, PDF, JPEG)으로 내보내 필요에 맞게 활용하세요.',
'upgradeMembership': '멤버십 업그레이드',
'yearlySubscription': '연간 구독',
'monthlySubscription': '월간 구독',
'proMonthly': 'Pro ¥60/월',
'proMonthlyDesc':
'7일 무료 체험 후 ¥800/년. 체험 기간 종료 전 언제든지 취소 가능.',
'proMonthlyDesc': '7일 무료 체험 후 ¥800/년. 체험 기간 종료 전 언제든지 취소 가능.',
'sevenDayTrial': '7일 무료 체험',
'unlimitedMonthly': 'Unlimited ¥120/월',
'unlimitedMonthlyDesc':
'7일 무료 체험 후 ¥1600/년. 체험 기간 종료 전 언제든지 취소 가능.',
'unlimitedMonthlyDesc': '7일 무료 체험 후 ¥1600/년. 체험 기간 종료 전 언제든지 취소 가능.',
'trialNote': '*7일 무료 체험 후 연간 결제, 언제든지 취소 가능.',
'proPrice': 'Pro ¥120',
'proMonthlyPrice': '¥120/월',
'subscribe': '구독',
'unlimitedPrice': 'Unlimited ¥198',
'unlimitedMonthlyPrice': '¥198/월',
'upgradeNote':
'*구독 업그레이드 시, 기존 구독의 잔여 기간이 자동으로 계산되어 결제 계정으로 환불됩니다',
'upgradeNote': '*구독 업그레이드 시, 기존 구독의 잔여 기간이 자동으로 계산되어 결제 계정으로 환불됩니다',
'buyMoreTranscriptionTime': '전사 시간 추가 구매',
'sixThousandMinutes': '6,000분',
'threeThousandMinutes': '3,000분',
'sixHundredMinutes': '600분',
'oneHundredTwentyMinutes': '120분',
'validityPeriod': '*유효 기간: ',
'validityNote':
'구매 후 즉시 활성화되며, 활성화 후 2년간 유효합니다.',
'validityNote': '구매 후 즉시 활성화되며, 활성화 후 2년간 유효합니다.',
'purchase': '구매',
// Meeting模块 - 录音语言
@ -733,8 +710,7 @@ const Map<String, String> koKR = {
"cloudSync": "클라우드 동기화료",
"memberService": "멤버 서비스",
"bindRewardTitle": "리워드",
"bindRewardSimpleDesc":
"첫 기기 연결 보상이 지급되었습니다. 확인을 탭하여 닫으세요.",
"bindRewardSimpleDesc": "첫 기기 연결 보상이 지급되었습니다. 확인을 탭하여 닫으세요.",
"joinDevice": "연결된 기기:",
"accountId": "계정 ID:",
"systemSetting": "시스템 설정",
@ -791,8 +767,7 @@ const Map<String, String> koKR = {
"noMacAddress": "MAC 주소 없음",
"licenseCode": "라이선스 코드",
"confirmUnbind": "연결 해제 확인",
"confirmUnbindMessage":
"\"{deviceName}\" 기기의 연결을 해제하시겠습니까?",
"confirmUnbindMessage": "\"{deviceName}\" 기기의 연결을 해제하시겠습니까?",
"confirmUnbindAction": "연결 해제 확인",
// Agent模块 - 主界面
@ -983,8 +958,7 @@ const Map<String, String> koKR = {
"selectTargetLanguage": "대상 언어 선택",
"me": "나",
"counterPart": "상대방",
"bluetoothCallStateError":
"블루투스 헤드셋이 휴대폰에 연결되어 있고 통화 중인지 확인해 주세요",
"bluetoothCallStateError": "블루투스 헤드셋이 휴대폰에 연결되어 있고 통화 중인지 확인해 주세요",
"autoDetect": "자동 감지", // 自动检测
// 翻译模块 - 悬浮窗与权限
@ -1046,17 +1020,14 @@ const Map<String, String> koKR = {
"imageProcessingOrTranslationFailed":
"이미지 처리 또는 번역에 실패했습니다. 다시 시도해 주세요.\nError: {error}",
"imageTooLarge": "이미지 크기가 4MB 제한을 초과합니다",
"imageTooLargeHint":
"이미지 크기가 4MB를 초과합니다. 품질이나 크기를 줄인 후 다시 시도해 주세요",
"imageTooLargeHint": "이미지 크기가 4MB를 초과합니다. 품질이나 크기를 줄인 후 다시 시도해 주세요",
"emptyTranslationResult": "이미지 번역 API가 빈 결과를 반환했습니다",
"imageTranslationFailedTryLater":
"이미지 번역 실패. 네트워크 문제 또는 요청 제한입니다. 나중에 다시 시도해 주세요",
"imageTranslationApiException":
"이미지 번역 API 예외. 네트워크를 확인하고 다시 시도해 주세요",
"imageTranslationApiException": "이미지 번역 API 예외. 네트워크를 확인하고 다시 시도해 주세요",
"permissionRequired": "권한 필요",
"cameraPermissionRequired": "사진 촬영에는 카메라 권한이 필요합니다",
"photoAlbumPermissionRequired":
"이미지를 선택하려면 사진 앨범 권한이 필요합니다",
"photoAlbumPermissionRequired": "이미지를 선택하려면 사진 앨범 권한이 필요합니다",
"translationDetails": "번역 상세",
"originalImage": "원본 이미지",
"sourceLanguage": "원본 언어",
@ -1145,8 +1116,7 @@ const Map<String, String> koKR = {
// 权限模块
'meetingStoragePermission': '저장소',
'meetingStoragePermissionExplanation':
'오디오 파일을 선택하고 업로드하려면 저장소 권한이 필요합니다.',
'meetingStoragePermissionExplanation': '오디오 파일을 선택하고 업로드하려면 저장소 권한이 필요합니다.',
'meetingStoragePermissionPermanentDenial':
'저장소 권한을 영구적으로 거부하셨습니다. 이 기능을 계속 사용하려면 앱 설정에서 저장소 권한을 수동으로 활성화해 주세요.',
'getPermissionStatusFailed': '권한 상태 가져오기 실패',
@ -1168,8 +1138,7 @@ const Map<String, String> koKR = {
'locationInfo': '위치 정보',
'phonePermissionDesc': '전화 걸기 기능에 사용됩니다',
'smsPermissionDesc': '문자 보내기 기능에 사용됩니다',
'alarmPermissionDesc':
'정확한 알람을 설정하여 알림이 정시에 울리도록 하는 데 사용됩니다',
'alarmPermissionDesc': '정확한 알람을 설정하여 알림이 정시에 울리도록 하는 데 사용됩니다',
'calendarWritePermissionDesc': '캘린더 이벤트 및 알림 생성에 사용됩니다',
'calendarFullAccessPermissionDesc': '캘린더 이벤트 및 알림 읽기 및 관리에 사용됩니다',
'locationPermissionDesc': '현재 위치 정보 가져오기에 사용됩니다',
@ -1183,59 +1152,43 @@ const Map<String, String> koKR = {
'permissionRequestError': '권한 요청 중 오류 발생',
'phonePermissionDetailDesc': '전화 걸기 기능에는 전화 권한이 필요합니다',
'smsPermissionDetailDesc': '문자 보내기 기능에는 문자 권한이 필요합니다',
'alarmPermissionDetailDesc':
'정확한 알람을 설정하고 알림이 정시에 울리도록 하려면 이 권한이 필요합니다',
'alarmPermissionDetailDesc': '정확한 알람을 설정하고 알림이 정시에 울리도록 하려면 이 권한이 필요합니다',
'calendarWritePermissionDetailDesc': '캘린더 이벤트 생성에는 캘린더 쓰기 권한이 필요합니다',
'calendarFullAccessPermissionDetailDesc': '캘린더 이벤트 관리에는 전체 캘린더 권한이 필요합니다',
'locationPermissionDetailDesc': '위치 정보 가져오기에는 위치 권한이 필요합니다',
'contactsPermissionDesc': '연락처 정보에 접근하는 데 사용됩니다',
'contactsPermissionDetailDesc':
'전화 및 문자 기능에는 연락처를 선택하기 위해 연락처 권한이 필요합니다',
'bluetoothPermissionDesc':
'블루투스 기기 연결 및 관리에 사용됩니다',
'bluetoothPermissionDetailDesc':
'블루투스 헤드폰 및 기타 기기에 연결하려면 블루투스 권한이 필요합니다',
'contactsPermissionDetailDesc': '전화 및 문자 기능에는 연락처를 선택하기 위해 연락처 권한이 필요합니다',
'bluetoothPermissionDesc': '블루투스 기기 연결 및 관리에 사용됩니다',
'bluetoothPermissionDetailDesc': '블루투스 헤드폰 및 기타 기기에 연결하려면 블루투스 권한이 필요합니다',
'bluetoothScanPermissionDesc': '주변 블루투스 기기 검색에 사용됩니다',
'bluetoothScanPermissionDetailDesc':
'주변 블루투스 기기를 검색하려면 블루투스 검색 권한이 필요합니다',
'bluetoothScanPermissionDetailDesc': '주변 블루투스 기기를 검색하려면 블루투스 검색 권한이 필요합니다',
'bluetoothConnectPermissionDesc': '블루투스 기기 연결에 사용됩니다',
'bluetoothConnectPermissionDetailDesc':
'블루투스 기기에 연결하려면 블루투스 연결 권한이 필요합니다',
'bluetoothConnectPermissionDetailDesc': '블루투스 기기에 연결하려면 블루투스 연결 권한이 필요합니다',
'notificationPermissionDesc': '알림 메시지 전송에 사용됩니다',
'notificationPermissionDetailDesc':
'중요한 알림과 메시지를 보내려면 알림 권한이 필요합니다',
'notificationPermissionDetailDesc': '중요한 알림과 메시지를 보내려면 알림 권한이 필요합니다',
'appNeedsPermissionForFullFunction': '앱이 전체 기능을 제공하려면 이 권한이 필요합니다',
'permanentDenialText': '{permission} 권한을 영구적으로 거부하셨습니다. 앱 설정에서 활성화해주세요',
'goToSettings': '설정으로 이동',
'bluetoothScan': '블루투스 검색',
'bluetoothConnect': '블루투스 연결',
'bluetoothScanExplanation':
'앱이 주변 블루투스 기기를 검색하려면 블루투스 검색 권한이 필요합니다.',
'bluetoothConnectExplanation':
'앱이 블루투스 기기에 연결하려면 블루투스 연결 권한이 필요합니다.',
'locationForBluetoothExplanation':
'앱이 블루투스 기기를 검색하려면 위치 권한이 필요합니다.',
'bluetoothScanExplanation': '앱이 주변 블루투스 기기를 검색하려면 블루투스 검색 권한이 필요합니다.',
'bluetoothConnectExplanation': '앱이 블루투스 기기에 연결하려면 블루투스 연결 권한이 필요합니다.',
'locationForBluetoothExplanation': '앱이 블루투스 기기를 검색하려면 위치 권한이 필요합니다.',
'bluetoothScanPermanentDenial':
'블루투스 검색 권한이 영구적으로 거부되었습니다. 설정에서 수동으로 활성화해 주세요.',
'bluetoothConnectPermanentDenial':
'블루투스 연결 권한이 영구적으로 거부되었습니다. 설정에서 수동으로 활성화해 주세요.',
'locationPermanentDenial':
'위치 권한이 영구적으로 거부되었습니다. 설정에서 수동으로 활성화해 주세요.',
'locationPermanentDenial': '위치 권한이 영구적으로 거부되었습니다. 설정에서 수동으로 활성화해 주세요.',
'notificationPermission': '알림',
'locationPermission': '위치',
'notificationPermissionExplanation':
'음악 재생 상태를 표시하려면 알림 권한이 필요합니다.',
'locationPermissionExplanation':
'현재 위치를 가져오려면 위치 권한이 필요합니다.',
'notificationPermissionExplanation': '음악 재생 상태를 표시하려면 알림 권한이 필요합니다.',
'locationPermissionExplanation': '현재 위치를 가져오려면 위치 권한이 필요합니다.',
'notificationPermissionPermanentDenial':
'알림 권한을 영구적으로 거부하셨습니다. 설정에서 활성화해 주세요.',
'locationPermissionPermanentDenial':
'위치 권한을 영구적으로 거부하셨습니다. 설정에서 활성화해 주세요.',
'locationPermissionPermanentDenial': '위치 권한을 영구적으로 거부하셨습니다. 설정에서 활성화해 주세요.',
'storagePermission': '저장소',
'microphonePermissionExplanation':
'오디오 콘텐츠를 녹음하려면 마이크 권한이 필요합니다.',
'storagePermissionExplanation':
'오디오 파일을 선택하고 업로드하려면 저장소 권한이 필요합니다.',
'microphonePermissionExplanation': '오디오 콘텐츠를 녹음하려면 마이크 권한이 필요합니다.',
'storagePermissionExplanation': '오디오 파일을 선택하고 업로드하려면 저장소 권한이 필요합니다.',
'microphonePermissionPermanentDenial':
'마이크 권한이 영구적으로 거부되었습니다. 이 기능을 계속 사용하려면 앱 설정에서 마이크 권한을 수동으로 활성화해 주세요.',
'storagePermissionPermanentDenial':
@ -1325,12 +1278,10 @@ const Map<String, String> koKR = {
'deviceAuthorizationFailedCheckCode': '기기 인증 실패, 인증 코드를 확인하세요',
'bluetoothGuideTitle': '수동 블루투스 활성화 필요', // 需要手动开启蓝牙
'bluetoothGuideSteps': '다음 단계를 따라 주세요:', // 请按照以下步骤操作:
'bluetoothGuideStep1':
'블루투스 켜기: 설정 → 블루투스 → 켜기', // 开启蓝牙:设置 → 蓝牙 → 开启
'bluetoothGuideStep1': '블루투스 켜기: 설정 → 블루투스 → 켜기', // 开启蓝牙:设置 → 蓝牙 → 开启
'bluetoothGuideStep2':
'기기 연결: "나의 기기"에서 기기를 찾아 탭하여 연결', // 连接设备:在"我的设备"中找到您的设备并点击连接
'bluetoothGuideStep3':
'앱으로 돌아와서 페어링 과정을 계속하세요', // 返回应用继续配对流程
'bluetoothGuideStep3': '앱으로 돌아와서 페어링 과정을 계속하세요', // 返回应用继续配对流程
'bluetoothGuideTip':
'팁: 제어 센터에서 블루투스 아이콘을 길게 눌러 블루투스 설정에 빠르게 접근할 수도 있습니다', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置
'iKnow': '알겠습니다', // 我知道了
@ -1372,12 +1323,9 @@ const Map<String, String> koKR = {
"retryConnection": "연결 재시도",
"ota_updateNow": "지금 업데이트",
"otaVersionInfoFailed": "버전 정보를 가져오지 못했습니다. 나중에 다시 시도해 주세요.",
"otaDeviceInfoUnavailable":
"기기 정보를 가져올 수 없습니다. 연결을 확인하고 다시 시도해 주세요.",
"otaProductInfoUnavailable":
"기기를 식별할 수 없습니다. 다시 연결하고 시도해 주세요.",
"otaFirmwareVersionInvalid":
"펌웨어 버전이 비정상입니다. 다시 연결하고 시도해 주세요.",
"otaDeviceInfoUnavailable": "기기 정보를 가져올 수 없습니다. 연결을 확인하고 다시 시도해 주세요.",
"otaProductInfoUnavailable": "기기를 식별할 수 없습니다. 다시 연결하고 시도해 주세요.",
"otaFirmwareVersionInvalid": "펌웨어 버전이 비정상입니다. 다시 연결하고 시도해 주세요.",
"keepConnectedDontClose": "기기를 연결된 상태로 유지하고 앱을 닫지 마세요",
"doNotDisconnect": "연결을 끊지 마세요",
"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',
// Meeting模块 - 我的页面
'transcriptionRecords': 'Transcription Records',
'templateCommunity': 'Template Community',
'comingSoon': 'Coming Soon',
'integration': 'Integration',
'transcriptionRecords': 'Transkripciju ieraksti',
'templateCommunity': 'Veidņu kopiena',
'comingSoon': 'Drīzumā',
'integration': 'Integrācija',
'voitransPrivateCloud': 'VOITRANS PRIVATE CLOUD',
'enabled': 'Enabled',
'disabled': 'Disabled',
'myVoitransDevice': 'My VOITRANS Device',
'helpAndFeedback': 'Help & Feedback',
'aboutVoitrans': 'About VOITRANS',
'meetingDays': 'Days',
'meetingHours': 'Hours',
'voitransAiMember': 'Voitrans AI Member',
'unlockStarterMember': 'Unlock Starter Member',
'bindDeviceToActivate': 'Bind Voitrans device to activate Starter membership',
'unlockNow': 'Unlock Now',
'enabled': 'Ieslēgts',
'disabled': 'Izslēgts',
'myVoitransDevice': 'Mana VOITRANS ierīce',
'helpAndFeedback': 'Palīdzība un atsauksmes',
'aboutVoitrans': 'Par VOITRANS',
'meetingDays': 'Dienas',
'meetingHours': 'Stundas',
'voitransAiMember': 'Voitrans AI dalība',
'unlockStarterMember': 'Atbloķēt Starter dalību',
'bindDeviceToActivate':
'Saistiet Voitrans ierīci, lai aktivizētu Starter dalību',
'unlockNow': 'Atbloķēt tagad',
// Meeting模块 - 会员与升级
'comparison': 'Comparison',
'detailedInfo': 'Detailed Information',
'monthlyTranscriptionTime': 'Monthly Transcription Time',
'unlimited': 'Unlimited',
'professionalTemplates': 'Professional Templates',
'limited': 'Limited',
'fullTemplates': 'Full Templates',
'professionalTerms': 'Professional Terms',
'customTemplates': 'Custom Templates',
'visualMindMap': 'Visual Mind Map',
'speakerIdentification': 'Speaker Identification',
'aiVoiceEnhancement': 'AI Voice Enhancement',
'audioImport': 'Audio Import',
'multipleExportFormats': 'Multiple Export Formats',
'professionalSummaryTemplates': 'Professional Summary Templates',
'comparison': 'Salīdzinājums',
'detailedInfo': 'Detalizēta informācija',
'monthlyTranscriptionTime': 'Mēneša transkripcijas laiks',
'unlimited': 'Neierobežots',
'professionalTemplates': 'Profesionālas veidnes',
'limited': 'Ierobežots',
'fullTemplates': 'Pilnas veidnes',
'professionalTerms': 'Profesionāli termini',
'customTemplates': 'Pielāgotas veidnes',
'visualMindMap': 'Vizuāla prāta karte',
'speakerIdentification': 'Runātāju atpazīšana',
'aiVoiceEnhancement': 'AI balss uzlabošana',
'audioImport': 'Audio importēšana',
'multipleExportFormats': 'Vairāki eksporta formāti',
'professionalSummaryTemplates': 'Profesionālas kopsavilkuma veidnes',
'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':
'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':
'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':
'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':
'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':
'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':
'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':
'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':
'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':
'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.',
'upgradeMembership': 'Upgrade Your Membership',
'yearlySubscription': 'Yearly Subscription',
'monthlySubscription': 'Monthly Subscription',
'Eksportējiet audio ierakstus, transkripciju tekstu un kopsavilkumus dažādos formātos (TXT, PDF, JPEG), lai atbilstu jūsu vajadzībām.',
'upgradeMembership': 'Jaunināt dalību',
'yearlySubscription': 'Gada abonements',
'monthlySubscription': 'Mēneša abonements',
'proMonthly': 'Pro ¥60/month',
'proMonthlyDesc':
'7-day free trial, then ¥800/year. Cancel anytime before trial ends.',
'sevenDayTrial': '7-day Free Trial',
'7 dienu bezmaksas izmēģinājums, pēc tam ¥800/gadā. Atceliet jebkurā laikā pirms izmēģinājuma beigām.',
'sevenDayTrial': '7 dienu bezmaksas izmēģinājums',
'unlimitedMonthly': 'Unlimited ¥120/month',
'unlimitedMonthlyDesc':
'7-day free trial, then ¥1600/year. Cancel anytime before trial ends.',
'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.',
'7 dienu bezmaksas izmēģinājums, pēc tam ¥1600/gadā. Atceliet jebkurā laikā pirms izmēģinājuma beigām.',
'trialNote':
'*Bezmaksas izmēģinājums 7 dienas, pēc tam rēķins reizi gadā; var atcelt jebkurā laikā.',
'proPrice': 'Pro ¥120',
'proMonthlyPrice': '¥120/month',
'subscribe': 'Subscribe',
'subscribe': 'Abonēt',
'unlimitedPrice': 'Unlimited ¥198',
'unlimitedMonthlyPrice': '¥198/month',
'upgradeNote':
'*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account',
'buyMoreTranscriptionTime': 'Buy More Transcription Time',
'*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': 'Pirkt vairāk transkripcijas laika',
'sixThousandMinutes': '6,000 minutes',
'threeThousandMinutes': '3,000 minutes',
'sixHundredMinutes': '600 minutes',
'oneHundredTwentyMinutes': '120 minutes',
'validityPeriod': '*Validity Period: ',
'validityPeriod': '*Derīguma termiņš: ',
'validityNote':
'Activated immediately after purchase, valid for 2 years after activation.',
'purchase': 'Purchase',
'Aktivizējas uzreiz pēc iegādes, derīgs 2 gadus pēc aktivizēšanas.',
'purchase': 'Iegādāties',
// Meeting模块 - 录音语言
'recordLanguage': 'Recording Language',
'cantonese': 'Cantonese',
'sichuan': 'Sichuan Dialect',
'shanghai': 'Shanghai Dialect',
'recordLanguage': 'Ieraksta valoda',
'cantonese': 'Kantoniešu',
'sichuan': 'Sičuaņas dialekts',
'shanghai': 'Šanhajas dialekts',
// Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Unknown Language',
'meetingUnknownLanguage': 'Nezināma valoda',
'analysisFailed': 'Analīze neizdevās, lūdzu, mēģiniet vēlreiz vēlāk',
'transcriptionFailed':
'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",
"meetingAssistantRecharge": "Sapulces palīgs pārrakstīšana",
"cloudSync": "Tīkla sincronizācijas pārrakstīšana",
"memberService": "Member Service",
"bindRewardTitle": "Rewards",
"memberService": "Dalībnieku pakalpojums",
"bindRewardTitle": "Atlīdzības",
"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:",
"accountId": "Konta ID:",
"systemSetting": "Sistēmas iestatījumi",
@ -822,20 +824,21 @@ const Map<String, String> lvLV = {
"loading": "Ielādē...",
// 设备管理模块
"deviceTypeUnknown": "Unknown Device",
"deviceTypeClassicBluetoothHeadset": "Classic Bluetooth Headset",
"deviceTypeBleBluetoothHeadset": "BLE Bluetooth Headset",
"deviceTypeSmartVoiceRecorder": "Smart Voice Recorder",
"deviceTypeSmartEye": "Smart Glasses",
"deviceTypeUnknown": "Nezināma ierīce",
"deviceTypeClassicBluetoothHeadset": "Klasiskās Bluetooth austiņas",
"deviceTypeBleBluetoothHeadset": "BLE Bluetooth austiņas",
"deviceTypeSmartVoiceRecorder": "Viedais balss ierakstītājs",
"deviceTypeSmartEye": "Viedās brilles",
"unbind": "Atsaistīt",
"noDevicesBound": "No devices bound yet",
"pleaseBindDeviceFirst": "Please bind a device first to manage",
"noMacAddress": "No MAC Address",
"licenseCode": "License Code",
"confirmUnbind": "Confirm Unbind",
"noDevicesBound": "Vēl nav piesaistītu ierīču",
"pleaseBindDeviceFirst":
"Lūdzu, vispirms piesaistiet ierīci, lai to pārvaldītu",
"noMacAddress": "Nav MAC adreses",
"licenseCode": "Licences kods",
"confirmUnbind": "Apstiprināt atsaisti",
"confirmUnbindMessage":
"Are you sure you want to unbind device \"{deviceName}\"?",
"confirmUnbindAction": "Confirm Unbind",
"Vai tiešām vēlaties atsaitīt ierīci \"{deviceName}\"?",
"confirmUnbindAction": "Apstiprināt atsaisti",
// Agent模块 - 主界面
"Lily": "Lily",
@ -866,22 +869,22 @@ const Map<String, String> lvLV = {
"loadFailedClickRetry":
"Ielāde neizdevās, noklikšķiniet, lai mēģinātu vēlreiz",
"swipeUpForMore": "Velciet uz augšu, lai redzētu vairāk",
"callingTool": "I'm helping you, please wait!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断
"callingTool": "Es jums palīdzu, lūdzu, uzgaidiet!", // 正在帮您,请稍等!
"voice_interrupt": "Pārtraukt", // 语音打断
'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.',
// Agent模块 - 预设提示词
"presetMusic": "Play some music", // 来点音乐
"presetNavigation": "Navigation to", // 导航
"presetWeather": "Today's weather", // 今日天气
"presetNews": "Today's news", // 今日新闻
"presetFood": "Nearby food", // 美食
"playSomeMusic": "Play some popular music", // 播放一些流行音乐
"navigationTo": "Please help me navigate to", // 导航到
"todayWeather": "How's the weather today?", // 今日天气
"todayNews": "What's the news today?", // 今日新闻
"nearbyFood": "What delicious food is nearby?", // 美食
"presetMusic": "Uzliec mūziku", // 来点音乐
"presetNavigation": "Navigēt uz", // 导航
"presetWeather": "Šodienas laikapstākļi", // 今日天气
"presetNews": "Šodienas ziņas", // 今日新闻
"presetFood": "Ēdiens tuvumā", // 美食
"playSomeMusic": "Atskaņo populāru mūziku", // 播放一些流行音乐
"navigationTo": "Lūdzu, palīdzi man nokļūt uz", // 导航到
"todayWeather": "Kādi šodien ir laikapstākļi?", // 今日天气
"todayNews": "Kādas ir šodienas ziņas?", // 今日新闻
"nearbyFood": "Kāds garšīgs ēdiens ir tuvumā?", // 美食
// Agent模块 - 欢迎消息与权限
'welcomeMessage': 'Sveiki! Esmu **SjaoJaņ**, es varu jums palīdzēt:\n\n'
@ -954,27 +957,27 @@ const Map<String, String> lvLV = {
"tsransit": "Sabiedriskais transports",
// Agent模块 - 导航选择
'selectNavigationApp': 'Select Navigation App',
'selectNavigationApp': 'Izvēlēties navigācijas lietotni',
'amapMap': 'Amap',
'useAmapNavigation': 'Navigate with Amap',
'useAmapNavigation': 'Navigēt ar Amap',
'baiduMap': 'Baidu Maps',
'useBaiduNavigation': 'Navigate with Baidu Maps',
'useBaiduNavigation': 'Navigēt ar Baidu Maps',
'googleMap': 'Google Maps',
'useGoogleNavigation': 'Navigate with Google Maps',
'useGoogleNavigation': 'Navigēt ar Google Maps',
'appleMap': 'Apple Maps',
'useAppleNavigation': 'Navigate with Apple Maps',
'builtInNavigation': 'Built-in Navigation',
'useBuiltInNavigation': 'Navigate with built-in map',
'navigationStartFailed': 'Failed to start navigation',
'useAppleNavigation': 'Navigēt ar Apple Maps',
'builtInNavigation': 'Iebūvētā navigācija',
'useBuiltInNavigation': 'Navigēt ar iebūvēto karti',
'navigationStartFailed': 'Neizdevās sākt navigāciju',
'cannotPlayMusicListRetryLater':
'Cannot play music list, please try again later',
'cannotPlaySong': 'Cannot play song',
'openMapError': 'Error opening map',
'pleaseInstallAmapApp': 'Please install the Amap app first',
'pleaseInstallBaiduMapApp': 'Please install the Baidu Maps app first',
'appleMapStartFailed': 'Apple Maps failed to start',
'appleMapUnavailable': 'Apple Maps unavailable',
'openAppleMapError': 'Error opening Apple Maps',
'Nevar atskaņot mūzikas sarakstu, lūdzu, mēģiniet vēlāk',
'cannotPlaySong': 'Nevar atskaņot dziesmu',
'openMapError': 'Kļūda, atverot karti',
'pleaseInstallAmapApp': 'Lūdzu, vispirms instalējiet Amap lietotni',
'pleaseInstallBaiduMapApp': 'Lūdzu, vispirms instalējiet Baidu Maps lietotni',
'appleMapStartFailed': 'Apple Maps neizdevās palaist',
'appleMapUnavailable': 'Apple Maps nav pieejams',
'openAppleMapError': 'Kļūda, atverot Apple Maps',
// Agent模块 - 天气卡片
'weatherQuery': 'Laikapstākļu pieprasījums:',
@ -1029,8 +1032,8 @@ const Map<String, String> lvLV = {
"strongWind": "Stiprs vējš",
// 翻译模块 - 中间层
"pictureTranslation": "Picture Translation",
"textTranslation": "Text Translation",
"pictureTranslation": "Attēlu tulkošana",
"textTranslation": "Teksta tulkošana",
// 翻译模块 - 主页
"translationHistory": "Tulkošanas vēsture",
@ -1040,33 +1043,33 @@ const Map<String, String> lvLV = {
"phoneUser": "Tālruņa lietotājs",
"selectSourceLanguage": "Izvēlēties avota valodu",
"selectTargetLanguage": "Izvēlēties mērķa valodu",
"me": "Me",
"counterPart": "Counterpart",
"me": "Es",
"counterPart": "Sarunu biedrs",
"bluetoothCallStateError":
"Please make sure the Bluetooth headset is connected to the phone and in a call state",
"autoDetect": "Auto Detect", // 自动检测
"Lūdzu, pārliecinieties, ka Bluetooth austiņas ir pievienotas tālrunim un notiek zvans",
"autoDetect": "Automātiska noteikšana", // 自动检测
// 翻译模块 - 文本翻译
"languageDetectionFailed": "Language detection failed",
"languageDetectionFailed": "Neizdevās noteikt valodu",
// 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'Disable Floating Window',
'enableFloatingWindow': 'Enable Floating Window',
'permissionTip': 'Permission Tip',
'disableFloatingWindow': 'Atspējot peldošo logu',
'enableFloatingWindow': 'Iespējot peldošo logu',
'permissionTip': 'Atļauju padoms',
'micPermissionRequiredForRecording':
'Microphone permission is required for recording',
'deleteTranslationRecordError': 'Error deleting translation record: @error',
"translationFailed": "Translation failed",
"translating": "Translating",
"translate": "Translate",
"pleaseInputText": "Please input text",
'Ierakstīšanai nepieciešama mikrofona atļauja',
'deleteTranslationRecordError': 'Kļūda, dzēšot tulkošanas ierakstu: @error',
"translationFailed": "Tulkošana neizdevās",
"translating": "Tulko...",
"translate": "Tulkot",
"pleaseInputText": "Lūdzu, ievadiet 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",
"historyRecords": "History Records",
"clearResults": "Clear Results",
"historyRecords": "Vēstures ieraksti",
"clearResults": "Notīrīt rezultātus",
"clearHistory": "Notīrīt vēsturi",
"clearHistoryConfirm":
"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.",
// 翻译模块 - 图片翻译
"selectImageSource": "Select Image Source",
"imagePreview": "Image Preview",
"translationResult": "Translation Result",
"recognitionResult": "Recognition Result",
"translatedImagePreview": "Translated Image Preview",
"translatedImageLoadFailed": "Failed to load translated image",
"pleaseSelectImage": "Please select an image",
"imageLoadFailed": "Image load failed",
"imageQuality": "Image Quality",
"maxSize": "Max Size",
"close": "Close",
"setImageQuality": "Set Image Quality",
"currentQuality": "Current quality: @value%",
"setMaxSize": "Set Max Size",
"currentMaxSize": "Current: @pxpx",
"waitingForAction": "Waiting for action",
"pleaseSelectImageToStart": "Please select an image to start",
"chooseImage": "Choose Image",
"openingCamera": "Opening camera...",
"openingPhotoAlbum": "Opening photo album...",
"cancelled": "Cancelled",
"userCancelledSelection": "User cancelled selection",
"translatingImage": "Translating Image",
"callingImageTranslateService": "Calling image translation service...",
"savingRecord": "Saving Record",
"savingTranslationResult": "Saving translation result...",
"translationCompleted": "Translation Completed",
"allStepsCompleted": "All steps completed",
"processingFailed": "Processing Failed",
"selectImageSource": "Izvēlēties attēla avotu",
"imagePreview": "Attēla priekšskatījums",
"translationResult": "Tulkošanas rezultāts",
"recognitionResult": "Atpazīšanas rezultāts",
"translatedImagePreview": "Tulkotā attēla priekšskatījums",
"translatedImageLoadFailed": "Neizdevās ielādēt tulkoto attēlu",
"pleaseSelectImage": "Lūdzu, izvēlieties attēlu",
"imageLoadFailed": "Attēla ielāde neizdevās",
"imageQuality": "Attēla kvalitāte",
"maxSize": "Maksimālais izmērs",
"close": "Aizvērt",
"setImageQuality": "Iestatīt attēla kvalitāti",
"currentQuality": "Pašreizējā kvalitāte: @value%",
"setMaxSize": "Iestatīt maksimālo izmēru",
"currentMaxSize": "Pašreizējais: @pxpx",
"waitingForAction": "Gaida darbību",
"pleaseSelectImageToStart": "Lūdzu, izvēlieties attēlu, lai sāktu",
"chooseImage": "Izvēlēties attēlu",
"openingCamera": "Atver kameru...",
"openingPhotoAlbum": "Atver fotoalbumu...",
"cancelled": "Atcelts",
"userCancelledSelection": "Lietotājs atcēla izvēli",
"translatingImage": "Tulko attēlu",
"callingImageTranslateService": "Izsauc attēlu tulkošanas pakalpojumu...",
"savingRecord": "Saglabā ierakstu",
"savingTranslationResult": "Saglabā tulkošanas rezultātu...",
"translationCompleted": "Tulkošana pabeigta",
"allStepsCompleted": "Visas darbības pabeigtas",
"processingFailed": "Apstrāde neizdevās",
"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",
"imageTooLargeHint":
"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":
"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":
"Image translation API exception. Check network and retry",
"permissionRequired": "Permission Required",
"cameraPermissionRequired": "Camera permission required to take photos",
"Attēlu tulkošanas API izņēmums. Pārbaudiet tīklu un mēģiniet vēlreiz",
"permissionRequired": "Nepieciešama atļauja",
"cameraPermissionRequired":
"Lai uzņemtu fotoattēlus, nepieciešama kameras atļauja",
"photoAlbumPermissionRequired":
"Photo album permission required to pick images",
"translationDetails": "Translation Details",
"originalImage": "Original Image",
"sourceLanguage": "Source Language",
"targetLanguage": "Target Language",
"translationTime": "Translation Time",
"shareInDevelopment": "Sharing feature under development",
"Lai izvēlētos attēlus, nepieciešama fotoalbuma atļauja",
"translationDetails": "Tulkošanas detaļas",
"originalImage": "Oriģinālais attēls",
"sourceLanguage": "Avota valoda",
"targetLanguage": "Mērķa valoda",
"translationTime": "Tulkošanas laiks",
"shareInDevelopment": "Kopīgošanas funkcija tiek izstrādāta",
// 翻译模块 - 录音文件
"translateAudioFiles": "Tulkot audio failus",
@ -1222,32 +1226,32 @@ const Map<String, String> lvLV = {
'Konta pakalpojums ir inicializēts', // AccountService 已初始化
// 权限模块
'meetingStoragePermission': 'Storage',
'meetingStoragePermission': 'Glabātuve',
'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':
'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',
'communicationPermissions': 'Komunikācijas atļaujas',
'bluetoothPermissions': 'Bluetooth Permissions',
'notificationPermissions': 'Notification Permissions',
'storagePermissions': 'Storage Permissions',
'microphonePermissions': 'Microphone Permissions',
'alarmPermissions': 'Alarm Permissions',
'bluetoothPermissions': 'Bluetooth atļaujas',
'notificationPermissions': 'Paziņojumu atļaujas',
'storagePermissions': 'Glabātuves atļaujas',
'microphonePermissions': 'Mikrofona atļaujas',
'alarmPermissions': 'Modinātāja atļaujas',
'calendarPermissions': 'Kalendāra atļaujas',
'locationPermissions': 'Atrašanās vietas atļaujas',
'phone': 'Tālrunis',
'sms': 'SMS',
'contacts': 'Contacts',
'notification': 'Notification',
'alarm': 'Alarm',
'contacts': 'Kontakti',
'notification': 'Paziņojumi',
'alarm': 'Modinātājs',
'calendarWrite': 'Rakstīt kalendārā',
'calendarFullAccess': 'Pilna piekļuve kalendāram',
'locationInfo': 'Atrašanās vietas informācija',
'phonePermissionDesc': 'Izmanto zvanīšanas funkcijai',
'smsPermissionDesc': 'Izmanto SMS sūtīšanas funkcijai',
'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':
'Izmanto kalendāra notikumu un atgādinājumu izveidei',
'calendarFullAccessPermissionDesc':
@ -1266,72 +1270,73 @@ const Map<String, String> lvLV = {
'Zvanīšanas funkcijai nepieciešama tālruņa atļauja',
'smsPermissionDetailDesc': 'SMS sūtīšanas funkcijai nepieciešama SMS atļauja',
'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':
'Kalendāra notikumu izveidei nepieciešama kalendāra rakstīšanas atļauja',
'calendarFullAccessPermissionDetailDesc':
'Kalendāra notikumu pārvaldībai nepieciešama pilna kalendāra atļauja',
'locationPermissionDetailDesc':
'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':
'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':
'Used for connecting and managing Bluetooth devices',
'Izmanto Bluetooth ierīču savienošanai un pārvaldībai',
'bluetoothPermissionDetailDesc':
'Connecting to Bluetooth headphones and other devices requires Bluetooth permission',
'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices',
'Lai savienotos ar Bluetooth austiņām un citām ierīcēm, nepieciešama Bluetooth atļauja',
'bluetoothScanPermissionDesc':
'Izmanto tuvumā esošo Bluetooth ierīču skenēšanai',
'bluetoothScanPermissionDetailDesc':
'Scanning for nearby Bluetooth devices requires Bluetooth scan permission',
'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices',
'Tuvumā esošo Bluetooth ierīču skenēšanai nepieciešama Bluetooth skenēšanas atļauja',
'bluetoothConnectPermissionDesc': 'Izmanto savienošanai ar Bluetooth ierīcēm',
'bluetoothConnectPermissionDetailDesc':
'Connecting to Bluetooth devices requires Bluetooth connect permission',
'notificationPermissionDesc': 'Used for sending notification messages',
'Savienošanai ar Bluetooth ierīcēm nepieciešama Bluetooth savienošanas atļauja',
'notificationPermissionDesc': 'Izmanto paziņojumu ziņojumu sūtīšanai',
'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':
'Lietotnei ir nepieciešama šī atļauja pilnai funkcionalitātei',
'permanentDenialText':
'Jūs esat neatgriezeniski atteicis {permission} atļauju, lūdzu, dodieties uz lietotnes iestatījumiem, lai to iespējotu',
'goToSettings': 'Doties uz iestatījumiem',
'bluetoothScan': 'Bluetooth Scan',
'bluetoothConnect': 'Bluetooth Connect',
'bluetoothScan': 'Bluetooth skenēšana',
'bluetoothConnect': 'Bluetooth savienošana',
'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':
'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':
'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':
'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':
'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':
'Location permission has been permanently denied, please go to settings to enable it manually.',
'notificationPermission': 'Notification',
'locationPermission': 'Location',
'Atrašanās vietas atļauja ir neatgriezeniski atteikta; atveriet iestatījumus un manuāli to iespējojiet.',
'notificationPermission': 'Paziņojumi',
'locationPermission': 'Atrašanās vieta',
'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':
'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':
'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':
'You have permanently denied location permission, please go to settings to enable it.',
'storagePermission': 'Storage',
'Jūs esat neatgriezeniski atteicis atrašanās vietas atļauju; atveriet iestatījumus un to iespējojiet.',
'storagePermission': 'Glabātuve',
'microphonePermissionExplanation':
'We need microphone permission to record audio content.',
'Mums ir nepieciešama mikrofona atļauja, lai ierakstītu audio.',
'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':
'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':
'Storage permission has been permanently denied. To continue using this feature, please go to app settings to manually enable storage permission.',
'permissionUtilNeed': 'Need ',
'permissionUtilPermission': ' Permission',
'permissionUtilRestricted': ' Permission Restricted',
'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': 'Nepieciešama ',
'permissionUtilPermission': ' atļauja',
'permissionUtilRestricted': ' atļauja ir ierobežota',
'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',
// 原生前台服务通知(Android)
@ -1422,27 +1427,28 @@ const Map<String, String> lvLV = {
'bleConnectionFailed': 'BLE savienojums neizdevās',
'deviceAuthorizationFailedCheckCode':
'Ierīces autorizācija neizdevās, lūdzu, pārbaudiet autorizācijas kodu',
'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙
'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作:
'bluetoothGuideTitle':
'Nepieciešama manuāla Bluetooth aktivizēšana', // 需要手动开启蓝牙
'bluetoothGuideSteps': 'Lūdzu, sekojiet šiem soļiem:', // 请按照以下步骤操作:
'bluetoothGuideStep1':
'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启
'Ieslēdziet Bluetooth: Iestatījumi → Bluetooth → Ieslēgt', // 开启蓝牙:设置 → 蓝牙 → 开启
'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':
'Return to app to continue pairing process', // 返回应用继续配对流程
'Atgriezieties lietotnē, lai turpinātu savienošanas pārī procesu', // 返回应用继续配对流程
'bluetoothGuideTip':
'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置
'iKnow': 'I Know', // 我知道了
'Padoms: varat arī turēt nospiestu Bluetooth ikonu Vadības centrā, lai ātri atvērtu Bluetooth iestatījumus', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置
'iKnow': 'Sapratu', // 我知道了
// 配对模块 - 绑定奖励
"firstBindRewardTitle": "Welcome Reward",
"firstBindRewardDesc": "You've received binding rewards.",
"vipLevelLabel": "VIP Level:",
"expiryLabel": "Expiration:",
"notActivated": "Not activated",
"aiChatCreditsLabel": "AI Chat Credits:",
"translationCreditsLabel": "Translation Credits:",
"meetingCreditsLabel": "Meeting Credits:",
"firstBindRewardTitle": "Pirmā saistīšana",
"firstBindRewardDesc": "Jūs esat saistīts ar kontu.",
"vipLevelLabel": "VIP Nivēls:",
"expiryLabel": "Apmēr:",
"notActivated": "Nepieciešama aktivizācija",
"aiChatCreditsLabel": "AI Pieslēgšanas kredīti:",
"translationCreditsLabel": "Tulkošanas kredīti:",
"meetingCreditsLabel": "Mēnešēšanas kredīti:",
"ok": "OK",
// 用户反馈模块
@ -1474,13 +1480,14 @@ const Map<String, String> lvLV = {
"connectionFailed": "Savienojums neizdevās",
"retryConnection": "Mēģināt savienot vēlreiz",
"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":
"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":
"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":
"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",
"doNotDisconnect": "Neatvienojiet",
"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%",
// OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': 'New version @version found',
'otaConfirmUpdateNow': 'Update now?',
'otaUpdate': 'Update',
'otaUpgradeSuccess': 'Upgrade Successful',
'otaNewVersionFoundWithVersion': 'Atrasta jauna versija @version',
'otaConfirmUpdateNow': 'Atjaunināt tagad?',
'otaUpdate': 'Atjaunināt',
'otaUpgradeSuccess': 'Jaunināšana veiksmīga',
'otaUpgradeCompleteRepair':
'Firmware upgrade complete!\n\nDevice needs to be re-paired to work properly. Go to pairing page now?',
'otaPairLater': 'Pair Later',
'otaPairNow': 'Pair Now',
'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': 'Savienot vēlāk',
'otaPairNow': 'Savienot tagad',
'okConfirm': 'OK',
// OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'Error checking BLE connection: @error',
'otaBleNotConnected': 'BLE Device Not Connected',
'otaBleCheckErrorWithError': 'Kļūda, pārbaudot BLE savienojumu: @error',
'otaBleNotConnected': 'BLE ierīce nav savienota',
'otaBleNeedConnection':
'Firmware upgrade requires BLE device connection\nPlease ensure device is properly connected and try again',
'otaDeviceInfoUnavailableTitle': 'Device Info Unavailable',
'Programmaparatūras jaunināšanai nepieciešams BLE savienojums\nLūdzu, pārliecinieties, ka ierīce ir pareizi savienota, un mēģiniet vēlreiz',
'otaDeviceInfoUnavailableTitle': 'Ierīces informācija nav pieejama',
'otaCannotGetDeviceInfo':
'Cannot get device info\nPlease reconnect device or try again later',
'otaBleCheckFailed': 'BLE Connection Check Failed',
'Nevar iegūt ierīces informāciju\nLūdzu, pievienojiet ierīci no jauna vai mēģiniet vēlāk',
'otaBleCheckFailed': 'BLE savienojuma pārbaude neizdevās',
'otaCannotGetDeviceInfoCheckConnection':
'Cannot get device info, please check device connection',
'Nevar iegūt ierīces informāciju, lūdzu, pārbaudiet ierīces savienojumu',
'otaCannotGetProductInfoWithName':
'Cannot get product info, device name: @deviceName',
'Nevar iegūt produkta informāciju, ierīces nosaukums: @deviceName',
'otaCannotGetBatteryInfo': 'Cannot get valid battery info',
'otaLowBattery': 'Low Battery',
'otaSingleBatteryLow':
'Device battery too low for firmware upgrade\nRequirement: battery must be above 20%\nCurrent: @ear @battery%\nPlease charge and try again',
'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':
'Device battery too low for firmware upgrade\nRequirement: both earbuds must be above 20%\nCurrent: Left @left%, Right @right%\nPlease charge and try again',
'otaBatteryCheckFailed': 'Battery Check Failed',
'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': 'Baterijas pārbaude neizdevās',
// OTA升级模块 - 升级状态
'otaDefaultUpdateDesc':
'This update includes performance optimizations and bug fixes.',
'otaGetLatestVersionFailed': 'Failed to get latest version info',
'otaGetVersionInfoFailed': 'Failed to get version info',
'otaCheckingDeviceStatus': 'Checking device status...',
'Šajā atjauninājumā ir veiktas veiktspējas optimizācijas un kļūdu labojumi.',
'otaGetLatestVersionFailed': 'Neizdevās iegūt jaunākās versijas informāciju',
'otaGetVersionInfoFailed': 'Neizdevās iegūt versijas informāciju',
'otaCheckingDeviceStatus': 'Pārbauda ierīces statusu...',
'otaDownloadFailedCheckNetwork':
'Download failed, please check network connection',
'otaDownloadFailed': 'Download Failed',
'otaPreparingConnection': 'Preparing device connection...',
'otaConnectingDevice': 'Connecting to device...',
'Lejupielāde neizdevās, lūdzu, pārbaudiet tīkla savienojumu',
'otaDownloadFailed': 'Lejupielāde neizdevās',
'otaPreparingConnection': 'Sagatavo ierīces savienojumu...',
'otaConnectingDevice': 'Savienojas ar ierīci...',
'otaUpgradeStarted': 'OTA upgrade started...',
'otaUpgradeProgressWithPercent': 'Upgrade progress: @percent%',
'otaUpgradeSuccessComplete': 'Upgrade completed successfully',
'otaUpgradeFailedWithCode': 'Upgrade failed, error code: @code',
'otaUpgradeFailedTitle': 'Upgrade Failed',
'otaUpgradeSuccessComplete': 'Jaunināšana pabeigta veiksmīgi',
'otaUpgradeFailedWithCode': 'Jaunināšana neizdevās, kļūdas kods: @code',
'otaUpgradeFailedTitle': 'Jaunināšana neizdevās',
'otaUpgradeFailedDesc':
'Please check device connection or update package, error code: @code',
'otaDeviceDisconnected': 'Device disconnected',
'otaDeviceConnected': 'Device connected',
'Lūdzu, pārbaudiet ierīces savienojumu vai atjauninājuma pakotni, kļūdas kods: @code',
'otaDeviceDisconnected': 'Ierīce atvienota',
'otaDeviceConnected': 'Ierīce savienota',
// 音乐模块
"noMusic": "Nav mūzikas", // 暂无音乐

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

@ -1,3 +1,4 @@
// 马来西亚-马来语
const Map<String, String> msMY = {
// 通用
'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.',
'multipleExportFormatsDesc':
'Eksport rakaman audio, teks transkripsi dan ringkasan anda dalam pelbagai format (TXT, PDF, JPEG) mengikut keperluan.',
'upgradeMembership': 'Upgrade Your Membership',
'yearlySubscription': 'Yearly Subscription',
'monthlySubscription': 'Monthly Subscription',
'proMonthly': 'Pro ¥60/month',
'upgradeMembership': 'Naik taraf keahlian',
'yearlySubscription': 'Langganan tahunan',
'monthlySubscription': 'Langganan bulanan',
'proMonthly': 'Pro ¥60/bulan',
'proMonthlyDesc':
'7-day free trial, then ¥800/year. Cancel anytime before trial ends.',
'sevenDayTrial': '7-day Free Trial',
'unlimitedMonthly': 'Unlimited ¥120/month',
'Percubaan percuma 7 hari, kemudian ¥800/tahun. Batal bila-bila masa sebelum percubaan tamat.',
'sevenDayTrial': 'Percubaan percuma 7 hari',
'unlimitedMonthly': 'Tanpa had ¥120/bulan',
'unlimitedMonthlyDesc':
'7-day free trial, then ¥1600/year. Cancel anytime before trial ends.',
'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.',
'Percubaan percuma 7 hari, kemudian ¥1600/tahun. Batal bila-bila masa sebelum percubaan tamat.',
'trialNote':
'*Percubaan percuma 7 hari, kemudian dikenakan caj tahunan; boleh dibatalkan bila-bila masa.',
'proPrice': 'Pro ¥120',
'proMonthlyPrice': '¥120/month',
'subscribe': 'Subscribe',
'proMonthlyPrice': '¥120/bulan',
'subscribe': 'Langgan',
'unlimitedPrice': 'Unlimited ¥198',
'unlimitedMonthlyPrice': '¥198/month',
'unlimitedMonthlyPrice': '¥198/bulan',
'upgradeNote':
'*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account',
'buyMoreTranscriptionTime': 'Buy More Transcription Time',
'sixThousandMinutes': '6,000 minutes',
'threeThousandMinutes': '3,000 minutes',
'sixHundredMinutes': '600 minutes',
'oneHundredTwentyMinutes': '120 minutes',
'validityPeriod': '*Validity Period: ',
'*Selepas menaik taraf langganan, baki hari langganan asal akan dikira secara automatik dan dipulangkan ke akaun pembayaran anda',
'buyMoreTranscriptionTime': 'Beli lebih masa transkripsi',
'sixThousandMinutes': '6,000 minit',
'threeThousandMinutes': '3,000 minit',
'sixHundredMinutes': '600 minit',
'oneHundredTwentyMinutes': '120 minit',
'validityPeriod': '*Tempoh sah: ',
'validityNote':
'Activated immediately after purchase, valid for 2 years after activation.',
'purchase': 'Purchase',
'Diaktifkan serta-merta selepas pembelian, sah selama 2 tahun selepas pengaktifan.',
'purchase': 'Beli',
// Meeting模块 - 录音语言
'recordLanguage': 'Bahasa Rakaman',
'cantonese': 'Cantonese',
'sichuan': 'Sichuan Dialect',
'shanghai': 'Shanghai Dialect',
'cantonese': 'Kantonis',
'sichuan': 'Dialek Sichuan',
'shanghai': 'Dialek Shanghai',
// Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Unknown Language',
'meetingUnknownLanguage': 'Bahasa tidak diketahui',
'analysisFailed': 'Analisis gagal, sila cuba lagi kemudian',
'transcriptionFailed': 'Transkripsi 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",
"swipeUpForMore": "Leret ke atas untuk lebih banyak",
"callingTool": "Saya sedang membantu anda, sila tunggu!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断
"voice_interrupt": "Hentikan", // 语音打断
'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.',
// Agent模块 - 预设提示词
"presetMusic": "Play some music", // 来点音乐
"presetNavigation": "Navigation to", // 导航
"presetWeather": "Today's weather", // 今日天气
"presetNews": "Today's news", // 今日新闻
"presetFood": "Nearby food", // 美食
"playSomeMusic": "Play some popular music", // 播放一些流行音乐
"presetMusic": "Mainkan muzik", // 来点音乐
"presetNavigation": "Navigasi ke", // 导航
"presetWeather": "Cuaca hari ini", // 今日天气
"presetNews": "Berita hari ini", // 今日新闻
"presetFood": "Makanan berdekatan", // 美食
"playSomeMusic": "Mainkan muzik popular", // 播放一些流行音乐
"navigationTo": "Tolong bantu saya menavigasi ke", // 导航到
"todayWeather": "How's the weather today?", // 今日天气
"todayNews": "What's the news today?", // 今日新闻
"nearbyFood": "What delicious food is nearby?", // 美食
"todayWeather": "Bagaimana cuaca hari ini?", // 今日天气
"todayNews": "Apakah berita hari ini?", // 今日新闻
"nearbyFood": "Apa makanan sedap yang berdekatan?", // 附近有什么好吃的
// Agent模块 - 欢迎消息与权限
'welcomeMessage': 'Helo! Saya **Lily**, saya boleh bantu anda:\n\n'
@ -1417,14 +1419,14 @@ const Map<String, String> msMY = {
'iKnow': 'Saya Faham', // 我知道了
// 配对模块 - 绑定奖励
"firstBindRewardTitle": "Welcome Reward",
"firstBindRewardDesc": "You've received binding rewards.",
"vipLevelLabel": "VIP Level:",
"expiryLabel": "Expiration:",
"notActivated": "Not activated",
"aiChatCreditsLabel": "AI Chat Credits:",
"translationCreditsLabel": "Translation Credits:",
"meetingCreditsLabel": "Meeting Credits:",
"firstBindRewardTitle": "Pembelian Terlebih Dahulu",
"firstBindRewardDesc": "Anda telah menerima premi binding.",
"vipLevelLabel": "Level VIP:",
"expiryLabel": "Tamat tempoh:",
"notActivated": "Belum diaktifkan",
"aiChatCreditsLabel": "Kredit Chat AI:",
"translationCreditsLabel": "Kredit Terjemahan:",
"meetingCreditsLabel": "Kredit Meeting:",
"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 = {
// 通用
'continue': 'Doorgaan',
@ -218,55 +219,55 @@ const Map<String, String> nlNL = {
"scene": "Scenario",
// 用量统计模块
"aiChat": "AI Chat",
"translationStats": "Translation Statistics",
"meetingStats": "Meeting Statistics",
"today": "Today",
"thisWeek": "This Week",
"thisMonth": "This Month",
"history": "History",
"currentSessionStats": "Current Session Stats",
"translationCount": "Translation Count",
"sessionDuration": "Session Duration",
"characters": "Characters",
"recordingDuration": "Recording Duration",
"totalApiCalls": "Total API Calls",
"sessionCount": "Session Count",
"totalCharacters": "Total Characters",
"apiCallStats": "API Call Stats",
"translationApi": "Translation API",
"aiChat": "AI-chat",
"translationStats": "Vertaalstatistieken",
"meetingStats": "Vergaderstatistieken",
"today": "Vandaag",
"thisWeek": "Deze week",
"thisMonth": "Deze maand",
"history": "Geschiedenis",
"currentSessionStats": "Statistieken van huidige sessie",
"translationCount": "Aantal vertalingen",
"sessionDuration": "Sessieduur",
"characters": "Tekens",
"recordingDuration": "Opnameduur",
"totalApiCalls": "Totaal aantal API-aanroepen",
"sessionCount": "Aantal sessies",
"totalCharacters": "Totaal aantal tekens",
"apiCallStats": "Statistieken API-aanroepen",
"translationApi": "Vertaal-API",
"asr": "ASR",
"tts": "TTS",
"dataVolumeStats": "Data Volume Stats",
"sourceTextCharacters": "Source Text Characters",
"ttsTextCharacters": "TTS Text Characters",
"effectiveAudioDuration": "Effective Audio Duration",
"totalSessionDuration": "Total Session Duration",
"costStats": "Cost Stats",
"estimatedCost": "Estimated Cost",
"dailyCostThreshold": "Daily Cost Threshold",
"monthlyCostThreshold": "Monthly Cost Threshold",
"usageBehaviorStats": "Usage Behavior Stats",
"mostUsedLanguagePair": "Most-used language pair",
"mostUsedMode": "Most-used mode",
"asrApiCalls": "ASR Calls",
"totalAudioDuration": "Total Audio Duration",
"audioFileSize": "Audio File Size",
"transcriptBytes": "Transcript Bytes",
"loadFailed": "Load Failed",
"dataVolumeStats": "Statistieken datavolume",
"sourceTextCharacters": "Tekens in brontekst",
"ttsTextCharacters": "TTS-tekens",
"effectiveAudioDuration": "Effectieve audiolengte",
"totalSessionDuration": "Totale sessieduur",
"costStats": "Kostenstatistieken",
"estimatedCost": "Geschatte kosten",
"dailyCostThreshold": "Dagelijkse kostendrempel",
"monthlyCostThreshold": "Maandelijkse kostendrempel",
"usageBehaviorStats": "Statistieken gebruiksgedrag",
"mostUsedLanguagePair": "Meest gebruikte talenpaar",
"mostUsedMode": "Meest gebruikte modus",
"asrApiCalls": "ASR-aanroepen",
"totalAudioDuration": "Totale audiolengte",
"audioFileSize": "Grootte audiobestand",
"transcriptBytes": "Transcriptbytes",
"loadFailed": "Laden mislukt",
"statsLoadFailedTryLater":
"Statistics failed to load. Please try again later.",
"Statistieken konden niet worden geladen. Probeer het later opnieuw.",
"cleanupComplete": "Cleanup Complete",
"cleanedOldData": "Cleaned data older than 90 days",
"exportFeature": "Export Feature",
"exportInDevelopment": "Data export is under development",
// 商品模块 - 通用
'availablePackages': 'Available Packages',
'remainingQuota': 'Remaining Quota',
'totalQuota': 'Total Quota',
'remaining': 'Remaining',
'featureDescription': 'Feature Description',
'availablePackages': 'Beschikbare pakketten',
'remainingQuota': 'Resterend tegoed',
'totalQuota': 'Totaal tegoed',
'remaining': 'Resterend',
'featureDescription': 'Functiebeschrijving',
'paymentSuccess': 'Betaling geslaagd',
'paymentFailed': 'Betaling mislukt',
'gotIt': 'Begrepen',
@ -325,12 +326,12 @@ const Map<String, String> nlNL = {
'alipayPaymentLaunchFailed': 'Kan Alipay niet starten',
'cannotLaunchAlipayPayment': 'Kan Alipay niet starten',
'alipayPaymentException': 'Alipay-uitzondering',
"insufficientIntegral": "Insufficient integral",
"insufficientIntegral": "Onvoldoende punten",
"insufficientBalanceDesc":
'Insufficient balance, please go to the corresponding recharge page to recharge.',
"recharge": 'Go to Recharge',
'Onvoldoende saldo. Ga naar de bijbehorende opwaardeerpagina om op te waarderen.',
"recharge": 'Naar opwaarderen',
"aiMemberExpiredDesc":
'AI membership expired, please go to the membership recharge page to renew.',
'AI-lidmaatschap verlopen. Ga naar de opwaardeerpagina om te verlengen.',
// 商品模块 - AI商品页
'musicAndRecommendation': 'Music & Recommendation',
@ -358,37 +359,38 @@ const Map<String, String> nlNL = {
'templatedMessagesAndScheduleReminders':
'Template messages and schedule reminders',
'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',
'sceneLexicon': 'Scenario Glossary',
'subtitleDisplay': 'Subtitles',
'realtimeTranscription': 'Realtime transcriptie',
'sceneLexicon': 'Scenario-woordenlijst',
'subtitleDisplay': 'Ondertitels',
'transHeaderDesc1':
'Real-time simultaneous interpretation and text translation with low-latency voice.',
'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.',
'translateZhEn': 'Chinese-English translation',
'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast',
'multiLangTextTranslation': 'Multilingual text translation',
'Realtime simultaan tolken en tekstvertaling met spraak met lage latentie.',
'transHeaderDesc2': 'Geschikt voor reizen, zaken, lezingen en onderwijs.',
'translateZhEn': 'Chinees-Engelse vertaling',
'lowLatencyVoiceBroadcast': 'Spraakweergave met lage latentie',
'multiLangTextTranslation': 'Meertalige tekstvertaling',
'termOptimizationContextPreserve':
'Terminology optimization and context preservation',
'lexiconTourBusinessLife': 'Travel/Business/Life lexicons',
'personalVocabularyMemory': 'Personal vocabulary memory',
'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode',
'colorHighContrast': 'High color contrast',
'Terminologie-optimalisatie en contextbehoud',
'lexiconTourBusinessLife':
'Woordenlijsten voor reizen/zakelijk/dagelijks leven',
'personalVocabularyMemory': 'Persoonlijk woordenboekgeheugen',
'conversationSubtitleLargeText': 'Gespreksondertitels / grote-tekstmodus',
'colorHighContrast': 'Hoog kleurcontrast',
'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',
'keywordSearch': 'Keyword Search',
'collaborationSharing': 'Collaboration & Sharing',
'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':
'Suitable for business meetings, class notes, and interview minutes.',
'meetingAutoRecording': 'Auto recording and segmentation',
'meetingAutoRecording': 'Automatisch opnemen en segmenteren',
'meetingSpeakerTagging': 'Speaker labeling',
'meetingLongAudioTranscription': 'Long audio transcription',
'meetingKeyPointSummary': 'Key point extraction',
@ -397,7 +399,7 @@ const Map<String, String> nlNL = {
'meetingExportSummary': 'Export minutes',
'meetingMultiPlatformShare': 'Share across platforms',
'meetingDisclaimer':
'Use in quiet environments; performance depends on microphone and network.',
'Gebruik in een rustige omgeving; prestaties zijn afhankelijk van microfoon en netwerk.',
// 商品模块 - VIP会员页
'benefitsOverview': 'Benefits overview',
@ -411,7 +413,7 @@ const Map<String, String> nlNL = {
'longTermDiscountPlan': 'Long-term discount plan',
'generalPrivileges': 'General privileges',
'earlyAccessNewFeatures': 'Early access to new features',
'crossDeviceSync': 'Cross-device sync',
'crossDeviceSync': 'Synchronisatie tussen apparaten',
'vipDisclaimer':
'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_002_name': 'Meeting Basic 500',
'meet_003_name': 'Meeting Basic 1000',
'trans_001_name': 'Translation Basic 100',
'trans_002_name': 'Translation Basic 500',
'trans_003_name': 'Translation Basic 1000',
'trans_001_name': 'Vertaling Basis 100',
'trans_002_name': 'Vertaling Basis 500',
'trans_003_name': 'Vertaling Basis 1000',
'ai_001_desc': 'Includes 100 uses. Access core AI features.',
'ai_002_desc': 'Includes 500 uses. Access core AI features.',
'ai_003_desc': 'Includes 1000 uses. Access core AI features.',
'meet_001_desc': 'Includes 100 meeting recordings/transcriptions.',
'meet_002_desc': 'Includes 500 meeting recordings/transcriptions.',
'meet_003_desc': 'Includes 1000 meeting recordings/transcriptions.',
'trans_001_desc': 'Includes 100 translations (voice/text).',
'trans_002_desc': 'Includes 500 translations (voice/text).',
'trans_003_desc': 'Includes 1000 translations (voice/text).',
'meet_001_desc': 'Bevat 100 vergaderopnames/transcripties.',
'meet_002_desc': 'Bevat 500 vergaderopnames/transcripties.',
'meet_003_desc': 'Bevat 1000 vergaderopnames/transcripties.',
'trans_001_desc': 'Bevat 100 vertalingen (spraak/tekst).',
'trans_002_desc': 'Bevat 500 vertalingen (spraak/tekst).',
'trans_003_desc': 'Bevat 1000 vertalingen (spraak/tekst).',
// 商品模块 - 页脚
'appNameProvider': 'App: VoiTrans · Provided by: VoiTrans',
@ -489,37 +491,38 @@ const Map<String, String> nlNL = {
'recordingDetails': 'Opnamedetails',
'aiSummary': 'AI-samenvatting',
'meetingTranscript': 'Vergadertranscript',
'files': 'Files',
'mine': 'Mine',
'connect': 'Connect',
'allFiles': 'All Files',
'searchInAllFiles': 'Search in all files',
'from': 'From',
'sortBy': 'Sort by',
'creationTime': 'Creation Time',
'bluetoothConnection': 'Bluetooth Connection',
'meetingReconnect': 'Reconnect',
'searching': 'Searching...',
'searchFailed': 'Search failed, please check if Bluetooth is enabled',
'aiPenNotFound': 'AI PEN device not found',
'connectedToAiPen': 'Connected to AI PEN device',
'checkingNewFiles': 'Checking for new files to import',
'files': 'Bestanden',
'mine': 'Mijn',
'connect': 'Verbinden',
'allFiles': 'Alle bestanden',
'searchInAllFiles': 'Zoeken in alle bestanden',
'from': 'Van',
'sortBy': 'Sorteren op',
'creationTime': 'Aanmaaktijd',
'bluetoothConnection': 'Bluetooth-verbinding',
'meetingReconnect': 'Opnieuw verbinden',
'searching': 'Zoeken...',
'searchFailed': 'Zoeken mislukt. Controleer of Bluetooth is ingeschakeld',
'aiPenNotFound': 'AI PEN-apparaat niet gevonden',
'connectedToAiPen': 'Verbonden met AI PEN-apparaat',
'checkingNewFiles': 'Nieuwe bestanden voor import controleren',
'startingWifi': 'Starting Wi-Fi...',
'newFilesDetected': 'New files detected, preparing to import',
'noNewFiles': 'No new files to import',
'connectingWifi': 'Connecting to Wi-Fi...',
'wifiConnected': 'Wi-Fi connected successfully',
'downloadingFiles': 'Downloading files...',
'downloadingFileProgress': 'Total {total} files, downloading file {current}',
'downloadComplete': 'Download complete',
'connectingWifi': 'Verbinden met wifi...',
'wifiConnected': 'Wifi-verbinding geslaagd',
'downloadingFiles': 'Bestanden downloaden...',
'downloadingFileProgress':
'Totaal {total} bestanden, bestand {current} downloaden',
'downloadComplete': 'Download voltooid',
'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模块 - 录音功能
'startRecording': 'Start Recording',
'liveRecording': 'Live Recording',
'audioVideoRecording': 'Audio/Video Recording',
'callRecording': 'Call Recording',
'startRecording': 'Opname starten',
'liveRecording': 'Live opname',
'audioVideoRecording': 'Audio-/video-opname',
'callRecording': 'Gespreksopname',
'importAudio': 'Import Audio',
'meetingRecordExitTitle': 'Opname verlaten', // 退出录音
'meetingRecordExitMessage':
@ -584,31 +587,32 @@ const Map<String, String> nlNL = {
'inputDescHint': 'Voer een beschrijving in',
'custom': 'Aangepast',
'pleaseEnter': 'Voer alstublieft in',
'viewAll': 'View All',
'recordingLanguage': 'Recording Language',
'chineseSimplified': 'Chinese Mandarin (Simplified)',
'meetingGenerateNow': 'Generate Now',
'keyEventsAnalyzed': 'Analyzed {count} key events.',
'viewAll': 'Alles bekijken',
'recordingLanguage': 'Opnametaal',
'chineseSimplified': 'Chinees Mandarijn (vereenvoudigd)',
'meetingGenerateNow': 'Nu genereren',
'keyEventsAnalyzed': '{count} belangrijke gebeurtenissen geanalyseerd.',
'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模块 - 文件操作
'importing': 'Importing...',
'batchImporting': 'Batch importing...',
'importingLocalRecordings': 'Importing local recordings...',
'importFailed': 'Import file failed: {filePath}, error: {error}',
'importSuccess': 'Successfully imported {count} local recordings',
'importError': 'Import failed: {error}',
'pleaseSelectAudioFile': 'Please select audio file',
'importingLocalRecordings': 'Lokale opnames importeren...',
'importFailed': 'Importeren mislukt: {filePath}, fout: {error}',
'importSuccess': '{count} lokale opnames succesvol geïmporteerd',
'importError': 'Importeren mislukt: {error}',
'pleaseSelectAudioFile': 'Selecteer een audiobestand',
'shareAudio': 'Share Meeting Audio',
'shareComplete': 'Share complete!',
'shareFailed': 'Share failed: {error}',
'fileProcessingFailed': 'File processing failed: {filePath}, error: {error}',
'shareFailed': 'Delen mislukt: {error}',
'fileProcessingFailed':
'Bestandsverwerking mislukt: {filePath}, fout: {error}',
// Meeting模块 - 思维导图
'saveMindMap': 'Mindmap opslaan',
'shareMindMap': 'Share Mind Map',
'shareSuccess': 'Share Success',
'shareSuccess': 'Delen geslaagd',
// Meeting模块 - AI问答
'askAI': 'Ask AI ...',
@ -642,29 +646,30 @@ const Map<String, String> nlNL = {
'Summary speakers will be updated automatically',
// Meeting模块 - 云端同步
'syncToCloud': 'Sync to Cloud',
'syncToCloud': 'Synchroniseren met cloud',
'syncToCloudTip':
'Automatically sync your recordings to the cloud, you can play, manage and share recordings through any VOITRANS APP or VOITRANS Web (web.voitrans.com).',
'syncToVoitransApp': 'Sync VOITRANS APP',
'transcriptionRecord': 'Transcription Record',
'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': 'Synchroniseren met VOITRANS-app',
'transcriptionRecord': 'Transcriptierecord',
// Meeting模块 - 我的页面
'transcriptionRecords': 'Transcription Records',
'templateCommunity': 'Template Community',
'comingSoon': 'Coming Soon',
'integration': 'Integration',
'transcriptionRecords': 'Transcriptierecords',
'templateCommunity': 'Sjablooncommunity',
'comingSoon': 'Binnenkort',
'integration': 'Integratie',
'voitransPrivateCloud': 'VOITRANS PRIVATE CLOUD',
'enabled': 'Enabled',
'disabled': 'Disabled',
'myVoitransDevice': 'My VOITRANS Device',
'enabled': 'Ingeschakeld',
'disabled': 'Uitgeschakeld',
'myVoitransDevice': 'Mijn VOITRANS-apparaat',
'helpAndFeedback': 'Help & Feedback',
'aboutVoitrans': 'About VOITRANS',
'meetingDays': 'Days',
'meetingHours': 'Hours',
'voitransAiMember': 'Voitrans AI Member',
'unlockStarterMember': 'Unlock Starter Member',
'bindDeviceToActivate': 'Bind Voitrans device to activate Starter membership',
'unlockNow': 'Unlock Now',
'bindDeviceToActivate':
'Koppel Voitrans-apparaat om Starter-lidmaatschap te activeren',
'unlockNow': 'Nu ontgrendelen',
// Meeting模块 - 会员与升级
'comparison': 'Comparison',
@ -687,7 +692,7 @@ const Map<String, String> nlNL = {
'customTemplateDesc':
'You can customize summary prompts according to your needs and use them to generate the required summaries.',
'askAiDesc':
'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.',
'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':
'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.',
'templateCommunityDesc':
@ -695,13 +700,13 @@ const Map<String, String> nlNL = {
'speakerIdentificationDesc':
'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.',
'privateCloudSyncDesc':
'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.',
'Uw opnames en transcripties worden veilig opgeslagen op speciale cloudservers, met volledige versleuteling tijdens upload en download om privacy en veiligheid te waarborgen.',
'aiVoiceEnhancementDesc':
'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.',
'audioImportDesc':
'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.',
'multipleExportFormatsDesc':
'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.',
'Exporteer uw audio-opnames, transcriptietekst en samenvattingen in verschillende indelingen (TXT, PDF, JPEG) naar wens.',
'upgradeMembership': 'Upgrade Your Membership',
'yearlySubscription': 'Yearly Subscription',
'monthlySubscription': 'Monthly Subscription',
@ -731,7 +736,7 @@ const Map<String, String> nlNL = {
'purchase': 'Purchase',
// Meeting模块 - 录音语言
'recordLanguage': 'Recording Language',
'recordLanguage': 'Opnametaal',
'cantonese': 'Cantonese',
'sichuan': 'Sichuan Dialect',
'shanghai': 'Shanghai Dialect',
@ -758,10 +763,10 @@ const Map<String, String> nlNL = {
"translationRecharge": "Vertalingspayering",
"meetingAssistantRecharge": "Vergaderassistentpayering",
"cloudSync": "Cloud-synchronisatiepayering",
"memberService": "Member Service",
"bindRewardTitle": "Rewards",
"memberService": "Ledenservice",
"bindRewardTitle": "Beloningen",
"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:",
"accountId": "Account-ID:",
"systemSetting": "Systeeminstellingen",
@ -810,20 +815,20 @@ const Map<String, String> nlNL = {
"loading": "Laden...",
// 设备管理模块
"deviceTypeUnknown": "Unknown Device",
"deviceTypeClassicBluetoothHeadset": "Classic Bluetooth Headset",
"deviceTypeBleBluetoothHeadset": "BLE Bluetooth Headset",
"deviceTypeSmartVoiceRecorder": "Smart Voice Recorder",
"deviceTypeSmartEye": "Smart Glasses",
"deviceTypeUnknown": "Onbekend apparaat",
"deviceTypeClassicBluetoothHeadset": "Klassieke Bluetooth-headset",
"deviceTypeBleBluetoothHeadset": "BLE Bluetooth-headset",
"deviceTypeSmartVoiceRecorder": "Slimme voicerecorder",
"deviceTypeSmartEye": "Slimme bril",
"unbind": "Ontkoppelen",
"noDevicesBound": "No devices bound yet",
"pleaseBindDeviceFirst": "Please bind a device first to manage",
"noMacAddress": "No MAC Address",
"licenseCode": "License Code",
"confirmUnbind": "Confirm Unbind",
"noDevicesBound": "Nog geen apparaten gekoppeld",
"pleaseBindDeviceFirst": "Koppel eerst een apparaat om te beheren",
"noMacAddress": "Geen MAC-adres",
"licenseCode": "Licentiecode",
"confirmUnbind": "Ontkoppelen bevestigen",
"confirmUnbindMessage":
"Are you sure you want to unbind device \"{deviceName}\"?",
"confirmUnbindAction": "Confirm Unbind",
"Weet u zeker dat u apparaat \"{deviceName}\" wilt ontkoppelen?",
"confirmUnbindAction": "Ontkoppelen bevestigen",
// Agent模块 - 主界面
"Lily": "Lily",
@ -854,22 +859,22 @@ const Map<String, String> nlNL = {
"loadMoreMessages": "Meer berichten laden...",
"loadFailedClickRetry": "Laden mislukt, klik om opnieuw te proberen",
"swipeUpForMore": "Veeg omhoog voor meer",
"callingTool": "I'm helping you, please wait!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断
"callingTool": "Ik help u, even geduld!", // 正在帮您,请稍等!
"voice_interrupt": "Onderbreken", // 语音打断
'voice_interrupt_tip':
'Wanneer ingeschakeld: De AI wordt niet onderbroken door uw stem terwijl deze spreekt en kan slechts één gespreksronde tegelijk verwerken. Om een nieuwe ronde te starten, zeg gewoon het activeringswoord.',
// Agent模块 - 预设提示词
"presetMusic": "Play some music", // 来点音乐
"presetNavigation": "Navigation to", // 导航
"presetWeather": "Today's weather", // 今日天气
"presetNews": "Today's news", // 今日新闻
"presetFood": "Nearby food", // 美食
"playSomeMusic": "Play some popular music", // 播放一些流行音乐
"navigationTo": "Please help me navigate to", // 导航到
"todayWeather": "How's the weather today?", // 今日天气
"todayNews": "What's the news today?", // 今日新闻
"nearbyFood": "What delicious food is nearby?", // 美食
"presetMusic": "Speel muziek", // 来点音乐
"presetNavigation": "Navigeer naar", // 导航
"presetWeather": "Weer vandaag", // 今日天气
"presetNews": "Nieuws vandaag", // 今日新闻
"presetFood": "Eten in de buurt", // 美食
"playSomeMusic": "Speel populaire muziek", // 播放一些流行音乐
"navigationTo": "Navigeer naar", // 导航到
"todayWeather": "Hoe is het weer vandaag?", // 今日天气
"todayNews": "Wat is het nieuws vandaag?", // 今日新闻
"nearbyFood": "Waar kan ik lekker eten in de buurt?", // 附近有什么好吃的
// Agent模块 - 欢迎消息与权限
'welcomeMessage': 'Hallo! Ik ben **Lily**, ik kan u helpen met:\n\n'
@ -1017,8 +1022,8 @@ const Map<String, String> nlNL = {
"strongWind": "Harde wind",
// 翻译模块 - 中间层
"pictureTranslation": "Picture Translation",
"textTranslation": "Text Translation",
"pictureTranslation": "Afbeeldingsvertaling",
"textTranslation": "Tekstvertaling",
// 翻译模块 - 主页
"translationHistory": "Vertaalgeschiedenis",
@ -1028,14 +1033,14 @@ const Map<String, String> nlNL = {
"phoneUser": "Telefoongebruiker",
"selectSourceLanguage": "Selecteer brontaal",
"selectTargetLanguage": "Selecteer doeltaal",
"me": "Me",
"counterPart": "Counterpart",
"me": "Ik",
"counterPart": "Gesprekspartner",
"bluetoothCallStateError":
"Please make sure the Bluetooth headset is connected to the phone and in a call state",
"autoDetect": "Auto Detect", // 自动检测
"Zorg ervoor dat de Bluetooth-headset met de telefoon is verbonden en in gesprek is",
"autoDetect": "Automatisch detecteren", // 自动检测
// 翻译模块 - 文本翻译
"languageDetectionFailed": "Language detection failed",
"languageDetectionFailed": "Taaldetectie mislukt",
// 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'Zwevend venster uitschakelen',
@ -1044,17 +1049,17 @@ const Map<String, String> nlNL = {
'micPermissionRequiredForRecording':
'Microfoonmachtiging vereist voor opname',
'deleteTranslationRecordError': 'Fout bij verwijderen vertaalrecord: @error',
"translationFailed": "Translation failed",
"translationFailed": "Vertalen mislukt",
"translating": "Vertalen",
"translate": "Vertaal",
"pleaseInputText": "Please input text",
"pleaseInputText": "Voer tekst in",
"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",
"historyRecords": "History Records",
"clearResults": "Clear Results",
"historyRecords": "Geschiedenisrecords",
"clearResults": "Resultaten wissen",
"clearHistory": "Geschiedenis wissen",
"clearHistoryConfirm":
"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.",
// 翻译模块 - 图片翻译
"selectImageSource": "Select Image Source",
"imagePreview": "Image Preview",
"translationResult": "Translation Result",
"recognitionResult": "Recognition Result",
"translatedImagePreview": "Translated Image Preview",
"translatedImageLoadFailed": "Failed to load translated image",
"pleaseSelectImage": "Please select an image",
"imageLoadFailed": "Image load failed",
"imageQuality": "Image Quality",
"maxSize": "Max Size",
"close": "Close",
"setImageQuality": "Set Image Quality",
"selectImageSource": "Selecteer afbeeldingsbron",
"imagePreview": "Voorbeeld van afbeelding",
"translationResult": "Vertaalresultaat",
"recognitionResult": "Herkenningsresultaat",
"translatedImagePreview": "Voorbeeld van vertaalde afbeelding",
"translatedImageLoadFailed": "Kan vertaalde afbeelding niet laden",
"pleaseSelectImage": "Selecteer een afbeelding",
"imageLoadFailed": "Afbeelding laden mislukt",
"imageQuality": "Beeldkwaliteit",
"maxSize": "Maximale grootte",
"close": "Sluiten",
"setImageQuality": "Beeldkwaliteit instellen",
"currentQuality": "Current quality: @value%",
"setMaxSize": "Set Max Size",
"setMaxSize": "Maximale grootte instellen",
"currentMaxSize": "Current: @pxpx",
"waitingForAction": "Waiting for action",
"pleaseSelectImageToStart": "Please select an image to start",
"chooseImage": "Choose Image",
"openingCamera": "Opening camera...",
"openingPhotoAlbum": "Opening photo album...",
"cancelled": "Cancelled",
"userCancelledSelection": "User cancelled selection",
"translatingImage": "Translating Image",
"callingImageTranslateService": "Calling image translation service...",
"savingRecord": "Saving Record",
"savingTranslationResult": "Saving translation result...",
"translationCompleted": "Translation Completed",
"allStepsCompleted": "All steps completed",
"processingFailed": "Processing Failed",
"waitingForAction": "Wachten op actie",
"pleaseSelectImageToStart": "Selecteer een afbeelding om te starten",
"chooseImage": "Afbeelding kiezen",
"openingCamera": "Camera openen...",
"openingPhotoAlbum": "Fotoalbum openen...",
"cancelled": "Geannuleerd",
"userCancelledSelection": "Gebruiker heeft selectie geannuleerd",
"translatingImage": "Afbeelding vertalen",
"callingImageTranslateService": "Afbeeldingsvertaalservice aanroepen...",
"savingRecord": "Record opslaan",
"savingTranslationResult": "Vertaalresultaat opslaan...",
"translationCompleted": "Vertaling voltooid",
"allStepsCompleted": "Alle stappen voltooid",
"processingFailed": "Verwerking mislukt",
"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",
"imageTooLargeHint":
"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":
"Image translation failed. Network issue or rate limit. Please try later",
"Afbeeldingsvertaling mislukt. Netwerkprobleem of snelheidslimiet. Probeer het later opnieuw",
"imageTranslationApiException":
"Image translation API exception. Check network and retry",
"permissionRequired": "Permission Required",
"cameraPermissionRequired": "Camera permission required to take photos",
"Uitzondering in afbeeldingsvertaal-API. Controleer het netwerk en probeer het opnieuw",
"permissionRequired": "Machtiging vereist",
"cameraPermissionRequired": "Cameramachtiging vereist om foto's te maken",
"photoAlbumPermissionRequired":
"Photo album permission required to pick images",
"translationDetails": "Translation Details",
"Fotoalbumtoestemming vereist om afbeeldingen te kiezen",
"translationDetails": "Vertaaldetails",
"originalImage": "Original Image",
"sourceLanguage": "Source Language",
"targetLanguage": "Target Language",
"translationTime": "Translation Time",
"translationTime": "Vertaaltijd",
"shareInDevelopment": "Sharing feature under development",
// 翻译模块 - 录音文件
@ -1211,24 +1217,24 @@ const Map<String, String> nlNL = {
'Accountservice is geïnitialiseerd', // AccountService 已初始化
// 权限模块
'meetingStoragePermission': 'Storage',
'meetingStoragePermission': 'Opslag',
'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':
'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',
'communicationPermissions': 'Communicatietoestemmingen',
'bluetoothPermissions': 'Bluetooth Permissions',
'notificationPermissions': 'Notification Permissions',
'storagePermissions': 'Storage Permissions',
'microphonePermissions': 'Microphone Permissions',
'alarmPermissions': 'Alarm Permissions',
'bluetoothPermissions': 'Bluetooth-machtigingen',
'notificationPermissions': 'Meldingsmachtigingen',
'storagePermissions': 'Opslagmachtigingen',
'microphonePermissions': 'Microfoonmachtigingen',
'alarmPermissions': 'Alarmmachtigingen',
'calendarPermissions': 'Kalendertoestemmingen',
'locationPermissions': 'Locatietoestemmingen',
'phone': 'Telefoon',
'sms': 'SMS',
'contacts': 'Contacts',
'notification': 'Notification',
'contacts': 'Contacten',
'notification': 'Meldingen',
'alarm': 'Alarm',
'calendarWrite': 'Kalender schrijven',
'calendarFullAccess': 'Volledige kalendertoegang',
@ -1237,7 +1243,7 @@ const Map<String, String> nlNL = {
'smsPermissionDesc':
'Gebruikt voor de functie voor het verzenden van sms-berichten',
'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':
'Gebruikt voor het maken van kalenderafspraken en herinneringen',
'calendarFullAccessPermissionDesc':
@ -1257,72 +1263,74 @@ const Map<String, String> nlNL = {
'smsPermissionDetailDesc':
'De functie voor het verzenden van sms-berichten vereist sms-toestemming',
'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':
'Het maken van kalenderafspraken vereist schrijftoestemming voor de kalender',
'calendarFullAccessPermissionDetailDesc':
'Het beheren van kalenderafspraken vereist volledige kalendertoegang',
'locationPermissionDetailDesc':
'Het ophalen van locatie-informatie vereist locatietoestemming',
'contactsPermissionDesc': 'Used for accessing contact information',
'contactsPermissionDesc': 'Gebruikt voor toegang tot contactgegevens',
'contactsPermissionDetailDesc':
'Phone call and SMS functionality requires contacts permission to select contacts',
'Belfunctie en sms-functionaliteit vereisen contactenmachtiging om contacten te selecteren',
'bluetoothPermissionDesc':
'Used for connecting and managing Bluetooth devices',
'Gebruikt om Bluetooth-apparaten te verbinden en te beheren',
'bluetoothPermissionDetailDesc':
'Connecting to Bluetooth headphones and other devices requires Bluetooth permission',
'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices',
'Voor het verbinden met Bluetooth-koptelefoons en andere apparaten is Bluetooth-machtiging vereist',
'bluetoothScanPermissionDesc':
'Gebruikt om Bluetooth-apparaten in de buurt te scannen',
'bluetoothScanPermissionDetailDesc':
'Scanning for nearby Bluetooth devices requires Bluetooth scan permission',
'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices',
'Voor het scannen naar Bluetooth-apparaten in de buurt is Bluetooth-scanmachtiging vereist',
'bluetoothConnectPermissionDesc':
'Gebruikt om verbinding te maken met Bluetooth-apparaten',
'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',
'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':
'De app heeft deze toestemming nodig voor volledige functionaliteit',
'permanentDenialText':
'U hebt de toestemming {permission} permanent geweigerd, ga naar de app-instellingen om deze in te schakelen',
'goToSettings': 'Ga naar instellingen',
'bluetoothScan': 'Bluetooth Scan',
'bluetoothConnect': 'Bluetooth Connect',
'bluetoothScan': 'Bluetooth scannen',
'bluetoothConnect': 'Bluetooth verbinden',
'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':
'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':
'The app needs location permission to scan Bluetooth devices.',
'De app heeft locatiemachtiging nodig om Bluetooth-apparaten te scannen.',
'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':
'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':
'Location permission has been permanently denied, please go to settings to enable it manually.',
'notificationPermission': 'Notification',
'locationPermission': 'Location',
'Locatiemachtiging is permanent geweigerd; ga naar instellingen om deze handmatig in te schakelen.',
'notificationPermission': 'Meldingen',
'locationPermission': 'Locatie',
'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':
'Location permission is required to get current location.',
'Locatiemachtiging is vereist om de huidige locatie te verkrijgen.',
'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':
'You have permanently denied location permission, please go to settings to enable it.',
'storagePermission': 'Storage',
'U hebt locatiemachtiging permanent geweigerd; ga naar instellingen om deze in te schakelen.',
'storagePermission': 'Opslag',
'microphonePermissionExplanation':
'We need microphone permission to record audio content.',
'We hebben microfoonmachtiging nodig om audio op te nemen.',
'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':
'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':
'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 ',
'permissionUtilPermission': ' Permission',
'permissionUtilRestricted': ' Permission Restricted',
'permissionUtilPermission': ' Machtiging',
'permissionUtilRestricted': ' Machtiging beperkt',
'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',
// 原生前台服务通知(Android)
@ -1411,27 +1419,27 @@ const Map<String, String> nlNL = {
'bleConnectionFailed': 'BLE-verbinding mislukt',
'deviceAuthorizationFailedCheckCode':
'Apparaatautorisatie mislukt, controleer de autorisatiecode',
'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙
'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作:
'bluetoothGuideTitle': 'Handmatige Bluetooth-activering vereist', // 需要手动开启蓝牙
'bluetoothGuideSteps': 'Volg deze stappen:', // 请按照以下步骤操作:
'bluetoothGuideStep1':
'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启
'Bluetooth inschakelen: Instellingen → Bluetooth → Aan', // 开启蓝牙:设置 → 蓝牙 → 开启
'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':
'Return to app to continue pairing process', // 返回应用继续配对流程
'Ga terug naar de app om het koppelproces te vervolgen', // 返回应用继续配对流程
'bluetoothGuideTip':
'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置
'iKnow': 'I Know', // 我知道了
'Tip: houd in het Bedieningspaneel het Bluetooth-pictogram ingedrukt om snel naar de Bluetooth-instellingen te gaan', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置
'iKnow': 'Begrepen', // 我知道了
// 配对模块 - 绑定奖励
"firstBindRewardTitle": "Welcome Reward",
"firstBindRewardDesc": "You've received binding rewards.",
"vipLevelLabel": "VIP Level:",
"expiryLabel": "Expiration:",
"notActivated": "Not activated",
"aiChatCreditsLabel": "AI Chat Credits:",
"translationCreditsLabel": "Translation Credits:",
"meetingCreditsLabel": "Meeting Credits:",
"firstBindRewardTitle": "Welkomstbeloning",
"firstBindRewardDesc": "Je hebt de koppelbeloningen ontvangen.",
"vipLevelLabel": "VIP-niveau:",
"expiryLabel": "Vervaldatum:",
"notActivated": "Niet geactiveerd",
"aiChatCreditsLabel": "AI Chat-tegoed:",
"translationCreditsLabel": "Vertaaltegoed:",
"meetingCreditsLabel": "Vergadertegoed:",
"ok": "OK",
// 用户反馈模块
@ -1463,13 +1471,14 @@ const Map<String, String> nlNL = {
"connectionFailed": "Verbinding mislukt",
"retryConnection": "Verbinding opnieuw proberen",
"ota_updateNow": "Nu bijwerken",
"otaVersionInfoFailed": "Failed to get version info. Please try again later.",
"otaVersionInfoFailed":
"Versie-informatie ophalen mislukt. Probeer het later opnieuw.",
"otaDeviceInfoUnavailable":
"Unable to get device info. Please check the connection and retry.",
"Kan geen apparaatinformatie ophalen. Controleer de verbinding en probeer het opnieuw.",
"otaProductInfoUnavailable":
"Unable to identify the device. Please reconnect and retry.",
"Kan het apparaat niet identificeren. Verbind opnieuw en probeer het opnieuw.",
"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",
"doNotDisconnect": "Verbreek de verbinding niet",
"charging": "Opladen",
@ -1495,7 +1504,7 @@ const Map<String, String> nlNL = {
'BLE-verbinding vereist\nZorg dat het apparaat verbonden is en probeer opnieuw',
'otaDeviceInfoUnavailableTitle': 'Apparaatinfo niet beschikbaar',
'otaCannotGetDeviceInfo':
'Cannot get device info\nPlease reconnect device or try again later',
'Kan geen apparaatinformatie ophalen\nVerbind het apparaat opnieuw of probeer het later opnieuw',
'otaBleCheckFailed': 'BLE-verbindingscontrole mislukt',
'otaCannotGetDeviceInfoCheckConnection':
'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 = {
// 通用
'continue': 'Continuar',
@ -18,11 +19,11 @@ const Map<String, String> ptPT = {
"unknownError": "Erro Desconhecido",
"asrConnectionFailed":
"Falha na ligação ao serviço de reconhecimento de voz. Verifique a rede ou tente novamente mais tarde.",
"justNow": "Just now",
"minutesAgo": "@minutes minutes ago",
"yesterday": "Yesterday",
"daysAgo": "@days days ago",
"hoursAgo": "@hours hours ago",
"justNow": "Agora",
"minutesAgo": "@minutes minutos atrás",
"yesterday": "Ontem",
"daysAgo": "@days dias atrás",
"hoursAgo": "@hours horas atrás",
// 启动页
"slogan": "Conectando o mundo, para além do som",
@ -222,55 +223,55 @@ const Map<String, String> ptPT = {
"scene": "Cenário",
// 用量统计模块
"aiChat": "AI Chat",
"translationStats": "Translation Statistics",
"meetingStats": "Meeting Statistics",
"today": "Today",
"thisWeek": "This Week",
"thisMonth": "This Month",
"history": "History",
"currentSessionStats": "Current Session Stats",
"translationCount": "Translation Count",
"sessionDuration": "Session Duration",
"characters": "Characters",
"recordingDuration": "Recording Duration",
"totalApiCalls": "Total API Calls",
"sessionCount": "Session Count",
"totalCharacters": "Total Characters",
"apiCallStats": "API Call Stats",
"translationApi": "Translation API",
"aiChat": "Chat de IA",
"translationStats": "Estatísticas de Tradução",
"meetingStats": "Estatísticas de Reuniões",
"today": "Hoje",
"thisWeek": "Esta semana",
"thisMonth": "Este mês",
"history": "Histórico",
"currentSessionStats": "Estatísticas da sessão atual",
"translationCount": "Número de traduções",
"sessionDuration": "Duração da sessão",
"characters": "Caracteres",
"recordingDuration": "Duração da gravação",
"totalApiCalls": "Total de chamadas à API",
"sessionCount": "Número de sessões",
"totalCharacters": "Total de caracteres",
"apiCallStats": "Estatísticas de chamadas à API",
"translationApi": "API de tradução",
"asr": "ASR",
"tts": "TTS",
"dataVolumeStats": "Data Volume Stats",
"sourceTextCharacters": "Source Text Characters",
"ttsTextCharacters": "TTS Text Characters",
"effectiveAudioDuration": "Effective Audio Duration",
"totalSessionDuration": "Total Session Duration",
"costStats": "Cost Stats",
"estimatedCost": "Estimated Cost",
"dailyCostThreshold": "Daily Cost Threshold",
"monthlyCostThreshold": "Monthly Cost Threshold",
"usageBehaviorStats": "Usage Behavior Stats",
"mostUsedLanguagePair": "Most-used language pair",
"mostUsedMode": "Most-used mode",
"asrApiCalls": "ASR Calls",
"totalAudioDuration": "Total Audio Duration",
"audioFileSize": "Audio File Size",
"transcriptBytes": "Transcript Bytes",
"loadFailed": "Load Failed",
"dataVolumeStats": "Estatísticas de volume de dados",
"sourceTextCharacters": "Caracteres do texto de origem",
"ttsTextCharacters": "Caracteres do texto TTS",
"effectiveAudioDuration": "Duração efetiva do áudio",
"totalSessionDuration": "Duração total da sessão",
"costStats": "Estatísticas de custo",
"estimatedCost": "Custo estimado",
"dailyCostThreshold": "Limite diário de custo",
"monthlyCostThreshold": "Limite mensal de custo",
"usageBehaviorStats": "Estatísticas de comportamento de uso",
"mostUsedLanguagePair": "Par de idiomas mais usado",
"mostUsedMode": "Modo mais usado",
"asrApiCalls": "Chamadas ASR",
"totalAudioDuration": "Duração total do áudio",
"audioFileSize": "Tamanho do ficheiro de áudio",
"transcriptBytes": "Bytes da transcrição",
"loadFailed": "Falha ao carregar",
"statsLoadFailedTryLater":
"Statistics failed to load. Please try again later.",
"Falha ao carregar estatísticas. Tente novamente mais tarde.",
"cleanupComplete": "Cleanup Complete",
"cleanedOldData": "Cleaned data older than 90 days",
"exportFeature": "Export Feature",
"exportInDevelopment": "Data export is under development",
// 商品模块 - 通用
'availablePackages': 'Available Packages',
'remainingQuota': 'Remaining Quota',
'totalQuota': 'Total Quota',
'remaining': 'Remaining',
'featureDescription': 'Feature Description',
'availablePackages': 'Pacotes disponíveis',
'remainingQuota': 'Quota restante',
'totalQuota': 'Quota total',
'remaining': 'Restante',
'featureDescription': 'Descrição da funcionalidade',
'paymentSuccess': 'Pagamento bem-sucedido',
'paymentFailed': 'Pagamento falhou',
'gotIt': 'Entendido',
@ -330,12 +331,12 @@ const Map<String, String> ptPT = {
'alipayPaymentLaunchFailed': 'Falha ao iniciar o Alipay',
'cannotLaunchAlipayPayment': 'Não é possível iniciar o Alipay',
'alipayPaymentException': 'Exceção do Alipay',
"insufficientIntegral": "Insufficient integral",
"insufficientIntegral": "Pontos insuficientes",
"insufficientBalanceDesc":
'Insufficient balance, please go to the corresponding recharge page to recharge.',
"recharge": 'Go to Recharge',
'Saldo insuficiente. Vá à página de recarga correspondente para recarregar.',
"recharge": 'Ir para recarregar',
"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商品页
'musicAndRecommendation': 'Music & Recommendation',
@ -363,7 +364,7 @@ const Map<String, String> ptPT = {
'templatedMessagesAndScheduleReminders':
'Template messages and schedule reminders',
'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',
@ -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.',
// 商品模块 - 会议商品页
'meetingRecording': 'Meeting Recording',
'meetingRecording': 'Gravação de reuniões',
'transcriptionAndSummary': 'Transcription & Summary',
'keywordSearch': 'Keyword Search',
'collaborationSharing': 'Collaboration & Sharing',
@ -394,7 +395,7 @@ const Map<String, String> ptPT = {
'Audio recording, transcription, keyword search, and auto summary.',
'meetingHeaderDesc2':
'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',
'meetingLongAudioTranscription': 'Long audio transcription',
'meetingKeyPointSummary': 'Key point extraction',
@ -403,7 +404,7 @@ const Map<String, String> ptPT = {
'meetingExportSummary': 'Export minutes',
'meetingMultiPlatformShare': 'Share across platforms',
'meetingDisclaimer':
'Use in quiet environments; performance depends on microphone and network.',
'Use em ambientes silenciosos; o desempenho depende do microfone e da rede.',
// 商品模块 - VIP会员页
'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_002_name': 'Tradução Básica 500',
'trans_003_name': 'Tradução Básica 1000',
'ai_001_desc': 'Includes 100 uses. Access core AI features.',
'ai_002_desc': 'Includes 500 uses. Access core AI features.',
'ai_003_desc': 'Includes 1000 uses. Access core AI features.',
'meet_001_desc': 'Includes 100 meeting recordings/transcriptions.',
'meet_002_desc': 'Includes 500 meeting recordings/transcriptions.',
'meet_003_desc': 'Includes 1000 meeting recordings/transcriptions.',
'ai_001_desc':
'Inclui 100 utilizações. Aceda às funcionalidades principais de IA.',
'ai_002_desc':
'Inclui 500 utilizações. Aceda às funcionalidades principais de IA.',
'ai_003_desc':
'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_002_desc': 'Inclui 500 traduções (voz/texto).',
'trans_003_desc': 'Inclui 1000 traduções (voz/texto).',
@ -448,14 +452,15 @@ const Map<String, String> ptPT = {
// 新手引导
'skip': "Saltar",
'next': 'Next',
'sayLilyHint': "Say \"Lily Lily\" to the mic",
'imHere': "I’m here~",
'guideWelcomeWakeAI': "Welcome to Voitrans! First, wake your AI “Lily”.",
'aiReplyCompleted': "Lily has finished the reply!",
'aiThinking': "Lily is thinking…",
'guideAwakenSuccess': "Great! Lily is awake—ask it to help.",
'confirmInput': "Confirm Input",
'next': 'Seguinte',
'sayLilyHint': "Diga \"Lily Lily\" ao microfone",
'imHere': "Estou aqui~",
'guideWelcomeWakeAI':
"Bem-vindo ao Voitrans! Primeiro, acorde a sua IA “Lily”.",
'aiReplyCompleted': "A Lily terminou a resposta!",
'aiThinking': "A Lily está a pensar…",
'guideAwakenSuccess': "Ótimo! A Lily está acordada — peça ajuda.",
'confirmInput': "Confirmar entrada",
'guideClickSendPrefix': "Tap send, ",
'guideWeatherStart': "Tell Lily: “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',
'aiSummary': 'Resumo IA',
'meetingTranscript': 'Transcrição da Reunião',
'files': 'Files',
'mine': 'Mine',
'connect': 'Connect',
'allFiles': 'All Files',
'searchInAllFiles': 'Search in all files',
'from': 'From',
'sortBy': 'Sort by',
'creationTime': 'Creation Time',
'bluetoothConnection': 'Bluetooth Connection',
'meetingReconnect': 'Reconnect',
'searching': 'Searching...',
'searchFailed': 'Search failed, please check if Bluetooth is enabled',
'aiPenNotFound': 'AI PEN device not found',
'connectedToAiPen': 'Connected to AI PEN device',
'checkingNewFiles': 'Checking for new files to import',
'files': 'Ficheiros',
'mine': 'Meu',
'connect': 'Ligar',
'allFiles': 'Todos os ficheiros',
'searchInAllFiles': 'Pesquisar em todos os ficheiros',
'from': 'De',
'sortBy': 'Ordenar por',
'creationTime': 'Hora de criação',
'bluetoothConnection': 'Ligação Bluetooth',
'meetingReconnect': 'Reconectar',
'searching': 'A pesquisar...',
'searchFailed': 'A pesquisa falhou. Verifique se o Bluetooth está ativado',
'aiPenNotFound': 'Dispositivo AI PEN não encontrado',
'connectedToAiPen': 'Ligado ao dispositivo AI PEN',
'checkingNewFiles': 'A verificar novos ficheiros para importar',
'startingWifi': 'Starting Wi-Fi...',
'newFilesDetected': 'New files detected, preparing to import',
'noNewFiles': 'No new files to import',
'connectingWifi': 'Connecting to Wi-Fi...',
'wifiConnected': 'Wi-Fi connected successfully',
'downloadingFiles': 'Downloading files...',
'downloadingFileProgress': 'Total {total} files, downloading file {current}',
'downloadComplete': 'Download complete',
'connectingWifi': 'A ligar ao Wi‑Fi...',
'wifiConnected': 'Wi‑Fi ligado com sucesso',
'downloadingFiles': 'A transferir ficheiros...',
'downloadingFileProgress':
'Total de {total} ficheiros, a transferir o ficheiro {current}',
'downloadComplete': 'Transferência concluída',
'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模块 - 录音功能
'startRecording': 'Start Recording',
'liveRecording': 'Live Recording',
'audioVideoRecording': 'Audio/Video Recording',
'callRecording': 'Call Recording',
'startRecording': 'Iniciar gravação',
'liveRecording': 'Gravação ao vivo',
'audioVideoRecording': 'Gravação de áudio/vídeo',
'callRecording': 'Gravação de chamadas',
'importAudio': 'Import Audio',
'meetingRecordExitTitle': 'Sair da gravação', // 退出录音
'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.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。
'overlayPermissionOpenSettingsFailed':
'Não foi possível abrir automaticamente as definições do sistema. Abra as Definições e ative manualmente a permissão de sobreposição.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。
'transcribing': 'Transcribing...',
'summarizing': 'Summarizing...',
'analyzing': 'Analyzing...',
'summaryComplete': 'Summary Complete',
'generate': 'Generate',
'overview': 'Overview',
'transcription': 'Transcription',
'summary': 'Summary',
'mindMap': 'Mind Map',
'editSpeaker': 'Edit',
'nameSpeaker': 'Name Speaker',
'transcribing': 'A transcrever...',
'summarizing': 'A resumir...',
'analyzing': 'A analisar...',
'summaryComplete': 'Resumo concluído',
'generate': 'Gerar',
'overview': 'Visão geral',
'transcription': 'Transcrição',
'summary': 'Resumo',
'mindMap': 'Mapa mental',
'editSpeaker': 'Editar',
'nameSpeaker': 'Nome do orador',
// Meeting模块 - 转写与总结
'reSummarize': 'Re-summarize',
'dateAndTime': 'Date & Time',
'location': 'Location',
'attendees': 'Attendees',
'inputLocation': 'Enter Location',
'inputAttendees': 'Enter Attendees',
'reSummarize': 'Resumir novamente',
'dateAndTime': 'Data e hora',
'location': 'Local',
'attendees': 'Participantes',
'inputLocation': 'Introduzir local',
'inputAttendees': 'Introduzir participantes',
// Meeting模块 - 模版与生成
'selectSummaryTemplate': 'Select Summary Template',
'useThisTemplate': 'Use This Template',
'lastUsed': 'Last Used',
'selectSummaryTemplate': 'Selecionar modelo de resumo',
'useThisTemplate': 'Usar este modelo',
'lastUsed': 'Último usado',
'create': 'Criar',
'templateDetails': 'Detalhes do modelo',
'tag': 'Etiqueta',
@ -589,110 +595,112 @@ const Map<String, String> ptPT = {
'inputDescHint': 'Por favor, insira a descrição',
'custom': 'Personalizado',
'pleaseEnter': 'Por favor, insira',
'viewAll': 'View All',
'recordingLanguage': 'Recording Language',
'chineseSimplified': 'Chinese Mandarin (Simplified)',
'meetingGenerateNow': 'Generate Now',
'keyEventsAnalyzed': 'Analyzed {count} key events.',
'viewAll': 'Ver tudo',
'recordingLanguage': 'Idioma de gravação',
'chineseSimplified': 'Chinês mandarim (simplificado)',
'meetingGenerateNow': 'Gerar agora',
'keyEventsAnalyzed': '{count} eventos-chave analisados.',
'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模块 - 文件操作
'importing': 'Importing...',
'batchImporting': 'Batch importing...',
'importingLocalRecordings': 'Importing local recordings...',
'importFailed': 'Import file failed: {filePath}, error: {error}',
'importSuccess': 'Successfully imported {count} local recordings',
'importError': 'Import failed: {error}',
'pleaseSelectAudioFile': 'Please select audio file',
'shareAudio': 'Share Meeting Audio',
'shareComplete': 'Share complete!',
'shareFailed': 'Share failed: {error}',
'fileProcessingFailed': 'File processing failed: {filePath}, error: {error}',
'importing': 'A importar...',
'batchImporting': 'Importação em lote...',
'importingLocalRecordings': 'A importar gravações locais...',
'importFailed': 'Falha ao importar ficheiro: {filePath}, erro: {error}',
'importSuccess': '{count} gravações locais importadas com sucesso',
'importError': 'Falha na importação: {error}',
'pleaseSelectAudioFile': 'Selecione um ficheiro de áudio',
'shareAudio': 'Partilhar áudio da reunião',
'shareComplete': 'Partilha concluída!',
'shareFailed': 'Falha ao partilhar: {error}',
'fileProcessingFailed':
'Falha ao processar ficheiro: {filePath}, erro: {error}',
// Meeting模块 - 思维导图
'saveMindMap': 'Guardar mapa mental',
'shareMindMap': 'Share Mind Map',
'shareSuccess': 'Share Success',
'shareMindMap': 'Partilhar mapa mental',
'shareSuccess': 'Partilha bem-sucedida',
// Meeting模块 - AI问答
'askAI': 'Ask AI ...',
'askAIPrompt': 'What can I help you with today?',
'continueAsk': 'Continue Asking',
'todoList': 'To-Do List',
'extractConclusion': 'Extract Conclusion',
'generateKeyIndicators': 'Generate Key Indicators',
'askAI': 'Perguntar à IA...',
'askAIPrompt': 'Como posso ajudar hoje?',
'continueAsk': 'Continuar a perguntar',
'todoList': 'Lista de tarefas',
'extractConclusion': 'Extrair conclusão',
'generateKeyIndicators': 'Gerar indicadores-chave',
// Meeting模块 - 分享与导出
'shareLink': 'Share Link',
'copyTranscript': 'Copy Transcript',
'copySummary': 'Copy Summary',
'exportAudio': 'Export Audio',
'exportTranscript': 'Export Transcript',
'shareMeetingAudio': 'Share Meeting Audio',
'exportSummary': 'Export Summary',
'exportAs': 'Export As',
'exportingPDF': 'Exporting PDF...',
'shareLink': 'Partilhar link',
'copyTranscript': 'Copiar transcrição',
'copySummary': 'Copiar resumo',
'exportAudio': 'Exportar áudio',
'exportTranscript': 'Exportar transcrição',
'shareMeetingAudio': 'Partilhar áudio da reunião',
'exportSummary': 'Exportar resumo',
'exportAs': 'Exportar como',
'exportingPDF': 'A exportar PDF...',
'export': 'Exportar',
// Meeting模块 - 发言者
'applyToAllParagraphs': 'Aplicar a todos os parágrafos deste orador',
'summaryWillBeUpdatedAutomatically':
'O resumo será atualizado automaticamente com base no modelo',
'nameCurrentSpeaker': 'Name Current Speaker',
'recentlyUsedNames': 'Recently Used Names',
'applyToCurrentParagraph': 'Apply to Current Paragraph',
'totalTime': 'Total Time',
'nameCurrentSpeaker': 'Nomear orador atual',
'recentlyUsedNames': 'Nomes usados recentemente',
'applyToCurrentParagraph': 'Aplicar ao parágrafo atual',
'totalTime': 'Tempo total',
'summarySpeakerWillBeUpdatedAutomatically':
'Summary speakers will be updated automatically',
'Os oradores do resumo serão atualizados automaticamente',
// Meeting模块 - 云端同步
'syncToCloud': 'Sync to Cloud',
'syncToCloud': 'Sincronizar com a nuvem',
'syncToCloudTip':
'Automatically sync your recordings to the cloud, you can play, manage and share recordings through any VOITRANS APP or VOITRANS Web (web.voitrans.com).',
'syncToVoitransApp': 'Sync VOITRANS APP',
'transcriptionRecord': 'Transcription Record',
'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': 'Sincronizar para a app VOITRANS',
'transcriptionRecord': 'Registo de transcrição',
// Meeting模块 - 我的页面
'transcriptionRecords': 'Transcription Records',
'templateCommunity': 'Template Community',
'comingSoon': 'Coming Soon',
'integration': 'Integration',
'transcriptionRecords': 'Registos de transcrição',
'templateCommunity': 'Comunidade de modelos',
'comingSoon': 'Em breve',
'integration': 'Integração',
'voitransPrivateCloud': 'VOITRANS PRIVATE CLOUD',
'enabled': 'Enabled',
'disabled': 'Disabled',
'myVoitransDevice': 'My VOITRANS Device',
'helpAndFeedback': 'Help & Feedback',
'aboutVoitrans': 'About VOITRANS',
'meetingDays': 'Days',
'meetingHours': 'Hours',
'enabled': 'Ativado',
'disabled': 'Desativado',
'myVoitransDevice': 'O meu dispositivo VOITRANS',
'helpAndFeedback': 'Ajuda e feedback',
'aboutVoitrans': 'Sobre o VOITRANS',
'meetingDays': 'Dias',
'meetingHours': 'Horas',
'voitransAiMember': 'Voitrans AI Member',
'unlockStarterMember': 'Unlock Starter Member',
'bindDeviceToActivate': 'Bind Voitrans device to activate Starter membership',
'unlockNow': 'Unlock Now',
'bindDeviceToActivate':
'Vincular dispositivo Voitrans para ativar a subscrição Starter',
'unlockNow': 'Desbloquear agora',
// Meeting模块 - 会员与升级
'comparison': 'Comparison',
'detailedInfo': 'Detailed Information',
'monthlyTranscriptionTime': 'Monthly Transcription Time',
'comparison': 'Comparação',
'detailedInfo': 'Informações detalhadas',
'monthlyTranscriptionTime': 'Tempo mensal de transcrição',
'unlimited': 'Unlimited',
'professionalTemplates': 'Professional Templates',
'professionalTemplates': 'Modelos profissionais',
'limited': 'Limited',
'fullTemplates': 'Full Templates',
'professionalTerms': 'Professional Terms',
'customTemplates': 'Custom Templates',
'visualMindMap': 'Visual Mind Map',
'speakerIdentification': 'Speaker Identification',
'aiVoiceEnhancement': 'AI Voice Enhancement',
'audioImport': 'Audio Import',
'multipleExportFormats': 'Multiple Export Formats',
'professionalSummaryTemplates': 'Professional Summary Templates',
'fullTemplates': 'Modelos completos',
'professionalTerms': 'Termos profissionais',
'customTemplates': 'Modelos personalizados',
'visualMindMap': 'Mapa mental visual',
'speakerIdentification': 'Identificação de oradores',
'aiVoiceEnhancement': 'Melhoria de voz com IA',
'audioImport': 'Importação de áudio',
'multipleExportFormats': 'Vários formatos de exportação',
'professionalSummaryTemplates': 'Modelos profissionais de resumo',
'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':
'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':
'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':
'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.',
'templateCommunityDesc':
@ -700,16 +708,16 @@ const Map<String, String> ptPT = {
'speakerIdentificationDesc':
'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.',
'privateCloudSyncDesc':
'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.',
'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':
'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.',
'audioImportDesc':
'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.',
'multipleExportFormatsDesc':
'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.',
'upgradeMembership': 'Upgrade Your Membership',
'yearlySubscription': 'Yearly Subscription',
'monthlySubscription': 'Monthly Subscription',
'Exporte as suas gravações de áudio, texto de transcrição e resumos em vários formatos (TXT, PDF, JPEG) conforme necessário.',
'upgradeMembership': 'Atualize a sua subscrição',
'yearlySubscription': 'Subscrição anual',
'monthlySubscription': 'Subscrição mensal',
'proMonthly': 'Pro ¥60/month',
'proMonthlyDesc':
'7-day free trial, then ¥800/year. Cancel anytime before trial ends.',
@ -732,17 +740,17 @@ const Map<String, String> ptPT = {
'oneHundredTwentyMinutes': '120 minutes',
'validityPeriod': '*Validity Period: ',
'validityNote':
'Activated immediately after purchase, valid for 2 years after activation.',
'purchase': 'Purchase',
'Ativado imediatamente após a compra, válido por 2 anos após a ativação.',
'purchase': 'Comprar',
// Meeting模块 - 录音语言
'recordLanguage': 'Recording Language',
'recordLanguage': 'Idioma de gravação',
'cantonese': 'Cantonese',
'sichuan': 'Sichuan Dialect',
'shanghai': 'Shanghai Dialect',
'sichuan': 'Dialeto de Sichuan',
'shanghai': 'Dialeto de Xangai',
// Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Unknown Language',
'meetingUnknownLanguage': 'Idioma desconhecido',
'analysisFailed': 'Análise falhou, por favor tente mais tarde',
'transcriptionFailed': 'Transcrição falhou, por favor tente mais tarde',
'summaryFailed': 'Resumo falhou, por favor tente mais tarde',
@ -763,10 +771,10 @@ const Map<String, String> ptPT = {
"translationRecharge": "Recarga de Tradução",
"meetingAssistantRecharge": "Recarga do Assistente de Reunião",
"cloudSync": "Recarga de Sincronização em Nuvem",
"memberService": "Member Service",
"bindRewardTitle": "Rewards",
"memberService": "Serviço de membro",
"bindRewardTitle": "Recompensas",
"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:",
"accountId": "ID da Conta:",
"systemSetting": "Definição do Sistema",
@ -818,20 +826,20 @@ const Map<String, String> ptPT = {
"loading": "A carregar...",
// 设备管理模块
"deviceTypeUnknown": "Unknown Device",
"deviceTypeClassicBluetoothHeadset": "Classic Bluetooth Headset",
"deviceTypeBleBluetoothHeadset": "BLE Bluetooth Headset",
"deviceTypeSmartVoiceRecorder": "Smart Voice Recorder",
"deviceTypeSmartEye": "Smart Glasses",
"deviceTypeUnknown": "Dispositivo desconhecido",
"deviceTypeClassicBluetoothHeadset": "Auriculares Bluetooth clássicos",
"deviceTypeBleBluetoothHeadset": "Auriculares Bluetooth BLE",
"deviceTypeSmartVoiceRecorder": "Gravador de voz inteligente",
"deviceTypeSmartEye": "Óculos inteligentes",
"unbind": "Desvincular",
"noDevicesBound": "No devices bound yet",
"pleaseBindDeviceFirst": "Please bind a device first to manage",
"noMacAddress": "No MAC Address",
"licenseCode": "License Code",
"confirmUnbind": "Confirm Unbind",
"noDevicesBound": "Ainda não há dispositivos vinculados",
"pleaseBindDeviceFirst": "Vincule primeiro um dispositivo para gerir",
"noMacAddress": "Sem endereço MAC",
"licenseCode": "Código de licença",
"confirmUnbind": "Confirmar desvinculação",
"confirmUnbindMessage":
"Are you sure you want to unbind device \"{deviceName}\"?",
"confirmUnbindAction": "Confirm Unbind",
"Tem a certeza de que pretende desvincular o dispositivo \"{deviceName}\"?",
"confirmUnbindAction": "Confirmar desvinculação",
// Agent模块 - 主界面
"Lily": "Lily",
@ -862,22 +870,22 @@ const Map<String, String> ptPT = {
"loadMoreMessages": "Carregar mais mensagens...",
"loadFailedClickRetry": "Falha ao carregar, clique para tentar novamente",
"swipeUpForMore": "Deslize para cima para ver mais",
"callingTool": "I'm helping you, please wait!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断
"callingTool": "Estou a ajudá-lo(a), aguarde!", // 正在帮您,请稍等!
"voice_interrupt": "Interromper", // 语音打断
'voice_interrupt_tip':
'Quando ativado: A IA não será interrompida pela sua voz enquanto fala e só poderá lidar com uma ronda de conversa de cada vez. Para iniciar uma nova ronda, basta dizer a palavra de ativação.',
// Agent模块 - 预设提示词
"presetMusic": "Play some music", // 来点音乐
"presetNavigation": "Navigation to", // 导航
"presetWeather": "Today's weather", // 今日天气
"presetNews": "Today's news", // 今日新闻
"presetFood": "Nearby food", // 美食
"playSomeMusic": "Play some popular music", // 播放一些流行音乐
"navigationTo": "Please help me navigate to", // 导航到
"todayWeather": "How's the weather today?", // 今日天气
"todayNews": "What's the news today?", // 今日新闻
"nearbyFood": "What delicious food is nearby?", // 美食
"presetMusic": "Tocar música", // 来点音乐
"presetNavigation": "Navegar para", // 导航
"presetWeather": "Tempo hoje", // 今日天气
"presetNews": "Notícias hoje", // 今日新闻
"presetFood": "Comida perto", // 美食
"playSomeMusic": "Tocar música popular", // 播放一些流行音乐
"navigationTo": "Navegar para", // 导航到
"todayWeather": "Como está o tempo hoje?", // 今日天气
"todayNews": "Quais são as notícias hoje?", // 今日新闻
"nearbyFood": "Onde há boa comida por aqui?", // 附近有什么好吃的
// Agent模块 - 欢迎消息与权限
'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",
// 翻译模块 - 中间层
"pictureTranslation": "Picture Translation",
"textTranslation": "Text Translation",
"pictureTranslation": "Tradução de imagens",
"textTranslation": "Tradução de texto",
// 翻译模块 - 主页
"translationHistory": "Histórico de Traduções",
@ -1036,14 +1044,14 @@ const Map<String, String> ptPT = {
"phoneUser": "Utilizador de Telemóvel",
"selectSourceLanguage": "Selecionar idioma de origem",
"selectTargetLanguage": "Selecionar idioma de destino",
"me": "Me",
"counterPart": "Counterpart",
"me": "Eu",
"counterPart": "Interlocutor",
"bluetoothCallStateError":
"Please make sure the Bluetooth headset is connected to the phone and in a call state",
"autoDetect": "Auto Detect", // 自动检测
"Certifique-se de que os auriculares Bluetooth estão ligados ao telemóvel e em estado de chamada",
"autoDetect": "Deteção automática", // 自动检测
// 翻译模块 - 文本翻译
"languageDetectionFailed": "Language detection failed",
"languageDetectionFailed": "Falha ao detetar idioma",
// 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'Desativar janela flutuante',
@ -1053,17 +1061,17 @@ const Map<String, String> ptPT = {
'Permissao de microfone necessaria para gravacao',
'deleteTranslationRecordError':
'Erro ao excluir registro de traducao: @error',
"translationFailed": "Translation failed",
"translationFailed": "Falha na tradução",
"translating": "A traduzir",
"translate": "Traduzir",
"pleaseInputText": "Please input text",
"pleaseInputText": "Introduza o texto",
"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",
"historyRecords": "History Records",
"clearResults": "Clear Results",
"historyRecords": "Registos do histórico",
"clearResults": "Limpar resultados",
"clearHistory": "Limpar Histórico",
"clearHistoryConfirm":
"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.",
// 翻译模块 - 图片翻译
"selectImageSource": "Select Image Source",
"imagePreview": "Image Preview",
"translationResult": "Translation Result",
"recognitionResult": "Recognition Result",
"translatedImagePreview": "Translated Image Preview",
"translatedImageLoadFailed": "Failed to load translated image",
"pleaseSelectImage": "Please select an image",
"imageLoadFailed": "Image load failed",
"imageQuality": "Image Quality",
"maxSize": "Max Size",
"close": "Close",
"setImageQuality": "Set Image Quality",
"currentQuality": "Current quality: @value%",
"setMaxSize": "Set Max Size",
"selectImageSource": "Selecionar origem da imagem",
"imagePreview": "Pré-visualização da imagem",
"translationResult": "Resultado da tradução",
"recognitionResult": "Resultado do reconhecimento",
"translatedImagePreview": "Pré-visualização da imagem traduzida",
"translatedImageLoadFailed": "Falha ao carregar a imagem traduzida",
"pleaseSelectImage": "Selecione uma imagem",
"imageLoadFailed": "Falha ao carregar a imagem",
"imageQuality": "Qualidade da imagem",
"maxSize": "Tamanho máximo",
"close": "Fechar",
"setImageQuality": "Definir qualidade da imagem",
"currentQuality": "Qualidade atual: @value%",
"setMaxSize": "Definir tamanho máximo",
"currentMaxSize": "Current: @pxpx",
"waitingForAction": "Waiting for action",
"pleaseSelectImageToStart": "Please select an image to start",
"chooseImage": "Choose Image",
"openingCamera": "Opening camera...",
"openingPhotoAlbum": "Opening photo album...",
"cancelled": "Cancelled",
"userCancelledSelection": "User cancelled selection",
"translatingImage": "Translating Image",
"callingImageTranslateService": "Calling image translation service...",
"savingRecord": "Saving Record",
"savingTranslationResult": "Saving translation result...",
"translationCompleted": "Translation Completed",
"allStepsCompleted": "All steps completed",
"processingFailed": "Processing Failed",
"waitingForAction": "A aguardar ação",
"pleaseSelectImageToStart": "Selecione uma imagem para começar",
"chooseImage": "Escolher imagem",
"openingCamera": "A abrir câmara...",
"openingPhotoAlbum": "A abrir álbum de fotos...",
"cancelled": "Cancelado",
"userCancelledSelection": "O utilizador cancelou a seleção",
"translatingImage": "A traduzir imagem",
"callingImageTranslateService":
"A chamar o serviço de tradução de imagens...",
"savingRecord": "A guardar registo",
"savingTranslationResult": "A guardar o resultado da tradução...",
"translationCompleted": "Tradução concluída",
"allStepsCompleted": "Todos os passos concluídos",
"processingFailed": "Falha no processamento",
"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",
"imageTooLargeHint":
"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":
"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":
"Image translation API exception. Check network and retry",
"permissionRequired": "Permission Required",
"cameraPermissionRequired": "Camera permission required to take photos",
"Exceção na API de tradução de imagens. Verifique a rede e tente novamente",
"permissionRequired": "Permissão necessária",
"cameraPermissionRequired":
"É necessária permissão de câmara para tirar fotos",
"photoAlbumPermissionRequired":
"Photo album permission required to pick images",
"translationDetails": "Translation Details",
"É necessária permissão de álbum de fotos para selecionar imagens",
"translationDetails": "Detalhes da tradução",
"originalImage": "Original Image",
"sourceLanguage": "Source Language",
"targetLanguage": "Target Language",
"translationTime": "Translation Time",
"translationTime": "Tempo de tradução",
"shareInDevelopment": "Sharing feature under development",
// 翻译模块 - 录音文件
@ -1221,18 +1232,18 @@ const Map<String, String> ptPT = {
'Serviço de Conta inicializado', // AccountService 已初始化
// 权限模块
'meetingStoragePermission': 'Storage',
'meetingStoragePermission': 'Armazenamento',
'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':
'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',
'communicationPermissions': 'Permissões de Comunicação',
'bluetoothPermissions': 'Bluetooth Permissions',
'notificationPermissions': 'Notification Permissions',
'storagePermissions': 'Storage Permissions',
'microphonePermissions': 'Microphone Permissions',
'alarmPermissions': 'Alarm Permissions',
'bluetoothPermissions': 'Permissões Bluetooth',
'notificationPermissions': 'Permissões de notificações',
'storagePermissions': 'Permissões de armazenamento',
'microphonePermissions': 'Permissões de microfone',
'alarmPermissions': 'Permissões de alarme',
'calendarPermissions': 'Permissões do Calendário',
'locationPermissions': 'Permissões de Localização',
'phone': 'Telefone',
@ -1246,7 +1257,7 @@ const Map<String, String> ptPT = {
'phonePermissionDesc': 'Usado para a função de fazer chamadas',
'smsPermissionDesc': 'Usado para a função de enviar SMS',
'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':
'Usado para criar eventos e lembretes no calendário',
'calendarFullAccessPermissionDesc':
@ -1265,72 +1276,72 @@ const Map<String, String> ptPT = {
'A função de chamada requer permissão de telefone',
'smsPermissionDetailDesc': 'A função de envio de SMS requer permissão de SMS',
'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':
'A criação de eventos no calendário requer permissão de escrita no calendário',
'calendarFullAccessPermissionDetailDesc':
'A gestão de eventos no calendário requer permissão total de calendário',
'locationPermissionDetailDesc':
'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':
'Phone call and SMS functionality requires contacts permission to select contacts',
'bluetoothPermissionDesc':
'Used for connecting and managing Bluetooth devices',
'As funções de chamadas e SMS requerem permissão de contactos para selecionar contactos',
'bluetoothPermissionDesc': 'Usado para ligar e gerir dispositivos Bluetooth',
'bluetoothPermissionDetailDesc':
'Connecting to Bluetooth headphones and other devices requires Bluetooth permission',
'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices',
'Para ligar auscultadores Bluetooth e outros dispositivos, é necessária permissão Bluetooth',
'bluetoothScanPermissionDesc':
'Usado para pesquisar dispositivos Bluetooth nas proximidades',
'bluetoothScanPermissionDetailDesc':
'Scanning for nearby Bluetooth devices requires Bluetooth scan permission',
'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices',
'Para pesquisar dispositivos Bluetooth nas proximidades, é necessária permissão de pesquisa Bluetooth',
'bluetoothConnectPermissionDesc': 'Usado para ligar a dispositivos Bluetooth',
'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',
'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':
'A aplicação precisa desta permissão para fornecer funcionalidade completa',
'permanentDenialText':
'Negou permanentemente a permissão de {permission}, por favor, vá às definições da aplicação para a ativar',
'goToSettings': 'Ir para Definições',
'bluetoothScan': 'Bluetooth Scan',
'bluetoothConnect': 'Bluetooth Connect',
'bluetoothScan': 'Pesquisa Bluetooth',
'bluetoothConnect': 'Ligação Bluetooth',
'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':
'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':
'The app needs location permission to scan Bluetooth devices.',
'A aplicação precisa de permissão de localização para pesquisar dispositivos Bluetooth.',
'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':
'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':
'Location permission has been permanently denied, please go to settings to enable it manually.',
'notificationPermission': 'Notification',
'locationPermission': 'Location',
'A permissão de localização foi recusada permanentemente. Vá às definições para a ativar manualmente.',
'notificationPermission': 'Notificações',
'locationPermission': 'Localização',
'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':
'Location permission is required to get current location.',
'A permissão de localização é necessária para obter a localização atual.',
'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':
'You have permanently denied location permission, please go to settings to enable it.',
'storagePermission': 'Storage',
'Recusou permanentemente a permissão de localização. Vá às definições para a ativar.',
'storagePermission': 'Armazenamento',
'microphonePermissionExplanation':
'We need microphone permission to record audio content.',
'Precisamos da permissão de microfone para gravar conteúdo de áudio.',
'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':
'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':
'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 ',
'permissionUtilPermission': ' Permission',
'permissionUtilRestricted': ' Permission Restricted',
'permissionUtilPermission': ' Permissão',
'permissionUtilRestricted': ' Permissão restrita',
'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',
// 原生前台服务通知(Android)
@ -1423,27 +1434,28 @@ const Map<String, String> ptPT = {
'bleConnectionFailed': 'Falha na conexão BLE',
'deviceAuthorizationFailedCheckCode':
'Falha na autorização do dispositivo, verifique o código de autorização',
'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙
'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作:
'bluetoothGuideTitle':
'É necessária a ativação manual do Bluetooth', // 需要手动开启蓝牙
'bluetoothGuideSteps': 'Siga estes passos:', // 请按照以下步骤操作:
'bluetoothGuideStep1':
'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启
'Ative o Bluetooth: Definições → Bluetooth → Ligar', // 开启蓝牙:设置 → 蓝牙 → 开启
'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':
'Return to app to continue pairing process', // 返回应用继续配对流程
'Volte à app para continuar o processo de emparelhamento', // 返回应用继续配对流程
'bluetoothGuideTip':
'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置
'iKnow': 'I Know', // 我知道了
'Dica: também pode premir continuamente o ícone Bluetooth no Centro de controlo para aceder rapidamente às definições de Bluetooth', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置
'iKnow': 'Já percebi', // 我知道了
// 配对模块 - 绑定奖励
"firstBindRewardTitle": "Welcome Reward",
"firstBindRewardDesc": "You've received binding rewards.",
"vipLevelLabel": "VIP Level:",
"expiryLabel": "Expiration:",
"notActivated": "Not activated",
"aiChatCreditsLabel": "AI Chat Credits:",
"translationCreditsLabel": "Translation Credits:",
"meetingCreditsLabel": "Meeting Credits:",
"firstBindRewardTitle": "Recompensa de boas‑vindas",
"firstBindRewardDesc": "Recebeu as recompensas de vinculação.",
"vipLevelLabel": "Nível VIP:",
"expiryLabel": "Data de expiração:",
"notActivated": "Não ativado",
"aiChatCreditsLabel": "Créditos do AI Chat:",
"translationCreditsLabel": "Créditos de tradução:",
"meetingCreditsLabel": "Créditos de reuniões:",
"ok": "OK",
// 用户反馈模块
@ -1474,13 +1486,14 @@ const Map<String, String> ptPT = {
"connectionFailed": "Falha na Conexão",
"retryConnection": "Tentar Conectar Novamente",
"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":
"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":
"Unable to identify the device. Please reconnect and retry.",
"Não foi possível identificar o dispositivo. Volte a ligar e tente novamente.",
"otaFirmwareVersionInvalid":
"Firmware version is abnormal. Please reconnect and retry.",
"A versão do firmware é anormal. Volte a ligar e tente novamente.",
"keepConnectedDontClose":
"Mantenha o dispositivo conectado, não feche a aplicação",
"doNotDisconnect": "Não desconecte",
@ -1507,7 +1520,7 @@ const Map<String, String> ptPT = {
'Conexao BLE necessaria\nVerifique a conexao e tente novamente',
'otaDeviceInfoUnavailableTitle': 'Informacoes do dispositivo indisponiveis',
'otaCannotGetDeviceInfo':
'Cannot get device info\nPlease reconnect device or try again later',
'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',
'otaCannotGetDeviceInfoCheckConnection':
'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 = {
// 通用
'continue': 'Continuă',
@ -18,11 +19,11 @@ const Map<String, String> roRO = {
"unknownError": "Eroare necunoscută",
"asrConnectionFailed":
"Conexiunea la serviciul de recunoaștere vocală a eșuat. Verificați rețeaua sau încercați din nou mai târziu.",
"justNow": "Just now",
"minutesAgo": "@minutes minutes ago",
"yesterday": "Yesterday",
"daysAgo": "@days days ago",
"hoursAgo": "@hours hours ago",
"justNow": "Adesso",
"minutesAgo": "@minutes minute fa",
"yesterday": "Ieri",
"daysAgo": "@days zile fa",
"hoursAgo": "@hours ore fa",
// 启动页
"slogan": "Conectând lumea, dincolo de sunet",
@ -220,55 +221,55 @@ const Map<String, String> roRO = {
"scene": "Scenariu",
// 用量统计模块
"aiChat": "AI Chat",
"translationStats": "Translation Statistics",
"meetingStats": "Meeting Statistics",
"today": "Today",
"thisWeek": "This Week",
"thisMonth": "This Month",
"history": "History",
"currentSessionStats": "Current Session Stats",
"translationCount": "Translation Count",
"sessionDuration": "Session Duration",
"characters": "Characters",
"recordingDuration": "Recording Duration",
"totalApiCalls": "Total API Calls",
"sessionCount": "Session Count",
"totalCharacters": "Total Characters",
"apiCallStats": "API Call Stats",
"translationApi": "Translation API",
"aiChat": "Chat AI",
"translationStats": "Statistici de traducere",
"meetingStats": "Statistici de ședințe",
"today": "Astăzi",
"thisWeek": "Săptămâna aceasta",
"thisMonth": "Luna aceasta",
"history": "Istoric",
"currentSessionStats": "Statistici sesiune curentă",
"translationCount": "Număr traduceri",
"sessionDuration": "Durata sesiunii",
"characters": "Caractere",
"recordingDuration": "Durata înregistrării",
"totalApiCalls": "Total apeluri API",
"sessionCount": "Număr sesiuni",
"totalCharacters": "Total caractere",
"apiCallStats": "Statistici apeluri API",
"translationApi": "API traducere",
"asr": "ASR",
"tts": "TTS",
"dataVolumeStats": "Data Volume Stats",
"sourceTextCharacters": "Source Text Characters",
"ttsTextCharacters": "TTS Text Characters",
"effectiveAudioDuration": "Effective Audio Duration",
"totalSessionDuration": "Total Session Duration",
"costStats": "Cost Stats",
"estimatedCost": "Estimated Cost",
"dailyCostThreshold": "Daily Cost Threshold",
"monthlyCostThreshold": "Monthly Cost Threshold",
"usageBehaviorStats": "Usage Behavior Stats",
"mostUsedLanguagePair": "Most-used language pair",
"mostUsedMode": "Most-used mode",
"asrApiCalls": "ASR Calls",
"totalAudioDuration": "Total Audio Duration",
"audioFileSize": "Audio File Size",
"transcriptBytes": "Transcript Bytes",
"loadFailed": "Load Failed",
"dataVolumeStats": "Statistici volum date",
"sourceTextCharacters": "Caractere text sursă",
"ttsTextCharacters": "Caractere text TTS",
"effectiveAudioDuration": "Durată audio efectivă",
"totalSessionDuration": "Durată totală sesiuni",
"costStats": "Statistici cost",
"estimatedCost": "Cost estimat",
"dailyCostThreshold": "Prag cost zilnic",
"monthlyCostThreshold": "Prag cost lunar",
"usageBehaviorStats": "Statistici comportament utilizare",
"mostUsedLanguagePair": "Pereche de limbi cea mai folosită",
"mostUsedMode": "Modul cel mai folosit",
"asrApiCalls": "Apeluri ASR",
"totalAudioDuration": "Durată audio totală",
"audioFileSize": "Dimensiune fișier audio",
"transcriptBytes": "Octeți transcriere",
"loadFailed": "Încărcare eșuată",
"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",
"cleanedOldData": "Cleaned data older than 90 days",
"exportFeature": "Export Feature",
"exportInDevelopment": "Data export is under development",
// 商品模块 - 通用
'availablePackages': 'Available Packages',
'remainingQuota': 'Remaining Quota',
'totalQuota': 'Total Quota',
'remaining': 'Remaining',
'featureDescription': 'Feature Description',
'availablePackages': 'Pachete disponibile',
'remainingQuota': 'Cotă rămasă',
'totalQuota': 'Cotă totală',
'remaining': 'Rămas',
'featureDescription': 'Descriere funcție',
'paymentSuccess': 'Plată reușită',
'paymentFailed': 'Plata a eșuat',
'gotIt': 'Am înțeles',
@ -328,95 +329,97 @@ const Map<String, String> roRO = {
'alipayPaymentLaunchFailed': 'Lansarea Alipay a eșuat',
'cannotLaunchAlipayPayment': 'Nu se poate lansa Alipay',
'alipayPaymentException': 'Excepție Alipay',
"insufficientIntegral": "Insufficient integral",
"insufficientIntegral": "Puncte insuficiente",
"insufficientBalanceDesc":
'Insufficient balance, please go to the corresponding recharge page to recharge.',
"recharge": 'Go to Recharge',
'Sold insuficient. Vă rugăm să accesați pagina de reîncărcare corespunzătoare pentru a reîncărca.',
"recharge": 'Mergeți la reîncărcare',
"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商品页
'musicAndRecommendation': 'Music & Recommendation',
'navigationAndRoutes': 'Navigation & Routes',
'nearbySearch': 'Nearby Search',
'newsInformation': 'News',
'communicationAssistant': 'Communication Assistant',
'musicAndRecommendation': 'Muzică și recomandări',
'navigationAndRoutes': 'Navigație și rute',
'nearbySearch': 'Căutare în apropiere',
'newsInformation': 'Știri',
'communicationAssistant': 'Asistent de comunicare',
'aiHeaderDesc1':
'Longer conversation quota, more tool calls, extended context length.',
'Cotă de conversații mai mare, mai multe apeluri de instrumente, context extins.',
'aiHeaderDesc2':
'Suitable for agent Q&A, summarization, analysis, and task execution.',
'musicSearchPlaybackControl': 'Music library search and playback control',
'Potrivit pentru întrebări și răspunsuri, rezumare, analiză și executarea sarcinilor.',
'musicSearchPlaybackControl':
'Căutare în bibliotecă și controlul redării muzicii',
'smartPlaylistAndSimilarRecommendations':
'Smart playlist and similar song recommendations',
'Playlist inteligent și recomandări de melodii similare',
'routePlanningAndCongestionAvoidance':
'Route planning and congestion avoidance',
'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings',
'realTimeWeatherForecast': 'Real-time weather and forecast',
'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders',
'poiSearchFoodGasParking': 'POI search: dining / gas / parking',
'ratingsHoursAndDirectRoutes': 'Ratings, business hours, and direct routing',
'hotNewsAndTopicOverview': 'Hot news and topic overview',
'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points',
'helpCallAndSMS': 'Help with calls and SMS',
'Planificare rută și evitarea aglomerației',
'voiceBroadcastAndWaypoints': 'Anunț vocal și setări puncte intermediare',
'realTimeWeatherForecast': 'Vreme în timp real și prognoză',
'clothingAdviceAndTravelReminders':
'Sfaturi vestimentare și memento-uri de călătorie',
'poiSearchFoodGasParking': 'Căutare POI: mâncare / benzină / parcare',
'ratingsHoursAndDirectRoutes': 'Evaluări, program și rutare directă',
'hotNewsAndTopicOverview': 'Știri populare și prezentare subiect',
'longArticleSummariesAndKeyPoints': 'Rezumat articole lungi și puncte cheie',
'helpCallAndSMS': 'Ajutor pentru apeluri și SMS',
'templatedMessagesAndScheduleReminders':
'Template messages and schedule reminders',
'Mesaje șablon și memento-uri programate',
'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',
'sceneLexicon': 'Scenario Glossary',
'subtitleDisplay': 'Subtitles',
'realtimeTranscription': 'Transcriere în timp real',
'sceneLexicon': 'Glosar de scenarii',
'subtitleDisplay': 'Subtitrări',
'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.',
'translateZhEn': 'Chinese-English translation',
'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast',
'multiLangTextTranslation': 'Multilingual text translation',
'translateZhEn': 'Traducere chineză–engleză',
'lowLatencyVoiceBroadcast': 'Difuzare vocală cu latență redusă',
'multiLangTextTranslation': 'Traducere text multilingvă',
'termOptimizationContextPreserve':
'Terminology optimization and context preservation',
'lexiconTourBusinessLife': 'Travel/Business/Life lexicons',
'personalVocabularyMemory': 'Personal vocabulary memory',
'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode',
'colorHighContrast': 'High color contrast',
'Optimizare terminologie și păstrarea contextului',
'lexiconTourBusinessLife': 'Lexicoane pentru călătorii/afaceri/viață',
'personalVocabularyMemory': 'Memorie vocabular personal',
'conversationSubtitleLargeText': 'Subtitrări conversație / mod text mare',
'colorHighContrast': 'Contrast de culoare ridicat',
'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',
'transcriptionAndSummary': 'Transcription & Summary',
'keywordSearch': 'Keyword Search',
'collaborationSharing': 'Collaboration & Sharing',
'meetingRecording': 'Înregistrare ședință',
'transcriptionAndSummary': 'Transcriere și rezumat',
'keywordSearch': 'Căutare cuvinte cheie',
'collaborationSharing': 'Colaborare și partajare',
'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':
'Suitable for business meetings, class notes, and interview minutes.',
'meetingAutoRecording': 'Auto recording and segmentation',
'meetingSpeakerTagging': 'Speaker labeling',
'meetingLongAudioTranscription': 'Long audio transcription',
'meetingKeyPointSummary': 'Key point extraction',
'meetingTopicNameSearch': 'Search by topic/name',
'meetingTimelineJump': 'Timeline jump',
'meetingExportSummary': 'Export minutes',
'meetingMultiPlatformShare': 'Share across platforms',
'meetingAutoRecording': 'Înregistrare automată și segmentare',
'meetingSpeakerTagging': 'Etichetare vorbitori',
'meetingLongAudioTranscription': 'Transcriere audio lung',
'meetingKeyPointSummary': 'Extragere puncte cheie',
'meetingTopicNameSearch': 'Căutare după subiect/nume',
'meetingTimelineJump': 'Salt pe cronologie',
'meetingExportSummary': 'Export proces-verbal',
'meetingMultiPlatformShare': 'Partajare pe mai multe platforme',
'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会员页
'benefitsOverview': 'Benefits overview',
'higherQuota': 'Higher usage quota',
'lowerUnitPrice': 'Lower unit price',
'priorityService': 'Priority service',
'exclusiveSupportChannel': 'Dedicated support channel',
'fastResponse': 'Fast issue response',
'eventsAndDiscounts': 'Events and discounts',
'memberExclusiveEvents': 'Member-exclusive events',
'longTermDiscountPlan': 'Long-term discount plan',
'generalPrivileges': 'General privileges',
'earlyAccessNewFeatures': 'Early access to new features',
'crossDeviceSync': 'Cross-device sync',
'benefitsOverview': 'Prezentare beneficii',
'higherQuota': 'Cotă de utilizare mai mare',
'lowerUnitPrice': 'Preț unitar mai mic',
'priorityService': 'Serviciu prioritar',
'exclusiveSupportChannel': 'Canal de suport dedicat',
'fastResponse': 'Răspuns rapid la probleme',
'eventsAndDiscounts': 'Evenimente și reduceri',
'memberExclusiveEvents': 'Evenimente exclusive pentru membri',
'longTermDiscountPlan': 'Plan de reducere pe termen lung',
'generalPrivileges': 'Beneficii generale',
'earlyAccessNewFeatures': 'Acces timpuriu la funcții noi',
'crossDeviceSync': 'Sincronizare între dispozitive',
'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',
@ -425,18 +428,18 @@ const Map<String, String> roRO = {
'meet_001_name': 'Meeting Basic 100',
'meet_002_name': 'Meeting Basic 500',
'meet_003_name': 'Meeting Basic 1000',
'trans_001_name': 'Translation Basic 100',
'trans_002_name': 'Translation Basic 500',
'trans_003_name': 'Translation Basic 1000',
'trans_001_name': 'Traducere Basic 100',
'trans_002_name': 'Traducere Basic 500',
'trans_003_name': 'Traducere Basic 1000',
'ai_001_desc': 'Includes 100 uses. Access core AI features.',
'ai_002_desc': 'Includes 500 uses. Access core AI features.',
'ai_003_desc': 'Includes 1000 uses. Access core AI features.',
'meet_001_desc': 'Includes 100 meeting recordings/transcriptions.',
'meet_002_desc': 'Includes 500 meeting recordings/transcriptions.',
'meet_003_desc': 'Includes 1000 meeting recordings/transcriptions.',
'trans_001_desc': 'Includes 100 translations (voice/text).',
'trans_002_desc': 'Includes 500 translations (voice/text).',
'trans_003_desc': 'Includes 1000 translations (voice/text).',
'meet_001_desc': 'Include 100 înregistrări/transcrieri de ședințe.',
'meet_002_desc': 'Include 500 înregistrări/transcrieri de ședințe.',
'meet_003_desc': 'Include 1000 înregistrări/transcrieri de ședințe.',
'trans_001_desc': 'Include 100 traduceri (voce/text).',
'trans_002_desc': 'Include 500 traduceri (voce/text).',
'trans_003_desc': 'Include 1000 traduceri (voce/text).',
// 商品模块 - 页脚
'appNameProvider': 'App: VoiTrans · Provided by: VoiTrans',
@ -492,37 +495,38 @@ const Map<String, String> roRO = {
'recordingDetails': 'Detalii înregistrare',
'aiSummary': 'Rezumat AI',
'meetingTranscript': 'Transcriere ședință',
'files': 'Files',
'mine': 'Mine',
'connect': 'Connect',
'allFiles': 'All Files',
'searchInAllFiles': 'Search in all files',
'from': 'From',
'sortBy': 'Sort by',
'creationTime': 'Creation Time',
'bluetoothConnection': 'Bluetooth Connection',
'meetingReconnect': 'Reconnect',
'searching': 'Searching...',
'searchFailed': 'Search failed, please check if Bluetooth is enabled',
'aiPenNotFound': 'AI PEN device not found',
'connectedToAiPen': 'Connected to AI PEN device',
'checkingNewFiles': 'Checking for new files to import',
'files': 'Fișiere',
'mine': 'Ale mele',
'connect': 'Conectează',
'allFiles': 'Toate fișierele',
'searchInAllFiles': 'Caută în toate fișierele',
'from': 'De la',
'sortBy': 'Sortează după',
'creationTime': 'Data creării',
'bluetoothConnection': 'Conexiune Bluetooth',
'meetingReconnect': 'Reconectează',
'searching': 'Se caută...',
'searchFailed': 'Căutarea a eșuat, verificați dacă Bluetooth este activat',
'aiPenNotFound': 'Dispozitivul AI PEN nu a fost găsit',
'connectedToAiPen': 'Conectat la dispozitivul AI PEN',
'checkingNewFiles': 'Se verifică fișiere noi pentru import',
'startingWifi': 'Starting Wi-Fi...',
'newFilesDetected': 'New files detected, preparing to import',
'noNewFiles': 'No new files to import',
'connectingWifi': 'Connecting to Wi-Fi...',
'wifiConnected': 'Wi-Fi connected successfully',
'downloadingFiles': 'Downloading files...',
'downloadingFileProgress': 'Total {total} files, downloading file {current}',
'downloadComplete': 'Download complete',
'connectingWifi': 'Se conectează la Wi‑Fi...',
'wifiConnected': 'Wi‑Fi conectat cu succes',
'downloadingFiles': 'Se descarcă fișiere...',
'downloadingFileProgress':
'Total {total} fișiere, se descarcă fișierul {current}',
'downloadComplete': 'Descărcare finalizată',
'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模块 - 录音功能
'startRecording': 'Start Recording',
'liveRecording': 'Live Recording',
'audioVideoRecording': 'Audio/Video Recording',
'callRecording': 'Call Recording',
'startRecording': 'Începe înregistrarea',
'liveRecording': 'Înregistrare live',
'audioVideoRecording': 'Înregistrare audio/video',
'callRecording': 'Înregistrare apel',
'importAudio': 'Import Audio',
'meetingRecordExitTitle': 'Ieși din înregistrare', // 退出录音
'meetingRecordExitMessage': 'Alege ce să faci înainte de a ieși', // 请选择离开后的操作
@ -587,85 +591,87 @@ const Map<String, String> roRO = {
'custom': 'Personalizat',
'pleaseEnter': 'Vă rugăm introduceți',
'viewAll': 'View All',
'recordingLanguage': 'Recording Language',
'recordingLanguage': 'Limba înregistrării',
'chineseSimplified': 'Chinese Mandarin (Simplified)',
'meetingGenerateNow': 'Generate Now',
'keyEventsAnalyzed': 'Analyzed {count} key events.',
'aiAnalysisDesc':
'AI analysis identifies key events in recordings, allowing you to select important events for AI generation.',
'Analiza AI identifică evenimente-cheie în înregistrări, permițându-vă să selectați evenimente importante pentru generarea AI.',
// Meeting模块 - 文件操作
'importing': 'Importing...',
'batchImporting': 'Batch importing...',
'importingLocalRecordings': 'Importing local recordings...',
'importFailed': 'Import file failed: {filePath}, error: {error}',
'importSuccess': 'Successfully imported {count} local recordings',
'importError': 'Import failed: {error}',
'pleaseSelectAudioFile': 'Please select audio file',
'importingLocalRecordings': 'Se importă înregistrări locale...',
'importFailed': 'Importul fișierului a eșuat: {filePath}, eroare: {error}',
'importSuccess': 'Au fost importate cu succes {count} înregistrări locale',
'importError': 'Import eșuat: {error}',
'pleaseSelectAudioFile': 'Vă rugăm să selectați un fișier audio',
'shareAudio': 'Share Meeting Audio',
'shareComplete': 'Share complete!',
'shareFailed': 'Share failed: {error}',
'fileProcessingFailed': 'File processing failed: {filePath}, error: {error}',
'shareFailed': 'Partajarea a eșuat: {error}',
'fileProcessingFailed':
'Procesarea fișierului a eșuat: {filePath}, eroare: {error}',
// Meeting模块 - 思维导图
'saveMindMap': 'Salvează harta mentală',
'shareMindMap': 'Share Mind Map',
'shareSuccess': 'Share Success',
'shareMindMap': 'Partajează harta mentală',
'shareSuccess': 'Partajare reușită',
// Meeting模块 - AI问答
'askAI': 'Ask AI ...',
'askAIPrompt': 'What can I help you with today?',
'continueAsk': 'Continue Asking',
'todoList': 'To-Do List',
'extractConclusion': 'Extract Conclusion',
'generateKeyIndicators': 'Generate Key Indicators',
'askAI': 'Întreabă AI...',
'askAIPrompt': 'Cu ce te pot ajuta astăzi?',
'continueAsk': 'Continuă să întrebi',
'todoList': 'Listă de sarcini',
'extractConclusion': 'Extrage concluzia',
'generateKeyIndicators': 'Generează indicatori-cheie',
// Meeting模块 - 分享与导出
'shareLink': 'Share Link',
'copyTranscript': 'Copy Transcript',
'copySummary': 'Copy Summary',
'exportAudio': 'Export Audio',
'exportTranscript': 'Export Transcript',
'shareMeetingAudio': 'Share Meeting Audio',
'exportSummary': 'Export Summary',
'exportAs': 'Export As',
'exportingPDF': 'Exporting PDF...',
'shareLink': 'Partajează linkul',
'copyTranscript': 'Copiază transcrierea',
'copySummary': 'Copiază rezumatul',
'exportAudio': 'Exportă audio',
'exportTranscript': 'Exportă transcrierea',
'shareMeetingAudio': 'Partajează audio ședință',
'exportSummary': 'Exportă rezumatul',
'exportAs': 'Exportă ca',
'exportingPDF': 'Se exportă PDF...',
'export': 'Exportă',
// Meeting模块 - 发言者
'applyToAllParagraphs': 'Aplică la toate paragrafele acestui vorbitor',
'summaryWillBeUpdatedAutomatically':
'Rezumatul va fi actualizat automat pe baza șablonului',
'nameCurrentSpeaker': 'Name Current Speaker',
'recentlyUsedNames': 'Recently Used Names',
'applyToCurrentParagraph': 'Apply to Current Paragraph',
'totalTime': 'Total Time',
'nameCurrentSpeaker': 'Numește vorbitorul curent',
'recentlyUsedNames': 'Nume folosite recent',
'applyToCurrentParagraph': 'Aplică la paragraful curent',
'totalTime': 'Timp total',
'summarySpeakerWillBeUpdatedAutomatically':
'Summary speakers will be updated automatically',
'Vorbitorii din rezumat vor fi actualizați automat',
// Meeting模块 - 云端同步
'syncToCloud': 'Sync to Cloud',
'syncToCloud': 'Sincronizează în cloud',
'syncToCloudTip':
'Automatically sync your recordings to the cloud, you can play, manage and share recordings through any VOITRANS APP or VOITRANS Web (web.voitrans.com).',
'syncToVoitransApp': 'Sync VOITRANS APP',
'transcriptionRecord': 'Transcription Record',
'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': 'Sincronizează aplicația VOITRANS',
'transcriptionRecord': 'Înregistrare de transcriere',
// Meeting模块 - 我的页面
'transcriptionRecords': 'Transcription Records',
'templateCommunity': 'Template Community',
'comingSoon': 'Coming Soon',
'integration': 'Integration',
'transcriptionRecords': 'Înregistrări de transcriere',
'templateCommunity': 'Comunitatea de șabloane',
'comingSoon': 'În curând',
'integration': 'Integrare',
'voitransPrivateCloud': 'VOITRANS PRIVATE CLOUD',
'enabled': 'Enabled',
'disabled': 'Disabled',
'myVoitransDevice': 'My VOITRANS Device',
'enabled': 'Activat',
'disabled': 'Dezactivat',
'myVoitransDevice': 'Dispozitivul meu VOITRANS',
'helpAndFeedback': 'Help & Feedback',
'aboutVoitrans': 'About VOITRANS',
'meetingDays': 'Days',
'meetingHours': 'Hours',
'voitransAiMember': 'Voitrans AI 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',
// Meeting模块 - 会员与升级
@ -689,7 +695,7 @@ const Map<String, String> roRO = {
'customTemplateDesc':
'You can customize summary prompts according to your needs and use them to generate the required summaries.',
'askAiDesc':
'Intelligently extract deeper information from recordings, generate data tables, key discussion conclusions, To-Do lists, report emails and other formatted content with one click.',
'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':
'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.',
'templateCommunityDesc':
@ -697,13 +703,13 @@ const Map<String, String> roRO = {
'speakerIdentificationDesc':
'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.',
'privateCloudSyncDesc':
'Your recordings and transcriptions will be securely stored on dedicated cloud servers, with full encryption during upload and download to ensure privacy and security.',
'Î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':
'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.',
'audioImportDesc':
'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.',
'multipleExportFormatsDesc':
'Export your audio recordings, transcription text and summaries in various formats (TXT, PDF, JPEG) to meet your needs.',
'Exportați înregistrările audio, textul transcris și rezumatele în diverse formate (TXT, PDF, JPEG) după nevoie.',
'upgradeMembership': 'Upgrade Your Membership',
'yearlySubscription': 'Yearly Subscription',
'monthlySubscription': 'Monthly Subscription',
@ -733,7 +739,7 @@ const Map<String, String> roRO = {
'purchase': 'Purchase',
// Meeting模块 - 录音语言
'recordLanguage': 'Recording Language',
'recordLanguage': 'Limba înregistrării',
'cantonese': 'Cantonese',
'sichuan': 'Sichuan Dialect',
'shanghai': 'Shanghai Dialect',
@ -761,10 +767,10 @@ const Map<String, String> roRO = {
"translationRecharge": "Recarga de traducere",
"meetingAssistantRecharge": "Recarga de asistent ședință",
"cloudSync": "Recarga de sincronizare în cloud",
"memberService": "Member Service",
"bindRewardTitle": "Rewards",
"memberService": "Serviciu membri",
"bindRewardTitle": "Recompense",
"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:",
"accountId": "ID cont:",
"systemSetting": "Setări de sistem",
@ -814,20 +820,21 @@ const Map<String, String> roRO = {
"loading": "Se încarcă...",
// 设备管理模块
"deviceTypeUnknown": "Unknown Device",
"deviceTypeClassicBluetoothHeadset": "Classic Bluetooth Headset",
"deviceTypeBleBluetoothHeadset": "BLE Bluetooth Headset",
"deviceTypeSmartVoiceRecorder": "Smart Voice Recorder",
"deviceTypeUnknown": "Dispozitiv necunoscut",
"deviceTypeClassicBluetoothHeadset": "Căști Bluetooth clasice",
"deviceTypeBleBluetoothHeadset": "Căști Bluetooth BLE",
"deviceTypeSmartVoiceRecorder": "Reportofon inteligent",
"deviceTypeSmartEye": "Smart Glasses",
"unbind": "Deleagă",
"noDevicesBound": "No devices bound yet",
"pleaseBindDeviceFirst": "Please bind a device first to manage",
"noMacAddress": "No MAC Address",
"licenseCode": "License Code",
"confirmUnbind": "Confirm Unbind",
"noDevicesBound": "Nu există dispozitive asociate încă",
"pleaseBindDeviceFirst":
"Asociați mai întâi un dispozitiv pentru a-l gestiona",
"noMacAddress": "Fără adresă MAC",
"licenseCode": "Cod licență",
"confirmUnbind": "Confirmă dezlegarea",
"confirmUnbindMessage":
"Are you sure you want to unbind device \"{deviceName}\"?",
"confirmUnbindAction": "Confirm Unbind",
"Sigur doriți să dezlegați dispozitivul \"{deviceName}\"?",
"confirmUnbindAction": "Dezleagă",
// Agent模块 - 主界面
"Lily": "Lily",
@ -858,22 +865,22 @@ const Map<String, String> roRO = {
"loadMoreMessages": "Încarcă mai multe mesaje...",
"loadFailedClickRetry": "Încărcare eșuată, faceți clic pentru a reîncerca",
"swipeUpForMore": "Glisați în sus pentru mai mult",
"callingTool": "I'm helping you, please wait!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断
"callingTool": "Vă ajut, vă rog așteptați!", // 正在帮您,请稍等!
"voice_interrupt": "Întrerupe", // 语音打断
'voice_interrupt_tip':
'Când este activat: AI-ul nu va fi întrerupt de vocea dvs. în timp ce vorbește și poate gestiona doar o rundă de conversație pe rând. Pentru a începe o rundă nouă, spuneți cuvântul de activare.',
// Agent模块 - 预设提示词
"presetMusic": "Play some music", // 来点音乐
"presetNavigation": "Navigation to", // 导航
"presetWeather": "Today's weather", // 今日天气
"presetNews": "Today's news", // 今日新闻
"presetFood": "Nearby food", // 美食
"playSomeMusic": "Play some popular music", // 播放一些流行音乐
"navigationTo": "Please help me navigate to", // 导航到
"todayWeather": "How's the weather today?", // 今日天气
"todayNews": "What's the news today?", // 今日新闻
"nearbyFood": "What delicious food is nearby?", // 美食
"presetMusic": "Redă muzică", // 来点音乐
"presetNavigation": "Navighează către", // 导航
"presetWeather": "Vremea astăzi", // 今日天气
"presetNews": "Știrile astăzi", // 今日新闻
"presetFood": "Mâncare în apropiere", // 美食
"playSomeMusic": "Redă muzică populară", // 播放一些流行音乐
"navigationTo": "Navighează către", // 导航到
"todayWeather": "Cum este vremea astăzi?", // 今日天气
"todayNews": "Care sunt știrile astăzi?", // 今日新闻
"nearbyFood": "Unde este mâncare bună pe aici?", // 附近有什么好吃的
// Agent模块 - 欢迎消息与权限
'welcomeMessage': 'Bună! Sunt **Lily**, vă pot ajuta cu:\n\n'
@ -1021,8 +1028,8 @@ const Map<String, String> roRO = {
"strongWind": "Vânt puternic",
// 翻译模块 - 中间层
"pictureTranslation": "Picture Translation",
"textTranslation": "Text Translation",
"pictureTranslation": "Traducere imagine",
"textTranslation": "Traducere text",
// 翻译模块 - 主页
"translationHistory": "Istoric traduceri",
@ -1032,14 +1039,14 @@ const Map<String, String> roRO = {
"phoneUser": "Utilizator telefon",
"selectSourceLanguage": "Selectează limba sursă",
"selectTargetLanguage": "Selectează limba țintă",
"me": "Me",
"counterPart": "Counterpart",
"me": "Eu",
"counterPart": "Interlocutor",
"bluetoothCallStateError":
"Please make sure the Bluetooth headset is connected to the phone and in a call state",
"autoDetect": "Auto Detect", // 自动检测
"Asigurați-vă că setul cu cască Bluetooth este conectat la telefon și că sunteți într-un apel",
"autoDetect": "Detectare automată", // 自动检测
// 翻译模块 - 文本翻译
"languageDetectionFailed": "Language detection failed",
"languageDetectionFailed": "Detectarea limbii a eșuat",
// 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'Dezactivare fereastra plutitoare',
@ -1049,17 +1056,17 @@ const Map<String, String> roRO = {
'Este necesara permisiunea microfonului pentru inregistrare',
'deleteTranslationRecordError':
'Eroare la stergerea inregistrarii de traducere: @error',
"translationFailed": "Translation failed",
"translationFailed": "Traducerea a eșuat",
"translating": "Se traduce",
"translate": "Traducere",
"pleaseInputText": "Please input text",
"pleaseInputText": "Vă rugăm să introduceți text",
"inputTextToTranslate": "Introduceți textul de tradus",
"textTooLong": "Text too long, max 5000 characters",
"textTooLong": "Text prea lung, maxim 5000 de caractere",
// 翻译模块 - 历史记录
"noTranslationHistory": "Niciun istoric",
"historyRecords": "History Records",
"clearResults": "Clear Results",
"historyRecords": "Înregistrări din istoric",
"clearResults": "Șterge rezultatele",
"clearHistory": "Șterge istoricul",
"clearHistoryConfirm":
"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ă.",
// 翻译模块 - 图片翻译
"selectImageSource": "Select Image Source",
"imagePreview": "Image Preview",
"translationResult": "Translation Result",
"recognitionResult": "Recognition Result",
"translatedImagePreview": "Translated Image Preview",
"translatedImageLoadFailed": "Failed to load translated image",
"pleaseSelectImage": "Please select an image",
"imageLoadFailed": "Image load failed",
"imageQuality": "Image Quality",
"maxSize": "Max Size",
"close": "Close",
"setImageQuality": "Set Image Quality",
"currentQuality": "Current quality: @value%",
"setMaxSize": "Set Max Size",
"currentMaxSize": "Current: @pxpx",
"waitingForAction": "Waiting for action",
"pleaseSelectImageToStart": "Please select an image to start",
"chooseImage": "Choose Image",
"openingCamera": "Opening camera...",
"openingPhotoAlbum": "Opening photo album...",
"cancelled": "Cancelled",
"userCancelledSelection": "User cancelled selection",
"translatingImage": "Translating Image",
"callingImageTranslateService": "Calling image translation service...",
"savingRecord": "Saving Record",
"savingTranslationResult": "Saving translation result...",
"translationCompleted": "Translation Completed",
"allStepsCompleted": "All steps completed",
"processingFailed": "Processing Failed",
"selectImageSource": "Selectați sursa imaginii",
"imagePreview": "Previzualizare imagine",
"translationResult": "Rezultat traducere",
"recognitionResult": "Rezultat recunoaștere",
"translatedImagePreview": "Previzualizare imagine tradusă",
"translatedImageLoadFailed": "Nu s-a putut încărca imaginea tradusă",
"pleaseSelectImage": "Vă rugăm să selectați o imagine",
"imageLoadFailed": "Încărcarea imaginii a eșuat",
"imageQuality": "Calitate imagine",
"maxSize": "Dimensiune maximă",
"close": "Închide",
"setImageQuality": "Setează calitatea imaginii",
"currentQuality": "Calitate curentă: @value%",
"setMaxSize": "Setează dimensiunea maximă",
"currentMaxSize": "Curent: @pxpx",
"waitingForAction": "Se așteaptă o acțiune",
"pleaseSelectImageToStart": "Selectați o imagine pentru a începe",
"chooseImage": "Alegeți imaginea",
"openingCamera": "Se deschide camera...",
"openingPhotoAlbum": "Se deschide albumul foto...",
"cancelled": "Anulat",
"userCancelledSelection": "Utilizatorul a anulat selecția",
"translatingImage": "Se traduce imaginea",
"callingImageTranslateService":
"Se apelează serviciul de traducere a imaginilor...",
"savingRecord": "Se salvează înregistrarea",
"savingTranslationResult": "Se salvează rezultatul traducerii...",
"translationCompleted": "Traducere finalizată",
"allStepsCompleted": "Toți pașii au fost finalizați",
"processingFailed": "Procesare eșuată",
"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",
"imageTooLargeHint":
"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":
"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":
"Image translation API exception. Check network and retry",
"permissionRequired": "Permission Required",
"cameraPermissionRequired": "Camera permission required to take photos",
"Excepție la API-ul de traducere a imaginii. Verificați rețeaua și reîncercați",
"permissionRequired": "Permisiune necesară",
"cameraPermissionRequired":
"Permisiunea camerei este necesară pentru a face fotografii",
"photoAlbumPermissionRequired":
"Photo album permission required to pick images",
"translationDetails": "Translation Details",
"originalImage": "Original Image",
"sourceLanguage": "Source Language",
"targetLanguage": "Target Language",
"translationTime": "Translation Time",
"Permisiunea pentru albumul foto este necesară pentru a selecta imagini",
"translationDetails": "Detalii traducere",
"originalImage": "Imagine originală",
"sourceLanguage": "Limba sursă",
"targetLanguage": "Limba țintă",
"translationTime": "Timp de traducere",
"shareInDevelopment": "Sharing feature under development",
// 翻译模块 - 录音文件
@ -1216,32 +1226,32 @@ const Map<String, String> roRO = {
'Serviciul de cont a fost inițializat', // AccountService 已初始化
// 权限模块
'meetingStoragePermission': 'Storage',
'meetingStoragePermission': 'Stocare',
'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':
'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',
'communicationPermissions': 'Permisiuni de comunicare',
'bluetoothPermissions': 'Bluetooth Permissions',
'notificationPermissions': 'Notification Permissions',
'storagePermissions': 'Storage Permissions',
'microphonePermissions': 'Microphone Permissions',
'alarmPermissions': 'Alarm Permissions',
'bluetoothPermissions': 'Permisiuni Bluetooth',
'notificationPermissions': 'Permisiuni notificări',
'storagePermissions': 'Permisiuni stocare',
'microphonePermissions': 'Permisiuni microfon',
'alarmPermissions': 'Permisiuni alarme',
'calendarPermissions': 'Permisiuni calendar',
'locationPermissions': 'Permisiuni locație',
'phone': 'Telefon',
'sms': 'SMS',
'contacts': 'Contacts',
'notification': 'Notification',
'alarm': 'Alarm',
'contacts': 'Contacte',
'notification': 'Notificări',
'alarm': 'Alarmă',
'calendarWrite': 'Scriere în calendar',
'calendarFullAccess': 'Acces complet la calendar',
'locationInfo': 'Informații locație',
'phonePermissionDesc': 'Utilizat pentru funcția de apelare',
'smsPermissionDesc': 'Utilizat pentru funcția de trimitere SMS',
'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':
'Utilizat pentru crearea de evenimente și memento-uri în calendar',
'calendarFullAccessPermissionDesc':
@ -1261,72 +1271,75 @@ const Map<String, String> roRO = {
'smsPermissionDetailDesc':
'Funcția de trimitere SMS necesită permisiunea pentru SMS',
'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':
'Crearea de evenimente în calendar necesită permisiunea de scriere în calendar',
'calendarFullAccessPermissionDetailDesc':
'Gestionarea evenimentelor din calendar necesită permisiunea completă pentru calendar',
'locationPermissionDetailDesc':
'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':
'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':
'Used for connecting and managing Bluetooth devices',
'Folosit pentru conectarea și gestionarea dispozitivelor Bluetooth',
'bluetoothPermissionDetailDesc':
'Connecting to Bluetooth headphones and other devices requires Bluetooth permission',
'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices',
'Conectarea la căști Bluetooth și alte dispozitive necesită permisiunea Bluetooth',
'bluetoothScanPermissionDesc':
'Folosit pentru scanarea dispozitivelor Bluetooth din apropiere',
'bluetoothScanPermissionDetailDesc':
'Scanning for nearby Bluetooth devices requires Bluetooth scan permission',
'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices',
'Scanarea dispozitivelor Bluetooth din apropiere necesită permisiunea de scanare Bluetooth',
'bluetoothConnectPermissionDesc':
'Folosit pentru conectarea la dispozitive Bluetooth',
'bluetoothConnectPermissionDetailDesc':
'Connecting to Bluetooth devices requires Bluetooth connect permission',
'notificationPermissionDesc': 'Used for sending notification messages',
'Conectarea la dispozitive Bluetooth necesită permisiunea de conectare Bluetooth',
'notificationPermissionDesc':
'Folosit pentru trimiterea mesajelor de notificare',
'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':
'Aplicația necesită această permisiune pentru funcționalitate completă',
'permanentDenialText':
'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',
'bluetoothScan': 'Bluetooth Scan',
'bluetoothConnect': 'Bluetooth Connect',
'bluetoothScan': 'Scanare Bluetooth',
'bluetoothConnect': 'Conectare Bluetooth',
'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':
'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':
'The app needs location permission to scan Bluetooth devices.',
'Aplicația are nevoie de permisiunea de locație pentru a scana dispozitive Bluetooth.',
'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':
'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':
'Location permission has been permanently denied, please go to settings to enable it manually.',
'notificationPermission': 'Notification',
'locationPermission': 'Location',
'Permisiunea de locație a fost refuzată permanent. Mergeți la setări pentru a o activa manual.',
'notificationPermission': 'Notificări',
'locationPermission': 'Locație',
'notificationPermissionExplanation':
'Notification permission is required to display music playback status.',
'Permisiunea de notificare este necesară pentru a afișa starea redării muzicii.',
'locationPermissionExplanation':
'Location permission is required to get current location.',
'Permisiunea de locație este necesară pentru a obține locația curentă.',
'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':
'You have permanently denied location permission, please go to settings to enable it.',
'storagePermission': 'Storage',
'Ați refuzat permanent permisiunea de locație. Mergeți la setări pentru a o activa.',
'storagePermission': 'Stocare',
'microphonePermissionExplanation':
'We need microphone permission to record audio content.',
'Avem nevoie de permisiunea microfonului pentru a înregistra conținut audio.',
'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':
'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':
'Storage permission has been permanently denied. To continue using this feature, please go to app settings to manually enable storage permission.',
'permissionUtilNeed': 'Need ',
'permissionUtilPermission': ' Permission',
'permissionUtilRestricted': ' Permission Restricted',
'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': 'Necesită ',
'permissionUtilPermission': ' permisiune',
'permissionUtilRestricted': ' Permisiune restricționată',
'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',
// 原生前台服务通知(Android)
@ -1416,27 +1429,28 @@ const Map<String, String> roRO = {
'bleConnectionFailed': 'Conexiunea BLE a eșuat',
'deviceAuthorizationFailedCheckCode':
'Autorizarea dispozitivului a eșuat, verificați codul de autorizare',
'bluetoothGuideTitle': 'Manual Bluetooth Activation Required', // 需要手动开启蓝牙
'bluetoothGuideSteps': 'Please follow these steps:', // 请按照以下步骤操作:
'bluetoothGuideTitle':
'Este necesară activarea manuală a Bluetooth', // 需要手动开启蓝牙
'bluetoothGuideSteps': 'Urmați acești pași:', // 请按照以下步骤操作:
'bluetoothGuideStep1':
'Enable Bluetooth: Settings → Bluetooth → Turn On', // 开启蓝牙:设置 → 蓝牙 → 开启
'Activați Bluetooth: Setări → Bluetooth → Porniți', // 开启蓝牙:设置 → 蓝牙 → 开启
'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':
'Return to app to continue pairing process', // 返回应用继续配对流程
'Revino în aplicație pentru a continua procesul de asociere', // 返回应用继续配对流程
'bluetoothGuideTip':
'Tip: You can also long press the Bluetooth icon in Control Center to quickly access Bluetooth settings', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置
'iKnow': 'I Know', // 我知道了
'Sfat: poți apăsa lung pictograma Bluetooth din Centrul de control pentru a accesa rapid setările Bluetooth', // 提示:也可以从控制中心长按蓝牙图标快速进入蓝牙设置
'iKnow': 'Am înțeles', // 我知道了
// 配对模块 - 绑定奖励
"firstBindRewardTitle": "Welcome Reward",
"firstBindRewardDesc": "You've received binding rewards.",
"vipLevelLabel": "VIP Level:",
"expiryLabel": "Expiration:",
"notActivated": "Not activated",
"aiChatCreditsLabel": "AI Chat Credits:",
"translationCreditsLabel": "Translation Credits:",
"meetingCreditsLabel": "Meeting Credits:",
"firstBindRewardTitle": "Recompensă de bun venit",
"firstBindRewardDesc": "Ați primit recompensele pentru asociere.",
"vipLevelLabel": "Nivel VIP:",
"expiryLabel": "Data expirării:",
"notActivated": "Neactivat",
"aiChatCreditsLabel": "Credite AI Chat:",
"translationCreditsLabel": "Credite de traducere:",
"meetingCreditsLabel": "Credite de întâlniri:",
"ok": "OK",
// 用户反馈模块
@ -1468,13 +1482,14 @@ const Map<String, String> roRO = {
"connectionFailed": "Conexiune eșuată",
"retryConnection": "Reîncearcă conexiunea",
"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":
"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":
"Unable to identify the device. Please reconnect and retry.",
"Nu se poate identifica dispozitivul. Reconectați și reîncercați.",
"otaFirmwareVersionInvalid":
"Firmware version is abnormal. Please reconnect and retry.",
"Versiunea firmware este nevalidă. Reconectați și reîncercați.",
"keepConnectedDontClose":
"Mențineți dispozitivul conectat, nu închideți aplicația",
"doNotDisconnect": "Nu deconectați",
@ -1501,7 +1516,7 @@ const Map<String, String> roRO = {
'Conexiune BLE necesara\nVerificati conexiunea si incercati din nou',
'otaDeviceInfoUnavailableTitle': 'Informatii dispozitiv indisponibile',
'otaCannotGetDeviceInfo':
'Cannot get device info\nPlease reconnect device or try again later',
'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',
'otaCannotGetDeviceInfoCheckConnection':
'Nu se pot obtine informatii, verificati conexiunea',

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

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

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

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

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

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

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

@ -1,3 +1,4 @@
// 塞尔维亚-塞尔维亚语
const Map<String, String> srRS = {
// 通用
'continue': 'Nastavi',
@ -172,8 +173,7 @@ const Map<String, String> srRS = {
'bleInitFailedWithError': 'Inicijalizacija Bluetooth-a nije uspela: @error',
'needBluetoothAndLocationPermission':
'Za skeniranje uređaja potrebne su dozvole za Bluetooth i lokaciju',
'permissionRequestFailedWithError':
'Zahtev za dozvolu nije uspeo: @error',
'permissionRequestFailedWithError': 'Zahtev za dozvolu nije uspeo: @error',
'needPermission': 'Potrebna dozvola',
'blePermissionDialogContent':
'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.',
'aiHeaderDesc2':
'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':
'Pametna lista pesama i preporuke sličnih pesama',
'routePlanningAndCongestionAvoidance':
'Planiranje rute i izbegavanje gužve',
'voiceBroadcastAndWaypoints': 'Glasovno emitovanje i podešavanje putnih tačaka',
'routePlanningAndCongestionAvoidance': 'Planiranje rute i izbegavanje gužve',
'voiceBroadcastAndWaypoints':
'Glasovno emitovanje i podešavanje putnih tačaka',
'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',
'ratingsHoursAndDirectRoutes': 'Ocene, radno vreme i direktne rute',
'hotNewsAndTopicOverview': 'Najnovije vesti i pregled tema',
@ -511,7 +513,8 @@ const Map<String, String> srRS = {
'connectingWifi': 'Povezivanje sa Wi-Fi-jem...',
'wifiConnected': 'Wi-Fi uspešno povezan',
'downloadingFiles': 'Preuzimanje datoteka...',
'downloadingFileProgress': 'Ukupno {total} datoteka, preuzimanje datoteke {current}',
'downloadingFileProgress':
'Ukupno {total} datoteka, preuzimanje datoteke {current}',
'downloadComplete': 'Preuzimanje završeno',
'downloadCompleteInfo':
'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',
'shareComplete': 'Deljenje završeno!',
'shareFailed': 'Deljenje nije uspelo: {error}',
'fileProcessingFailed': 'Obrada datoteke nije uspela: {filePath}, greška: {error}',
'fileProcessingFailed':
'Obrada datoteke nije uspela: {filePath}, greška: {error}',
// Meeting模块 - 思维导图
'saveMindMap': 'Sačuvaj mentalnu mapu',
@ -663,7 +667,8 @@ const Map<String, String> srRS = {
'meetingHours': 'Sati',
'voitransAiMember': 'Voitrans AI član',
'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',
// Meeting模块 - 会员与升级
@ -712,7 +717,8 @@ const Map<String, String> srRS = {
'unlimitedMonthly': 'Neograničeno ¥120/mesec',
'unlimitedMonthlyDesc':
'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',
'proMonthlyPrice': '¥120/mesec',
'subscribe': 'Pretplati se',
@ -822,7 +828,8 @@ const Map<String, String> srRS = {
"noMacAddress": "Nema MAC adrese",
"licenseCode": "Licencni kod",
"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",
// Agent模块 - 主界面
@ -1102,8 +1109,7 @@ const Map<String, String> srRS = {
"Izuzetak API-ja za prevod slike. Proverite mrežu i pokušajte ponovo",
"permissionRequired": "Potrebna dozvola",
"cameraPermissionRequired": "Dozvola za kameru je potrebna za fotografisanje",
"photoAlbumPermissionRequired":
"Dozvola za album je potrebna za izbor slika",
"photoAlbumPermissionRequired": "Dozvola za album je potrebna za izbor slika",
"translationDetails": "Detalji prevoda",
"originalImage": "Originalna slika",
"sourceLanguage": "Izvorni jezik",
@ -1265,10 +1271,12 @@ const Map<String, String> srRS = {
'Koristi se za povezivanje i upravljanje Bluetooth uređajima',
'bluetoothPermissionDetailDesc':
'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':
'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':
'Povezivanje sa Bluetooth uređajima zahteva dozvolu za Bluetooth povezivanje',
'notificationPermissionDesc': 'Koristi se za slanje obaveštenja',
@ -1406,7 +1414,8 @@ const Map<String, String> srRS = {
'bleConnectionFailed': 'Neuspešna BLE veza',
'deviceAuthorizationFailedCheckCode':
'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:', // 请按照以下步骤操作:
'bluetoothGuideStep1':
'Uključite Bluetooth: Podešavanja → Bluetooth → Uključi', // 开启蓝牙:设置 → 蓝牙 → 开启
@ -1458,7 +1467,8 @@ const Map<String, String> srRS = {
"connectionFailed": "Neuspešno povezivanje",
"retryConnection": "Pokušaj ponovo povezivanje",
"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":
"Nije moguće dobiti informacije o uređaju. Proverite vezu i pokušajte ponovo.",
"otaProductInfoUnavailable":
@ -1496,7 +1506,8 @@ const Map<String, String> srRS = {
'Nije moguće dobiti informacije o uređaju, proverite vezu sa uređajem',
'otaCannotGetProductInfoWithName':
'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',
'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',
@ -1507,7 +1518,8 @@ const Map<String, String> srRS = {
// OTA升级模块 - 升级状态
'otaDefaultUpdateDesc':
'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',
'otaCheckingDeviceStatus': 'Provera statusa uređaja...',
'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 = {
// 通用
'continue': 'Magpatuloy',
@ -110,7 +111,7 @@ const Map<String, String> tlPH = {
"welcomeToThisApp":
"Maligayang pagdating sa Voitrans, mangyaring basahin nang mabuti", // 欢迎使用Voitrans,请充分阅读
"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", // 不同意
"agreeAndEnter": "Sumang-ayon at Pumasok", // 同意并进入
@ -654,7 +655,7 @@ const Map<String, String> tlPH = {
// Meeting模块 - 云端同步
'syncToCloud': 'Sync to Cloud',
'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',
'transcriptionRecord': 'Record ng transkripsyon',
@ -769,8 +770,8 @@ const Map<String, String> tlPH = {
"translationRecharge": "Pagsasalin ng Recharge",
"meetingAssistantRecharge": "Pagsasalin ng Recharge ng Pulong",
"cloudSync": "Pagsasalin ng Recharge ng Cloud",
"memberService": "Member Service",
"bindRewardTitle": "Rewards",
"memberService": "Serbisyo ng Miyembro",
"bindRewardTitle": "Mga gantimpala",
"bindRewardSimpleDesc":
"Na-issue na ang gantimpala para sa unang pag-bind ng device. I-tap ang OK upang isara.",
"joinDevice": "Konektadong device:",
@ -868,30 +869,30 @@ const Map<String, String> tlPH = {
"loadFailedClickRetry": "Nabigo ang pag-load, i-click para subukang muli",
"swipeUpForMore": "Mag-swipe pataas para sa higit pa",
"callingTool": "Tinutulungan kita, pakihintay!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断
"voice_interrupt": "Ihinto", // 语音打断
'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.',
// Agent模块 - 预设提示词
"presetMusic": "Play some music", // 来点音乐
"presetNavigation": "Navigation to", // 导航
"presetWeather": "Today's weather", // 今日天气
"presetNews": "Today's news", // 今日新闻
"presetFood": "Nearby food", // 美食
"playSomeMusic": "Play some popular music", // 播放一些流行音乐
"navigationTo": "Pakitulungan akong mag-navigate sa", // 导航到
"todayWeather": "How's the weather today?", // 今日天气
"todayNews": "What's the news today?", // 今日新闻
"nearbyFood": "What delicious food is nearby?", // 美食
"presetMusic": "Magpatugtog ng musika", // 来点音乐
"presetNavigation": "Mag-navigate patungo", // 导航
"presetWeather": "Panahon ngayon", // 今日天气
"presetNews": "Balita ngayon", // 今日新闻
"presetFood": "Pagkain malapit dito", // 美食
"playSomeMusic": "Magpatugtog ng sikat na musika", // 播放一些流行音乐
"navigationTo": "Mag-navigate patungo", // 导航到
"todayWeather": "Anong panahon ngayon?", // 今日天气
"todayNews": "Anong balita ngayon?", // 今日新闻
"nearbyFood": "Saan may masarap na pagkain malapit dito?", // 附近有什么好吃的
// Agent模块 - 欢迎消息与权限
'welcomeMessage': '你好!我是**Lily**,我能帮你:\n\n'
'• 回答问题和提供信息\n\n'
'• 实时语音翻译\n\n'
'• 推荐音乐和播客\n\n'
'• 语音备忘录和提醒\n\n'
'• 控制耳机功能\n\n'
'有什么我可以帮你的吗?',
'welcomeMessage': 'Kumusta! Ako si **Lily**.\n\n'
'• Sasagot sa mga tanong at magbibigay ng impormasyon\n\n'
'• Real-time na voice translation\n\n'
'• Magrerekomenda ng musika at podcast\n\n'
'• Voice memo at paalala\n\n'
'• Kontrol ang mga function ng headset\n\n'
'Paano kita matutulungan?',
'microphonePermission': 'Mikropono',
'voiceRecognitionPermissionText':
'Ang pagkilala sa boses ay nangangailangan ng access sa mikropono.',
@ -1232,7 +1233,7 @@ const Map<String, String> tlPH = {
'meetingStoragePermissionExplanation':
'Kailangan namin ng access sa storage permission para makapili at makapag-upload ka ng mga audio file.',
'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',
'communicationPermissions': 'Mga Pahintulot sa Komunikasyon',
'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',
'locationPermissionDetailDesc':
'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':
'Ang function ng pagtawag at SMS ay nangangailangan ng pahintulot sa contacts para pumili ng contacts',
'bluetoothPermissionDesc':
@ -1333,9 +1335,9 @@ const Map<String, String> tlPH = {
'storagePermissionExplanation':
'Kailangan namin ang pahintulot sa storage para makapili at makapag-upload ka ng mga audio file.',
'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':
'检测到您已永久拒绝存储权限。如需继续使用此功能,请前往应用设置中手动开启存储权限。',
'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 ',
'permissionUtilPermission': ' pahintulot',
'permissionUtilRestricted': ' ay may restriksyon',
@ -1448,14 +1450,14 @@ const Map<String, String> tlPH = {
'iKnow': 'Naiintindihan ko', // 我知道了
// 配对模块 - 绑定奖励
"firstBindRewardTitle": "Welcome Reward",
"firstBindRewardDesc": "You've received binding rewards.",
"vipLevelLabel": "VIP Level:",
"expiryLabel": "Expiration:",
"notActivated": "Not activated",
"aiChatCreditsLabel": "AI Chat Credits:",
"translationCreditsLabel": "Translation Credits:",
"meetingCreditsLabel": "Meeting Credits:",
"firstBindRewardTitle": "Pembelian Terlebih Dahulu",
"firstBindRewardDesc": "Anda telah menerima premi binding.",
"vipLevelLabel": "Level VIP:",
"expiryLabel": "Petsa ng pag-expire:",
"notActivated": "Belum diaktifkan",
"aiChatCreditsLabel": "Kredit Chat AI:",
"translationCreditsLabel": "Mga Kredito sa Pagsasalin:",
"meetingCreditsLabel": "Kredity meeting:",
"ok": "OK",
// 用户反馈模块
@ -1536,13 +1538,13 @@ const Map<String, String> tlPH = {
'otaBatteryCheckFailed': 'Nabigo ang pag-check ng baterya',
// OTA升级模块 - 升级状态
'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':
'Nabigong kunin ang pinakabagong impormasyon ng bersyon',
'otaGetVersionInfoFailed': 'Nabigong kunin ang impormasyon ng bersyon',
'otaCheckingDeviceStatus': 'Tinitingnan ang estado ng device...',
'otaDownloadFailedCheckNetwork':
'Download failed, please check network connection',
'Nabigo ang pag-download, pakisuri ang koneksyon sa network',
'otaDownloadFailed': 'Nabigo ang pag-download',
'otaPreparingConnection': 'Inihahanda ang koneksyon ng device...',
'otaConnectingDevice': 'Kumokonekta sa device...',
@ -1552,7 +1554,7 @@ const Map<String, String> tlPH = {
'otaUpgradeFailedWithCode': 'Nabigo ang pag-upgrade, code ng error: @code',
'otaUpgradeFailedTitle': 'Nabigo ang pag-upgrade',
'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',
'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 = {
// 通用
'continue': 'Tiếp tục',
@ -109,7 +110,7 @@ const Map<String, String> viVN = {
"welcomeToThisApp":
"Chào mừng bạn đến với Voitrans, vui lòng đọc kỹ", // 欢迎使用Voitrans,请充分阅读
"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 ý", // 不同意
"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",
"swipeUpForMore": "Vuốt lên để xem thêm",
"callingTool": "Tôi đang giúp bạn, vui lòng đợi!", // 正在帮您,请稍等!
"voice_interrupt": "Interrupt", // 语音打断
"voice_interrupt": "Ngắt", // 语音打断
'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.',

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

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

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

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

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

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

41
tools/i18n_audit.py

@ -119,6 +119,47 @@ def _looks_english_sentence(s: str) -> bool:
"disable",
"check",
"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)

Loading…
Cancel
Save