Browse Source

feat(i18n): 完善多语言翻译并添加翻译测试

- 更新中文(简体、繁体、香港)翻译,将英文占位符替换为本地化文本
- 改进阿拉伯语、希腊语、韩语、爱沙尼亚语、乌克兰语、波兰语、克罗地亚语、拉脱维亚语、越南语、德语、日语等语言的翻译准确性
- 为法语、日语、挪威语、冰岛语翻译添加单元测试,验证键完整性和占位符一致性
- 添加日语翻译修复脚本,自动替换英文占位符为日文
- 统一商品名称、权限描述、时间单位等术语的本地化表达
newdev_shunjiawei
lxm 7 months ago
parent
commit
a70f5903d4
  1. 97
      fix_ja_jp.py
  2. 10
      lib/core/translations/language/ar_sa.dart
  3. 110
      lib/core/translations/language/bg_bg.dart
  4. 212
      lib/core/translations/language/cs_cz.dart
  5. 240
      lib/core/translations/language/da_dk.dart
  6. 130
      lib/core/translations/language/de_de.dart
  7. 12
      lib/core/translations/language/el_gr.dart
  8. 16
      lib/core/translations/language/et_ee.dart
  9. 402
      lib/core/translations/language/fi_fi.dart
  10. 355
      lib/core/translations/language/fr_fr.dart
  11. 50
      lib/core/translations/language/hi_in.dart
  12. 46
      lib/core/translations/language/hr_hr.dart
  13. 67
      lib/core/translations/language/hu_hu.dart
  14. 550
      lib/core/translations/language/id_id.dart
  15. 465
      lib/core/translations/language/is_is.dart
  16. 226
      lib/core/translations/language/it_it.dart
  17. 75
      lib/core/translations/language/ja_jp.dart
  18. 16
      lib/core/translations/language/ko_kr.dart
  19. 53
      lib/core/translations/language/lt_lt.dart
  20. 60
      lib/core/translations/language/lv_lv.dart
  21. 694
      lib/core/translations/language/ms_my.dart
  22. 606
      lib/core/translations/language/nb_no.dart
  23. 978
      lib/core/translations/language/nl_nl.dart
  24. 37
      lib/core/translations/language/pl_pl.dart
  25. 312
      lib/core/translations/language/pt_pt.dart
  26. 426
      lib/core/translations/language/ro_ro.dart
  27. 255
      lib/core/translations/language/ru_ru.dart
  28. 642
      lib/core/translations/language/sk_sk.dart
  29. 649
      lib/core/translations/language/sl_si.dart
  30. 436
      lib/core/translations/language/tl_ph.dart
  31. 244
      lib/core/translations/language/tr_tr.dart
  32. 22
      lib/core/translations/language/uk_ua.dart
  33. 166
      lib/core/translations/language/vi_vn.dart
  34. 2
      lib/core/translations/language/zh_cn.dart
  35. 69
      lib/core/translations/language/zh_hk.dart
  36. 73
      lib/core/translations/language/zh_tw.dart
  37. 22
      test/fr_fr_translations_test.dart
  38. 78
      test/is_is_translations_test.dart
  39. 22
      test/ja_jp_translations_test.dart
  40. 22
      test/nb_no_translations_test.dart

97
fix_ja_jp.py

@ -0,0 +1,97 @@
#!/usr/bin/env python3
"""
Fix Japanese translation file: replace English/Chinese placeholders with proper Japanese.
Brand names (Voitrans, Lily, WeChat, Alipay, PayPal, Apple, Google, Bluetooth, BLE, OTA,
AI, ASR, TTS, VOITRANS, AIPEN, VoiTrans, DeepSound) are kept as-is.
"""
import re
filepath = 'lib/core/translations/language/ja_jp.dart'
with open(filepath, 'r', encoding='utf-8') as f:
content = f.read()
# Each tuple: (old_string, new_string)
# We use exact string replacement to be safe.
replacements = [
# ---- English-only entries that need translation ----
# viewAll
(" 'viewAll': 'View All',",
" 'viewAll': 'すべて表示',"),
# proMonthly – price tag, keep currency but translate label
(" 'proMonthly': 'Pro ¥60/month',",
" 'proMonthly': 'Pro ¥60/月',"),
# proMonthlyDesc – multiline
(" 'proMonthlyDesc':\n '7-day free trial, then ¥800/year. Cancel anytime before trial ends.',",
" 'proMonthlyDesc':\n '7日間無料トライアル、その後¥800/年。トライアル終了前にいつでもキャンセル可能。',"),
# proMonthlyPrice
(" 'proMonthlyPrice': '¥120/month',",
" 'proMonthlyPrice': '¥120/月',"),
# unlimitedMonthlyPrice
(" 'unlimitedMonthlyPrice': '¥198/month',",
" 'unlimitedMonthlyPrice': '¥198/月',"),
# currentQuality
(' "currentQuality": "Current quality: @value%",',
' "currentQuality": "現在の品質: @value%",'),
# currentMaxSize
(' "currentMaxSize": "Current: @pxpx",',
' "currentMaxSize": "現在: @pxpx",'),
# allStepsCompleted
(' "allStepsCompleted": "All steps completed",',
' "allStepsCompleted": "すべてのステップが完了しました",'),
# clean / Clear Cache
(" 'clean': 'Clear Cache',",
" 'clean': 'キャッシュをクリア',"),
# cleanTips
(" 'cleanTips': 'Are you sure you want to clear personal cache?',",
" 'cleanTips': '個人キャッシュをクリアしてもよろしいですか?',"),
# permissionUtilNeed
(" 'permissionUtilNeed': 'Need ',",
" 'permissionUtilNeed': '必要:',"),
# iapCustomerServiceQQLabel
(" 'iapCustomerServiceQQLabel': 'IAP customer service QQ: @qq',",
" 'iapCustomerServiceQQLabel': 'IAP カスタマーサービス QQ: @qq',"),
# tsransit (transit / 公交)
(' "tsransit": "Transit",',
' "tsransit": "乗り換え",'),
# sixThousandMinutes / threeThousandMinutes / sixHundredMinutes / oneHundredTwentyMinutes
(" 'sixThousandMinutes': '6,000 minutes',",
" 'sixThousandMinutes': '6,000分',"),
(" 'threeThousandMinutes': '3,000 minutes',",
" 'threeThousandMinutes': '3,000分',"),
(" 'sixHundredMinutes': '600 minutes',",
" 'sixHundredMinutes': '600分',"),
(" 'oneHundredTwentyMinutes': '120 minutes',",
" 'oneHundredTwentyMinutes': '120分',"),
]
original = content
for old, new in replacements:
if old in content:
content = content.replace(old, new)
print(f'REPLACED: {repr(old[:60])}')
else:
print(f'NOT FOUND: {repr(old[:60])}')
if content != original:
with open(filepath, 'w', encoding='utf-8') as f:
f.write(content)
print('\nFile updated successfully.')
else:
print('\nNo changes made.')

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

@ -902,11 +902,11 @@ const Map<String, String> arSA = {
'generatedByAi': 'تم إنشاؤه بواسطة AI', 'generatedByAi': 'تم إنشاؤه بواسطة AI',
// Agent模块 - 工具调用 // Agent模块 - 工具调用
'toolCall': 'Tool Call', 'toolCall': 'استدعاء الأداة',
'noResult': 'No Result', 'noResult': 'لا توجد نتيجة',
'noToolCallContentToCopy': 'No tool call content to copy', 'noToolCallContentToCopy': 'لا يوجد محتوى لاستدعاء الأداة للنسخ',
'toolCallDetails': 'Tool Call Details:', 'toolCallDetails': 'تفاصيل استدعاء الأداة:',
'toolCallContentCopied': 'Tool call content copied to clipboard', 'toolCallContentCopied': 'تم نسخ محتوى استدعاء الأداة إلى الحافظة',
// Agent模块 - 音乐卡片 // Agent模块 - 音乐卡片
'recommendedMusic': 'إليك بعض الموسيقى الموصى بها:', 'recommendedMusic': 'إليك بعض الموسيقى الموصى بها:',

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

@ -185,10 +185,10 @@ const Map<String, String> bgBG = {
'bleDisconnected': 'Прекъсната връзка', 'bleDisconnected': 'Прекъсната връзка',
'bleDeviceDisconnected': 'Устройството е прекъснато', 'bleDeviceDisconnected': 'Устройството е прекъснато',
'bleDisconnectFailedWithError': 'Неуспешно прекъсване на връзката: @error', 'bleDisconnectFailedWithError': 'Неуспешно прекъсване на връзката: @error',
'signalStrong': 'Strong', 'signalStrong': 'Силен',
'signalMedium': 'Medium', 'signalMedium': 'Среден',
'signalWeak': 'Weak', 'signalWeak': 'Слаб',
'signalVeryWeak': 'Very Weak', 'signalVeryWeak': 'Много слаб',
// 发现页 // 发现页
"searchAi": "Търсене на AI функции...", "searchAi": "Търсене на AI функции...",
@ -563,12 +563,12 @@ const Map<String, String> bgBG = {
'nameSpeaker': 'Име на говорител', 'nameSpeaker': 'Име на говорител',
// Meeting模块 - 转写与总结 // Meeting模块 - 转写与总结
'reSummarize': 'Re-summarize', 'reSummarize': 'Обобщи отново',
'dateAndTime': 'Date & Time', 'dateAndTime': 'Дата и час',
'location': 'Location', 'location': 'Местоположение',
'attendees': 'Attendees', 'attendees': 'Участници',
'inputLocation': 'Enter Location', 'inputLocation': 'Въведете местоположение',
'inputAttendees': 'Enter Attendees', 'inputAttendees': 'Въведете участници',
// Meeting模块 - 模版与生成 // Meeting模块 - 模版与生成
'selectSummaryTemplate': 'Избери шаблон за резюме', 'selectSummaryTemplate': 'Избери шаблон за резюме',
@ -599,57 +599,57 @@ const Map<String, String> bgBG = {
'AI анализът идентифицира ключови събития в записите, позволявайки ви да изберете важни събития за AI генериране.', 'AI анализът идентифицира ключови събития в записите, позволявайки ви да изберете важни събития за AI генериране.',
// Meeting模块 - 文件操作 // Meeting模块 - 文件操作
'importing': 'Importing...', 'importing': 'Импортиране...',
'batchImporting': 'Batch importing...', 'batchImporting': 'Пакетно импортиране...',
'importingLocalRecordings': 'Импортиране на локални записи...', 'importingLocalRecordings': 'Импортиране на локални записи...',
'importFailed': 'Неуспешен импорт на файл: {filePath}, грешка: {error}', 'importFailed': 'Неуспешен импорт на файл: {filePath}, грешка: {error}',
'importSuccess': 'Успешно импортирани {count} локални записа', 'importSuccess': 'Успешно импортирани {count} локални записа',
'importError': 'Неуспешен импорт: {error}', 'importError': 'Неуспешен импорт: {error}',
'pleaseSelectAudioFile': 'Моля, изберете аудио файл', 'pleaseSelectAudioFile': 'Моля, изберете аудио файл',
'shareAudio': 'Share Meeting Audio', 'shareAudio': 'Споделяне на аудио от срещата',
'shareComplete': 'Share complete!', 'shareComplete': 'Споделянето завърши!',
'shareFailed': 'Неуспешно споделяне: {error}', 'shareFailed': 'Неуспешно споделяне: {error}',
'fileProcessingFailed': 'fileProcessingFailed':
'Неуспешна обработка на файл: {filePath}, грешка: {error}', 'Неуспешна обработка на файл: {filePath}, грешка: {error}',
// Meeting模块 - 思维导图 // Meeting模块 - 思维导图
'saveMindMap': 'Запази интелектуална карта', 'saveMindMap': 'Запази интелектуална карта',
'shareMindMap': 'Share Mind Map', 'shareMindMap': 'Споделяне на мисловна карта',
'shareSuccess': 'Успешно споделяне', 'shareSuccess': 'Успешно споделяне',
// Meeting模块 - AI问答 // Meeting模块 - AI问答
'askAI': 'Ask AI ...', 'askAI': 'Попитай AI...',
'askAIPrompt': 'What can I help you with today?', 'askAIPrompt': 'С какво мога да ви помогна днес?',
'continueAsk': 'Continue Asking', 'continueAsk': 'Продължи с въпроси',
'todoList': 'To-Do List', 'todoList': 'Списък със задачи',
'extractConclusion': 'Extract Conclusion', 'extractConclusion': 'Извлечи заключение',
'generateKeyIndicators': 'Generate Key Indicators', 'generateKeyIndicators': 'Генерирай ключови показатели',
// Meeting模块 - 分享与导出 // Meeting模块 - 分享与导出
'shareLink': 'Share Link', 'shareLink': 'Споделяне на връзка',
'copyTranscript': 'Copy Transcript', 'copyTranscript': 'Копиране на протокола',
'copySummary': 'Copy Summary', 'copySummary': 'Копиране на резюмето',
'exportAudio': 'Export Audio', 'exportAudio': 'Експортиране на аудио',
'exportTranscript': 'Export Transcript', 'exportTranscript': 'Експортиране на протокола',
'shareMeetingAudio': 'Share Meeting Audio', 'shareMeetingAudio': 'Споделяне на аудио от срещата',
'exportSummary': 'Export Summary', 'exportSummary': 'Експортиране на резюмето',
'exportAs': 'Export As', 'exportAs': 'Експортирай като',
'exportingPDF': 'Exporting PDF...', 'exportingPDF': 'Експортиране на PDF...',
'export': 'Експортиране', 'export': 'Експортиране',
// Meeting模块 - 发言者 // Meeting模块 - 发言者
'applyToAllParagraphs': 'Приложи към всички абзаци на този говорител', 'applyToAllParagraphs': 'Приложи към всички абзаци на този говорител',
'summaryWillBeUpdatedAutomatically': 'summaryWillBeUpdatedAutomatically':
'Резюмето ще се обновява автоматично според шаблона', 'Резюмето ще се обновява автоматично според шаблона',
'nameCurrentSpeaker': 'Name Current Speaker', 'nameCurrentSpeaker': 'Именувай текущия говорител',
'recentlyUsedNames': 'Recently Used Names', 'recentlyUsedNames': 'Скоро използвани имена',
'applyToCurrentParagraph': 'Apply to Current Paragraph', 'applyToCurrentParagraph': 'Приложи към текущия абзац',
'totalTime': 'Total Time', 'totalTime': 'Общо време',
'summarySpeakerWillBeUpdatedAutomatically': 'summarySpeakerWillBeUpdatedAutomatically':
'Summary speakers will be updated automatically', 'Summary speakers will be updated automatically',
// Meeting模块 - 云端同步 // Meeting模块 - 云端同步
'syncToCloud': 'Sync to Cloud', 'syncToCloud': 'Синхронизирай в облака',
'syncToCloudTip': 'syncToCloudTip':
'Автоматично синхронизирайте записите си в облака. Можете да възпроизвеждате, управлявате и споделяте записи чрез всяко приложение VOITRANS или VOITRANS Web (web.voitrans.com).', 'Автоматично синхронизирайте записите си в облака. Можете да възпроизвеждате, управлявате и споделяте записи чрез всяко приложение VOITRANS или VOITRANS Web (web.voitrans.com).',
'syncToVoitransApp': 'Синхронизирай с VOITRANS APP', 'syncToVoitransApp': 'Синхронизирай с VOITRANS APP',
@ -741,12 +741,12 @@ const Map<String, String> bgBG = {
// Meeting模块 - 录音语言 // Meeting模块 - 录音语言
'recordLanguage': 'Език на записа', 'recordLanguage': 'Език на записа',
'cantonese': 'Cantonese', 'cantonese': 'Кантонски',
'sichuan': 'Sichuan Dialect', 'sichuan': 'Съчуански диалект',
'shanghai': 'Shanghai Dialect', 'shanghai': 'Шанхайски диалект',
// Meeting模块 - 错误提示 // Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Unknown Language', 'meetingUnknownLanguage': 'Неизвестен език',
'analysisFailed': 'Анализът не успя, моля опитайте отново по-късно', 'analysisFailed': 'Анализът не успя, моля опитайте отново по-късно',
'transcriptionFailed': 'transcriptionFailed':
'Транскрипцията не успя, моля опитайте отново по-късно', 'Транскрипцията не успя, моля опитайте отново по-късно',
@ -925,11 +925,11 @@ const Map<String, String> bgBG = {
'generatedByAi': 'Генерирано от AI', 'generatedByAi': 'Генерирано от AI',
// Agent模块 - 工具调用 // Agent模块 - 工具调用
'toolCall': 'Tool Call', 'toolCall': 'Извикване на инструмент',
'noResult': 'No Result', 'noResult': 'Няма резултат',
'noToolCallContentToCopy': 'No tool call content to copy', 'noToolCallContentToCopy': 'Няма съдържание за копиране',
'toolCallDetails': 'Tool Call Details:', 'toolCallDetails': 'Детайли на извикването:',
'toolCallContentCopied': 'Tool call content copied to clipboard', 'toolCallContentCopied': 'Съдържанието е копирано в клипборда',
// Agent模块 - 音乐卡片 // Agent模块 - 音乐卡片
'recommendedMusic': 'Ето някои препоръчани музики:', 'recommendedMusic': 'Ето някои препоръчани музики:',
@ -952,27 +952,27 @@ const Map<String, String> bgBG = {
"tsransit": "Обществен транспорт", "tsransit": "Обществен транспорт",
// Agent模块 - 导航选择 // Agent模块 - 导航选择
'selectNavigationApp': 'Select Navigation App', 'selectNavigationApp': 'Избери навигационно приложение',
'amapMap': 'Amap', 'amapMap': 'Amap',
'useAmapNavigation': 'Navigate with Amap', 'useAmapNavigation': 'Навигирай с Amap',
'baiduMap': 'Baidu Maps', 'baiduMap': 'Baidu Maps',
'useBaiduNavigation': 'Navigate with Baidu Maps', 'useBaiduNavigation': 'Навигирай с Baidu Maps',
'googleMap': 'Google Maps', 'googleMap': 'Google Maps',
'useGoogleNavigation': 'Navigate with Google Maps', 'useGoogleNavigation': 'Навигирай с Google Maps',
'appleMap': 'Apple Maps', 'appleMap': 'Apple Maps',
'useAppleNavigation': 'Navigate with Apple Maps', 'useAppleNavigation': 'Навигирай с Apple Maps',
'builtInNavigation': 'Built-in Navigation', 'builtInNavigation': 'Вградена навигация',
'useBuiltInNavigation': 'Navigate with built-in map', 'useBuiltInNavigation': 'Навигирай с вградена карта',
'navigationStartFailed': 'Неуспешно стартиране на навигацията', 'navigationStartFailed': 'Неуспешно стартиране на навигацията',
'cannotPlayMusicListRetryLater': 'cannotPlayMusicListRetryLater':
'Не може да се възпроизведе музикалният списък, моля опитайте отново по-късно', 'Не може да се възпроизведе музикалният списък, моля опитайте отново по-късно',
'cannotPlaySong': 'Cannot play song', 'cannotPlaySong': 'Не може да се възпроизведе песен',
'openMapError': 'Грешка при отваряне на картата', 'openMapError': 'Грешка при отваряне на картата',
'pleaseInstallAmapApp': 'Моля, първо инсталирайте приложението Amap', 'pleaseInstallAmapApp': 'Моля, първо инсталирайте приложението Amap',
'pleaseInstallBaiduMapApp': 'pleaseInstallBaiduMapApp':
'Моля, първо инсталирайте приложението Baidu Maps', 'Моля, първо инсталирайте приложението Baidu Maps',
'appleMapStartFailed': 'Неуспешно стартиране на Apple Maps', 'appleMapStartFailed': 'Неуспешно стартиране на Apple Maps',
'appleMapUnavailable': 'Apple Maps unavailable', 'appleMapUnavailable': 'Apple Maps не е налично',
'openAppleMapError': 'Грешка при отваряне на Apple Maps', 'openAppleMapError': 'Грешка при отваряне на Apple Maps',
// Agent模块 - 天气卡片 // Agent模块 - 天气卡片
@ -1225,7 +1225,7 @@ const Map<String, String> bgBG = {
'AccountService е инициализиран', // AccountService 已初始化 'AccountService е инициализиран', // AccountService 已初始化
// 权限模块 // 权限模块
'meetingStoragePermission': 'Storage', 'meetingStoragePermission': 'Съхранение',
'meetingStoragePermissionExplanation': 'meetingStoragePermissionExplanation':
'Нуждаем се от достъп до разрешения за съхранение, за да можете да избирате и качвате аудио файлове.', 'Нуждаем се от достъп до разрешения за съхранение, за да можете да избирате и качвате аудио файлове.',
'meetingStoragePermissionPermanentDenial': 'meetingStoragePermissionPermanentDenial':
@ -1501,7 +1501,7 @@ const Map<String, String> bgBG = {
"Извадете двете слушалки и се уверете, че батерията на двете е над 20%", "Извадете двете слушалки и се уверете, че батерията на двете е над 20%",
// OTA升级模块 - 弹窗与对话框 // OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': 'New version @version found', 'otaNewVersionFoundWithVersion': 'Намерена е нова версия @version',
'otaConfirmUpdateNow': 'Да се актуализира ли сега?', 'otaConfirmUpdateNow': 'Да се актуализира ли сега?',
'otaUpdate': 'Актуализиране', 'otaUpdate': 'Актуализиране',
'otaUpgradeSuccess': 'Успешна актуализация', 'otaUpgradeSuccess': 'Успешна актуализация',

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

@ -184,10 +184,10 @@ const Map<String, String> csCZ = {
'bleDisconnected': 'Odpojeno', 'bleDisconnected': 'Odpojeno',
'bleDeviceDisconnected': 'Zařízení odpojeno', 'bleDeviceDisconnected': 'Zařízení odpojeno',
'bleDisconnectFailedWithError': 'Odpojení selhalo: @error', 'bleDisconnectFailedWithError': 'Odpojení selhalo: @error',
'signalStrong': 'Strong', 'signalStrong': 'Silný',
'signalMedium': 'Medium', 'signalMedium': 'Střední',
'signalWeak': 'Weak', 'signalWeak': 'Slabý',
'signalVeryWeak': 'Very Weak', 'signalVeryWeak': 'Velmi slabý',
// 发现页 // 发现页
"searchAi": "Hledat AI funkce...", "searchAi": "Hledat AI funkce...",
@ -555,17 +555,17 @@ const Map<String, String> csCZ = {
'nameSpeaker': 'Pojmenovat mluvčího', 'nameSpeaker': 'Pojmenovat mluvčího',
// Meeting模块 - 转写与总结 // Meeting模块 - 转写与总结
'reSummarize': 'Re-summarize', 'reSummarize': 'Znovu shrnout',
'dateAndTime': 'Date & Time', 'dateAndTime': 'Datum a čas',
'location': 'Location', 'location': 'Místo',
'attendees': 'Attendees', 'attendees': 'Účastníci',
'inputLocation': 'Enter Location', 'inputLocation': 'Zadejte místo',
'inputAttendees': 'Enter Attendees', 'inputAttendees': 'Zadejte účastníky',
// Meeting模块 - 模版与生成 // Meeting模块 - 模版与生成
'selectSummaryTemplate': 'Select Summary Template', 'selectSummaryTemplate': 'Vyberte šablonu shrnutí',
'useThisTemplate': 'Use This Template', 'useThisTemplate': 'Použít tuto šablonu',
'lastUsed': 'Last Used', 'lastUsed': 'Naposledy použito',
'create': 'Vytvořit', 'create': 'Vytvořit',
'templateDetails': 'Podrobnosti šablony', 'templateDetails': 'Podrobnosti šablony',
'tag': 'Štítek', 'tag': 'Štítek',
@ -582,69 +582,69 @@ const Map<String, String> csCZ = {
'inputDescHint': 'Zadejte prosím popis', 'inputDescHint': 'Zadejte prosím popis',
'custom': 'Vlastní', 'custom': 'Vlastní',
'pleaseEnter': 'Prosím zadejte', 'pleaseEnter': 'Prosím zadejte',
'viewAll': 'View All', 'viewAll': 'Zobrazit vše',
'recordingLanguage': 'Jazyk nahrávání', 'recordingLanguage': 'Jazyk nahrávání',
'chineseSimplified': 'Chinese Mandarin (Simplified)', 'chineseSimplified': 'Čínština – mandarínština (zjednodušená)',
'meetingGenerateNow': 'Generate Now', 'meetingGenerateNow': 'Generovat nyní',
'keyEventsAnalyzed': 'Analyzed {count} key events.', 'keyEventsAnalyzed': 'Analyzováno {count} klíčových událostí.',
'aiAnalysisDesc': 'aiAnalysisDesc':
'AI analýza identifikuje klíčové události v nahrávkách a umožňuje vám vybrat důležité události pro generování pomocí AI.', 'AI analýza identifikuje klíčové události v nahrávkách a umožňuje vám vybrat důležité události pro generování pomocí AI.',
// Meeting模块 - 文件操作 // Meeting模块 - 文件操作
'importing': 'Importing...', 'importing': 'Importování...',
'batchImporting': 'Batch importing...', 'batchImporting': 'Hromadné importování...',
'importingLocalRecordings': 'Importování místních nahrávek...', 'importingLocalRecordings': 'Importování místních nahrávek...',
'importFailed': 'Import souboru selhal: {filePath}, chyba: {error}', 'importFailed': 'Import souboru selhal: {filePath}, chyba: {error}',
'importSuccess': 'Úspěšně importováno {count} místních nahrávek', 'importSuccess': 'Úspěšně importováno {count} místních nahrávek',
'importError': 'Import selhal: {error}', 'importError': 'Import selhal: {error}',
'pleaseSelectAudioFile': 'Vyberte prosím zvukový soubor', 'pleaseSelectAudioFile': 'Vyberte prosím zvukový soubor',
'shareAudio': 'Share Meeting Audio', 'shareAudio': 'Sdílet zvuk schůzky',
'shareComplete': 'Share complete!', 'shareComplete': 'Sdílení dokončeno!',
'shareFailed': 'Sdílení selhalo: {error}', 'shareFailed': 'Sdílení selhalo: {error}',
'fileProcessingFailed': 'fileProcessingFailed':
'Zpracování souboru selhalo: {filePath}, chyba: {error}', 'Zpracování souboru selhalo: {filePath}, chyba: {error}',
// Meeting模块 - 思维导图 // Meeting模块 - 思维导图
'saveMindMap': 'Uložit myšlenkovou mapu', 'saveMindMap': 'Uložit myšlenkovou mapu',
'shareMindMap': 'Share Mind Map', 'shareMindMap': 'Sdílet myšlenkovou mapu',
'shareSuccess': 'Sdílení úspěšné', 'shareSuccess': 'Sdílení úspěšné',
// Meeting模块 - AI问答 // Meeting模块 - AI问答
'askAI': 'Ask AI ...', 'askAI': 'Zeptat se AI ...',
'askAIPrompt': 'What can I help you with today?', 'askAIPrompt': 'S čím vám dnes mohu pomoci?',
'continueAsk': 'Continue Asking', 'continueAsk': 'Pokračovat v dotazování',
'todoList': 'To-Do List', 'todoList': 'Seznam úkolů',
'extractConclusion': 'Extract Conclusion', 'extractConclusion': 'Extrahovat závěr',
'generateKeyIndicators': 'Generate Key Indicators', 'generateKeyIndicators': 'Generovat klíčové ukazatele',
// Meeting模块 - 分享与导出 // Meeting模块 - 分享与导出
'shareLink': 'Share Link', 'shareLink': 'Sdílet odkaz',
'copyTranscript': 'Copy Transcript', 'copyTranscript': 'Kopírovat přepis',
'copySummary': 'Copy Summary', 'copySummary': 'Kopírovat shrnutí',
'exportAudio': 'Export Audio', 'exportAudio': 'Exportovat zvuk',
'exportTranscript': 'Export Transcript', 'exportTranscript': 'Exportovat přepis',
'shareMeetingAudio': 'Share Meeting Audio', 'shareMeetingAudio': 'Sdílet zvuk schůzky',
'exportSummary': 'Export Summary', 'exportSummary': 'Exportovat shrnutí',
'exportAs': 'Export As', 'exportAs': 'Exportovat jako',
'exportingPDF': 'Exporting PDF...', 'exportingPDF': 'Exportování PDF...',
'export': 'Exportovat', 'export': 'Exportovat',
// Meeting模块 - 发言者 // Meeting模块 - 发言者
'applyToAllParagraphs': 'Použít na všechny odstavce tohoto mluvčího', 'applyToAllParagraphs': 'Použít na všechny odstavce tohoto mluvčího',
'summaryWillBeUpdatedAutomatically': 'summaryWillBeUpdatedAutomatically':
'Souhrn se bude automaticky aktualizovat podle šablony', 'Souhrn se bude automaticky aktualizovat podle šablony',
'nameCurrentSpeaker': 'Name Current Speaker', 'nameCurrentSpeaker': 'Pojmenovat aktuálního mluvčího',
'recentlyUsedNames': 'Recently Used Names', 'recentlyUsedNames': 'Nedávno použitá jména',
'applyToCurrentParagraph': 'Apply to Current Paragraph', 'applyToCurrentParagraph': 'Použít na aktuální odstavec',
'totalTime': 'Total Time', 'totalTime': 'Celkový čas',
'summarySpeakerWillBeUpdatedAutomatically': 'summarySpeakerWillBeUpdatedAutomatically':
'Summary speakers will be updated automatically', 'Mluvčí v shrnutí budou automaticky aktualizováni',
// Meeting模块 - 云端同步 // Meeting模块 - 云端同步
'syncToCloud': 'Sync to Cloud', 'syncToCloud': 'Synchronizovat do cloudu',
'syncToCloudTip': 'syncToCloudTip':
'Automaticky synchronizujte nahrávky do cloudu. Nahrávky můžete přehrávat, spravovat a sdílet prostřednictvím libovolné aplikace VOITRANS nebo VOITRANS Web (web.voitrans.com).', 'Automaticky synchronizujte nahrávky do cloudu. Nahrávky můžete přehrávat, spravovat a sdílet prostřednictvím libovolné aplikace VOITRANS nebo VOITRANS Web (web.voitrans.com).',
'syncToVoitransApp': 'Sync VOITRANS APP', 'syncToVoitransApp': 'Synchronizovat VOITRANS APP',
'transcriptionRecord': 'Záznam přepisu', 'transcriptionRecord': 'Záznam přepisu',
// Meeting模块 - 我的页面 // Meeting模块 - 我的页面
@ -702,42 +702,42 @@ const Map<String, String> csCZ = {
'Snadno importujte zvukové soubory z místních nebo aplikací třetích stran, jako jsou hlasové poznámky, Google Drive atd.', 'Snadno importujte zvukové soubory z místních nebo aplikací třetích stran, jako jsou hlasové poznámky, Google Drive atd.',
'multipleExportFormatsDesc': 'multipleExportFormatsDesc':
'Exportujte své zvukové nahrávky, text přepisu a shrnutí v různých formátech (TXT, PDF, JPEG), aby vyhovovaly vašim potřebám.', 'Exportujte své zvukové nahrávky, text přepisu a shrnutí v různých formátech (TXT, PDF, JPEG), aby vyhovovaly vašim potřebám.',
'upgradeMembership': 'Upgrade Your Membership', 'upgradeMembership': 'Upgradovat členství',
'yearlySubscription': 'Yearly Subscription', 'yearlySubscription': 'Roční předplatné',
'monthlySubscription': 'Monthly Subscription', 'monthlySubscription': 'Měsíční předplatné',
'proMonthly': 'Pro ¥60/month', 'proMonthly': 'Pro ¥60/měsíc',
'proMonthlyDesc': 'proMonthlyDesc':
'7-day free trial, then ¥800/year. Cancel anytime before trial ends.', '7denní zkušební verze zdarma, poté ¥800/rok. Zrušte kdykoli před koncem zkušební doby.',
'sevenDayTrial': '7-day Free Trial', 'sevenDayTrial': '7denní zkušební verze zdarma',
'unlimitedMonthly': 'Unlimited ¥120/month', 'unlimitedMonthly': 'Neomezené ¥120/měsíc',
'unlimitedMonthlyDesc': 'unlimitedMonthlyDesc':
'7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', '7denní zkušební verze zdarma, poté ¥1600/rok. Zrušte kdykoli před koncem zkušební doby.',
'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'trialNote': '*7 dní zdarma, poté roční poplatek, zrušte kdykoli.',
'proPrice': 'Pro ¥120', 'proPrice': 'Pro ¥120',
'proMonthlyPrice': '¥120/month', 'proMonthlyPrice': '¥120/měsíc',
'subscribe': 'Subscribe', 'subscribe': 'Přihlásit k odběru',
'unlimitedPrice': 'Unlimited ¥198', 'unlimitedPrice': 'Neomezené ¥198',
'unlimitedMonthlyPrice': '¥198/month', 'unlimitedMonthlyPrice': '¥198/měsíc',
'upgradeNote': 'upgradeNote':
'*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', '*Po upgradu předplatného budou zbývající dny původního předplatného automaticky vypočítány a vráceny na váš platební účet',
'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'buyMoreTranscriptionTime': 'Koupit více času přepisu',
'sixThousandMinutes': '6,000 minutes', 'sixThousandMinutes': '6 000 minut',
'threeThousandMinutes': '3,000 minutes', 'threeThousandMinutes': '3 000 minut',
'sixHundredMinutes': '600 minutes', 'sixHundredMinutes': '600 minut',
'oneHundredTwentyMinutes': '120 minutes', 'oneHundredTwentyMinutes': '120 minut',
'validityPeriod': '*Validity Period: ', 'validityPeriod': '*Doba platnosti: ',
'validityNote': 'validityNote':
'Activated immediately after purchase, valid for 2 years after activation.', 'Aktivováno ihned po zakoupení, platné 2 roky po aktivaci.',
'purchase': 'Purchase', 'purchase': 'Zakoupit',
// Meeting模块 - 录音语言 // Meeting模块 - 录音语言
'recordLanguage': 'Jazyk nahrávání', 'recordLanguage': 'Jazyk nahrávání',
'cantonese': 'Cantonese', 'cantonese': 'Kantonština',
'sichuan': 'Sichuan Dialect', 'sichuan': 'Sečuánské nářečí',
'shanghai': 'Shanghai Dialect', 'shanghai': 'Šanghajské nářečí',
// Meeting模块 - 错误提示 // Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Unknown Language', 'meetingUnknownLanguage': 'Neznámý jazyk',
'analysisFailed': 'Analýza se nezdařila, zkuste to prosím později', 'analysisFailed': 'Analýza se nezdařila, zkuste to prosím později',
'transcriptionFailed': 'Přepis se nezdařil, zkuste to prosím později', 'transcriptionFailed': 'Přepis se nezdařil, zkuste to prosím později',
'summaryFailed': 'Nepodařilo se vytvořit shrnutí, zkuste to prosím později', 'summaryFailed': 'Nepodařilo se vytvořit shrnutí, zkuste to prosím později',
@ -912,11 +912,11 @@ const Map<String, String> csCZ = {
'generatedByAi': 'Generováno AI', 'generatedByAi': 'Generováno AI',
// Agent模块 - 工具调用 // Agent模块 - 工具调用
'toolCall': 'Tool Call', 'toolCall': 'Volání nástroje',
'noResult': 'No Result', 'noResult': 'Žádný výsledek',
'noToolCallContentToCopy': 'No tool call content to copy', 'noToolCallContentToCopy': 'Žádný obsah volání nástroje ke kopírování',
'toolCallDetails': 'Tool Call Details:', 'toolCallDetails': 'Podrobnosti volání nástroje:',
'toolCallContentCopied': 'Tool call content copied to clipboard', 'toolCallContentCopied': 'Obsah volání nástroje zkopírován do schránky',
// Agent模块 - 音乐卡片 // Agent模块 - 音乐卡片
'recommendedMusic': 'Zde jsou některé doporučené hudby:', 'recommendedMusic': 'Zde jsou některé doporučené hudby:',
@ -939,26 +939,26 @@ const Map<String, String> csCZ = {
"tsransit": "Veřejná doprava", "tsransit": "Veřejná doprava",
// Agent模块 - 导航选择 // Agent模块 - 导航选择
'selectNavigationApp': 'Select Navigation App', 'selectNavigationApp': 'Vybrat navigační aplikaci',
'amapMap': 'Amap', 'amapMap': 'Amap',
'useAmapNavigation': 'Navigate with Amap', 'useAmapNavigation': 'Navigovat pomocí Amap',
'baiduMap': 'Baidu Maps', 'baiduMap': 'Baidu Maps',
'useBaiduNavigation': 'Navigate with Baidu Maps', 'useBaiduNavigation': 'Navigovat pomocí Baidu Maps',
'googleMap': 'Google Maps', 'googleMap': 'Google Maps',
'useGoogleNavigation': 'Navigate with Google Maps', 'useGoogleNavigation': 'Navigovat pomocí Google Maps',
'appleMap': 'Apple Maps', 'appleMap': 'Apple Maps',
'useAppleNavigation': 'Navigate with Apple Maps', 'useAppleNavigation': 'Navigovat pomocí Apple Maps',
'builtInNavigation': 'Built-in Navigation', 'builtInNavigation': 'Vestavěná navigace',
'useBuiltInNavigation': 'Navigate with built-in map', 'useBuiltInNavigation': 'Navigovat pomocí vestavěné mapy',
'navigationStartFailed': 'Spuštění navigace selhalo', 'navigationStartFailed': 'Spuštění navigace selhalo',
'cannotPlayMusicListRetryLater': 'cannotPlayMusicListRetryLater':
'Nelze přehrát seznam hudby, zkuste to prosím později', 'Nelze přehrát seznam hudby, zkuste to prosím později',
'cannotPlaySong': 'Cannot play song', 'cannotPlaySong': 'Nelze přehrát píseň',
'openMapError': 'Chyba při otevírání mapy', 'openMapError': 'Chyba při otevírání mapy',
'pleaseInstallAmapApp': 'Nejprve prosím nainstalujte aplikaci Amap', 'pleaseInstallAmapApp': 'Nejprve prosím nainstalujte aplikaci Amap',
'pleaseInstallBaiduMapApp': 'Nejprve prosím nainstalujte aplikaci Baidu Maps', 'pleaseInstallBaiduMapApp': 'Nejprve prosím nainstalujte aplikaci Baidu Maps',
'appleMapStartFailed': 'Spuštění Apple Maps selhalo', 'appleMapStartFailed': 'Spuštění Apple Maps selhalo',
'appleMapUnavailable': 'Apple Maps unavailable', 'appleMapUnavailable': 'Apple Maps není k dispozici',
'openAppleMapError': 'Chyba při otevírání Apple Maps', 'openAppleMapError': 'Chyba při otevírání Apple Maps',
// Agent模块 - 天气卡片 // Agent模块 - 天气卡片
@ -1042,7 +1042,7 @@ const Map<String, String> csCZ = {
'Pro nahrávání je vyžadováno oprávnění k mikrofonu', 'Pro nahrávání je vyžadováno oprávnění k mikrofonu',
'deleteTranslationRecordError': 'Chyba při mazání záznamu překladu: @error', 'deleteTranslationRecordError': 'Chyba při mazání záznamu překladu: @error',
"translationFailed": "Překlad selhal", "translationFailed": "Překlad selhal",
"translating": "Translating", "translating": "Překládání",
"translate": "Přeložit", "translate": "Přeložit",
"pleaseInputText": "Zadejte prosím text", "pleaseInputText": "Zadejte prosím text",
"inputTextToTranslate": "Zadejte text k překladu", "inputTextToTranslate": "Zadejte text k překladu",
@ -1162,8 +1162,8 @@ const Map<String, String> csCZ = {
'deleteAccount': 'Smazat účet', 'deleteAccount': 'Smazat účet',
'deleteAccountTips': 'deleteAccountTips':
'Opravdu chcete trvale smazat svůj účet? Tuto operaci nelze vrátit zpět', 'Opravdu chcete trvale smazat svůj účet? Tuto operaci nelze vrátit zpět',
'clean': 'Clear Cache', 'clean': 'Vymazat mezipaměť',
'cleanTips': 'Are you sure you want to clear personal cache?', 'cleanTips': 'Opravdu chcete vymazat osobní mezipaměť?',
'networkConnectionFailed': 'networkConnectionFailed':
'Připojení k síti selhalo, zkontrolujte prosím nastavení sítě a zkuste to znovu', 'Připojení k síti selhalo, zkontrolujte prosím nastavení sítě a zkuste to znovu',
'serverTemporarilyUnavailable': 'serverTemporarilyUnavailable':
@ -1203,7 +1203,7 @@ const Map<String, String> csCZ = {
'AccountService byl inicializován', // AccountService 已初始化 'AccountService byl inicializován', // AccountService 已初始化
// 权限模块 // 权限模块
'meetingStoragePermission': 'Storage', 'meetingStoragePermission': 'Úložiště',
'meetingStoragePermissionExplanation': 'meetingStoragePermissionExplanation':
'Potřebujeme přístup k oprávnění úložiště, abyste mohli vybírat a nahrávat zvukové soubory.', 'Potřebujeme přístup k oprávnění úložiště, abyste mohli vybírat a nahrávat zvukové soubory.',
'meetingStoragePermissionPermanentDenial': 'meetingStoragePermissionPermanentDenial':
@ -1473,14 +1473,14 @@ const Map<String, String> csCZ = {
"Vyjměte obě sluchátka a ujistěte se, že baterie obou je nad 20%", "Vyjměte obě sluchátka a ujistěte se, že baterie obou je nad 20%",
// OTA升级模块 - 弹窗与对话框 // OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': 'New version @version found', 'otaNewVersionFoundWithVersion': 'Nalezena nová verze @version',
'otaConfirmUpdateNow': 'Update now?', 'otaConfirmUpdateNow': 'Aktualizovat nyní?',
'otaUpdate': 'Update', 'otaUpdate': 'Aktualizovat',
'otaUpgradeSuccess': 'Aktualizace úspěšná', 'otaUpgradeSuccess': 'Aktualizace úspěšná',
'otaUpgradeCompleteRepair': '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í?', 'Aktualizace firmwaru dokončena!\n\nPro správné fungování je třeba zařízení znovu spárovat. Přejít na stránku párování?',
'otaPairLater': 'Pair Later', 'otaPairLater': 'Spárovat později',
'otaPairNow': 'Pair Now', 'otaPairNow': 'Spárovat nyní',
'okConfirm': 'OK', 'okConfirm': 'OK',
// OTA升级模块 - 设备检查 // OTA升级模块 - 设备检查
@ -1496,8 +1496,8 @@ const Map<String, String> csCZ = {
'Nelze získat informace o zařízení, zkontrolujte prosím připojení zařízení', 'Nelze získat informace o zařízení, zkontrolujte prosím připojení zařízení',
'otaCannotGetProductInfoWithName': 'otaCannotGetProductInfoWithName':
'Nelze získat informace o produktu, název zařízení: @deviceName', 'Nelze získat informace o produktu, název zařízení: @deviceName',
'otaCannotGetBatteryInfo': 'Cannot get valid battery info', 'otaCannotGetBatteryInfo': 'Nelze získat platné informace o baterii',
'otaLowBattery': 'Low Battery', 'otaLowBattery': 'Nízká baterie',
'otaSingleBatteryLow': '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', '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': 'otaDoubleBatteryLow':
@ -1506,7 +1506,7 @@ const Map<String, String> csCZ = {
// OTA升级模块 - 升级状态 // OTA升级模块 - 升级状态
'otaDefaultUpdateDesc': 'otaDefaultUpdateDesc':
'This update includes performance optimizations and bug fixes.', 'Tato aktualizace zahrnuje optimalizace výkonu a opravy chyb.',
'otaGetLatestVersionFailed': 'otaGetLatestVersionFailed':
'Nepodařilo se získat informace o nejnovější verzi', 'Nepodařilo se získat informace o nejnovější verzi',
'otaGetVersionInfoFailed': 'Nepodařilo se získat informace o verzi', 'otaGetVersionInfoFailed': 'Nepodařilo se získat informace o verzi',
@ -1516,8 +1516,8 @@ const Map<String, String> csCZ = {
'otaDownloadFailed': 'Stahování selhalo', 'otaDownloadFailed': 'Stahování selhalo',
'otaPreparingConnection': 'Příprava připojení zařízení...', 'otaPreparingConnection': 'Příprava připojení zařízení...',
'otaConnectingDevice': 'Připojování k zařízení...', 'otaConnectingDevice': 'Připojování k zařízení...',
'otaUpgradeStarted': 'OTA upgrade started...', 'otaUpgradeStarted': 'OTA aktualizace zahájena...',
'otaUpgradeProgressWithPercent': 'Upgrade progress: @percent%', 'otaUpgradeProgressWithPercent': 'Průběh aktualizace: @percent %',
'otaUpgradeSuccessComplete': 'Aktualizace byla úspěšně dokončena', 'otaUpgradeSuccessComplete': 'Aktualizace byla úspěšně dokončena',
'otaUpgradeFailedWithCode': 'Aktualizace selhala, kód chyby: @code', 'otaUpgradeFailedWithCode': 'Aktualizace selhala, kód chyby: @code',
'otaUpgradeFailedTitle': 'Aktualizace selhala', 'otaUpgradeFailedTitle': 'Aktualizace selhala',
@ -1681,15 +1681,15 @@ const Map<String, String> csCZ = {
"东帝汶": "Východní Timor", "东帝汶": "Východní Timor",
"斐济": "Fidži", "斐济": "Fidži",
"所罗门群岛": "Šalamounovy ostrovy", "所罗门群岛": "Šalamounovy ostrovy",
"刚果民主共和国": "Democratic Republic of the Congo", "刚果民主共和国": "Demokratická republika Kongo",
"安哥拉": "Angola", "安哥拉": "Angola",
"苏丹": "Sudan", "苏丹": "Súdán",
"马尔代夫": "Maldives", "马尔代夫": "Maledivy",
"不丹": "Bhutan", "不丹": "Bhútán",
"摩纳哥": "Monaco", "摩纳哥": "Monako",
"圣马力诺": "San Marino", "圣马力诺": "San Marino",
"牙买加": "Jamaica", "牙买加": "Jamajka",
"巴哈马": "Bahamas", "巴哈马": "Bahamy",
"巴布亚新几内亚": "Papua New Guinea", "巴布亚新几内亚": "Papua Nová Guinea",
"萨摩亚": "Samoa", "萨摩亚": "Samoa",
}; };

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

@ -49,9 +49,9 @@ const Map<String, String> daDK = {
"russian": "Russisk", "russian": "Russisk",
"vietnamese": "Vietnamesisk", "vietnamese": "Vietnamesisk",
"italian": "Italiensk", "italian": "Italiensk",
"hindi": "Hindi", "hindi": 'Hindi',
"indonesian": "Indonesisk", "indonesian": "Indonesisk",
"thai": "Thai", "thai": 'Thai',
"malay": "Malaysisk", "malay": "Malaysisk",
"turkish": "Tyrkisk", "turkish": "Tyrkisk",
"polish": "Polsk", "polish": "Polsk",
@ -96,7 +96,7 @@ const Map<String, String> daDK = {
"pleaseEnterContactInfo": "Indtast venligst telefonnummer eller e-mail", "pleaseEnterContactInfo": "Indtast venligst telefonnummer eller e-mail",
"invalidEmailFormat": "Ugyldigt e-mail format", "invalidEmailFormat": "Ugyldigt e-mail format",
"invalidPhoneFormat": "Ugyldigt telefonnummer format", "invalidPhoneFormat": "Ugyldigt telefonnummer format",
"tip": "Tip", "tip": 'Tip',
"pleaseEnterCompleteCode": "Indtast venligst den komplette verifikationskode", "pleaseEnterCompleteCode": "Indtast venligst den komplette verifikationskode",
"loginFailed": "Login mislykkedes, prøv venligst igen", "loginFailed": "Login mislykkedes, prøv venligst igen",
'pleaseAcceptPrivacyPolicy': 'pleaseAcceptPrivacyPolicy':
@ -119,7 +119,7 @@ const Map<String, String> daDK = {
"reconnect": "Tilslut igen", "reconnect": "Tilslut igen",
"connectingDevice": "Tilslutter enhed...", "connectingDevice": "Tilslutter enhed...",
"connectedTo": "Tilsluttet til", "connectedTo": "Tilsluttet til",
"signal": "Signal", "signal": 'Signal',
"deviceId": "Enheds-ID", "deviceId": "Enheds-ID",
"firmwareVersion": "Firmware version", "firmwareVersion": "Firmware version",
"disconnectedDevice": "Ingen tilsluttet enhed, klik på knappen nedenfor", "disconnectedDevice": "Ingen tilsluttet enhed, klik på knappen nedenfor",
@ -216,7 +216,7 @@ const Map<String, String> daDK = {
"scene": "Scenarier", "scene": "Scenarier",
// 用量统计模块 // 用量统计模块
"aiChat": "AI Chat", "aiChat": 'AI-chat',
"translationStats": "Oversættelsesstatistik", "translationStats": "Oversættelsesstatistik",
"meetingStats": "Mødestatistik", "meetingStats": "Mødestatistik",
"today": "I dag", "today": "I dag",
@ -414,9 +414,9 @@ const Map<String, String> daDK = {
'Faktiske fordele afhænger af pakkedetaljerne og kan ændre sig med versioner.', 'Faktiske fordele afhænger af pakkedetaljerne og kan ændre sig med versioner.',
// 商品模块 - 商品名称与描述 // 商品模块 - 商品名称与描述
'ai_001_name': 'AI Basic 100', 'ai_001_name': 'AI Basis 100',
'ai_002_name': 'AI Basic 500', 'ai_002_name': 'AI Basis 500',
'ai_003_name': 'AI Basic 1000', 'ai_003_name': 'AI Basis 1000',
'meet_001_name': 'Møde Basic 100', 'meet_001_name': 'Møde Basic 100',
'meet_002_name': 'Møde Basic 500', 'meet_002_name': 'Møde Basic 500',
'meet_003_name': 'Møde Basic 1000', 'meet_003_name': 'Møde Basic 1000',
@ -489,7 +489,7 @@ const Map<String, String> daDK = {
'aiSummary': 'AI sammendrag', 'aiSummary': 'AI sammendrag',
'meetingTranscript': 'Mødeudskrift', 'meetingTranscript': 'Mødeudskrift',
'files': 'Filer', 'files': 'Filer',
'mine': 'Mine', 'mine': 'Min',
'connect': 'Tilslut', 'connect': 'Tilslut',
'allFiles': 'Alle filer', 'allFiles': 'Alle filer',
'searchInAllFiles': 'Søg i alle filer', 'searchInAllFiles': 'Søg i alle filer',
@ -570,7 +570,7 @@ const Map<String, String> daDK = {
'lastUsed': 'Sidst brugt', 'lastUsed': 'Sidst brugt',
'create': 'Opret', 'create': 'Opret',
'templateDetails': 'Skabelondetaljer', 'templateDetails': 'Skabelondetaljer',
'tag': 'Tag', 'tag': 'Mærke',
'description': 'Beskrivelse', 'description': 'Beskrivelse',
'template': 'Skabelon', 'template': 'Skabelon',
'deleteTemplate': 'Slet skabelon', 'deleteTemplate': 'Slet skabelon',
@ -779,7 +779,7 @@ const Map<String, String> daDK = {
"permissionManagementInfo": "permissionManagementInfo":
"Administrer app tilladelsesindstillinger", // 管理应用权限设置 "Administrer app tilladelsesindstillinger", // 管理应用权限设置
"aboutApplication": "Om app", "aboutApplication": "Om app",
"versions": "Version", "versions": 'Version',
"checkUpdates": "Tjek for opdateringer", "checkUpdates": "Tjek for opdateringer",
"selectLanguage": "Vælg sprog", "selectLanguage": "Vælg sprog",
"voiceService": "Stemmetjeneste", "voiceService": "Stemmetjeneste",
@ -814,24 +814,24 @@ const Map<String, String> daDK = {
// 设备管理模块 // 设备管理模块
"deviceTypeUnknown": "Ukendt enhed", "deviceTypeUnknown": "Ukendt enhed",
"deviceTypeClassicBluetoothHeadset": "Classic Bluetooth Headset", "deviceTypeClassicBluetoothHeadset": "Klassisk Bluetooth-headset",
"deviceTypeBleBluetoothHeadset": "BLE Bluetooth Headset", "deviceTypeBleBluetoothHeadset": "BLE Bluetooth-headset",
"deviceTypeSmartVoiceRecorder": "Smart stemmeoptager", "deviceTypeSmartVoiceRecorder": "Smart stemmeoptager",
"deviceTypeSmartEye": "Smart Glasses", "deviceTypeSmartEye": "Smarte briller",
"unbind": "Afbind", "unbind": "Afbind",
"noDevicesBound": "Ingen enheder bundet endnu", "noDevicesBound": "Ingen enheder bundet endnu",
"pleaseBindDeviceFirst": "Bind venligst en enhed først for at administrere", "pleaseBindDeviceFirst": "Bind venligst en enhed først for at administrere",
"noMacAddress": "No MAC Address", "noMacAddress": "Ingen MAC-adresse",
"licenseCode": "License Code", "licenseCode": "Licensnøgle",
"confirmUnbind": "Confirm Unbind", "confirmUnbind": "Bekræft afbinding",
"confirmUnbindMessage": "confirmUnbindMessage":
"Er du sikker på, at du vil afbinde enheden \"{deviceName}\"?", "Er du sikker på, at du vil afbinde enheden \"{deviceName}\"?",
"confirmUnbindAction": "Confirm Unbind", "confirmUnbindAction": "Bekræft afbinding",
// Agent模块 - 主界面 // Agent模块 - 主界面
"Lily": "Lily", "Lily": "Lily",
"clearChatHistory": "Ryd chathistorik", "clearChatHistory": "Ryd chathistorik",
"online": "Online", "online": 'Online',
"ttsSpeed": "Talefart", "ttsSpeed": "Talefart",
"ttsSpeedDefaultHint": "Standard +25%", "ttsSpeedDefaultHint": "Standard +25%",
"inputMessage": "Indtast besked...", "inputMessage": "Indtast besked...",
@ -1029,11 +1029,11 @@ const Map<String, String> daDK = {
"phoneUser": "Telefon bruger", "phoneUser": "Telefon bruger",
"selectSourceLanguage": "Vælg kildesprog", "selectSourceLanguage": "Vælg kildesprog",
"selectTargetLanguage": "Vælg målsprog", "selectTargetLanguage": "Vælg målsprog",
"me": "Me", "me": "Mig",
"counterPart": "Counterpart", "counterPart": "Modpart",
"bluetoothCallStateError": "bluetoothCallStateError":
"Sørg venligst for, at Bluetooth-headsettet er forbundet til telefonen og i opkaldstilstand", "Sørg venligst for, at Bluetooth-headsettet er forbundet til telefonen og i opkaldstilstand",
"autoDetect": "Auto Detect", // 自动检测 "autoDetect": "Automatisk registrering", // 自动检测
// 翻译模块 - 文本翻译 // 翻译模块 - 文本翻译
"languageDetectionFailed": "Sprogregistrering mislykkedes", "languageDetectionFailed": "Sprogregistrering mislykkedes",
@ -1051,12 +1051,12 @@ const Map<String, String> daDK = {
"translate": "Oversæt", "translate": "Oversæt",
"pleaseInputText": "Indtast venligst tekst", "pleaseInputText": "Indtast venligst tekst",
"inputTextToTranslate": "Indtast venligst teksten, der skal oversættes", "inputTextToTranslate": "Indtast venligst teksten, der skal oversættes",
"textTooLong": "Text too long, max 5000 characters", "textTooLong": "Teksten er for lang, maks. 5000 tegn",
// 翻译模块 - 历史记录 // 翻译模块 - 历史记录
"noTranslationHistory": "Ingen oversættelseshistorik", "noTranslationHistory": "Ingen oversættelseshistorik",
"historyRecords": "Historik", "historyRecords": "Historik",
"clearResults": "Clear Results", "clearResults": "Ryd resultater",
"clearHistory": "Ryd historik", "clearHistory": "Ryd historik",
"clearHistoryConfirm": "clearHistoryConfirm":
"Er du sikker på, at du vil rydde hele oversættelseshistorikken? Denne handling kan ikke fortrydes.", "Er du sikker på, at du vil rydde hele oversættelseshistorikken? Denne handling kan ikke fortrydes.",
@ -1066,40 +1066,40 @@ const Map<String, String> daDK = {
"Er du sikker på, at du vil slette alle oversættelsesoptegnelser for denne session? Denne handling kan ikke fortrydes.", "Er du sikker på, at du vil slette alle oversættelsesoptegnelser for denne session? Denne handling kan ikke fortrydes.",
// 翻译模块 - 图片翻译 // 翻译模块 - 图片翻译
"selectImageSource": "Select Image Source", "selectImageSource": "Vælg billedkilde",
"imagePreview": "Image Preview", "imagePreview": "Billedforhåndsvisning",
"translationResult": "Oversættelsesresultat", "translationResult": "Oversættelsesresultat",
"recognitionResult": "Recognition Result", "recognitionResult": "Genkendelseresultat",
"translatedImagePreview": "Forhåndsvisning af oversat billede", "translatedImagePreview": "Forhåndsvisning af oversat billede",
"translatedImageLoadFailed": "Kunne ikke indlæse oversat billede", "translatedImageLoadFailed": "Kunne ikke indlæse oversat billede",
"pleaseSelectImage": "Vælg venligst et billede", "pleaseSelectImage": "Vælg venligst et billede",
"imageLoadFailed": "Billedindlæsning mislykkedes", "imageLoadFailed": "Billedindlæsning mislykkedes",
"imageQuality": "Image Quality", "imageQuality": "Billedkvalitet",
"maxSize": "Max Size", "maxSize": "Maks. størrelse",
"close": "Close", "close": "Luk",
"setImageQuality": "Set Image Quality", "setImageQuality": "Indstil billedkvalitet",
"currentQuality": "Current quality: @value%", "currentQuality": "Nuværende kvalitet: @value%",
"setMaxSize": "Set Max Size", "setMaxSize": "Indstil maks. størrelse",
"currentMaxSize": "Current: @pxpx", "currentMaxSize": "Nuværende: @pxpx",
"waitingForAction": "Waiting for action", "waitingForAction": "Venter på handling",
"pleaseSelectImageToStart": "Vælg venligst et billede for at starte", "pleaseSelectImageToStart": "Vælg venligst et billede for at starte",
"chooseImage": "Choose Image", "chooseImage": "Vælg billede",
"openingCamera": "Opening camera...", "openingCamera": "Åbner kamera...",
"openingPhotoAlbum": "Opening photo album...", "openingPhotoAlbum": "Åbner fotoalbum...",
"cancelled": "Cancelled", "cancelled": "Annulleret",
"userCancelledSelection": "User cancelled selection", "userCancelledSelection": "Bruger annullerede valget",
"translatingImage": "Translating Image", "translatingImage": "Oversætter billede",
"callingImageTranslateService": "Kalder billedoversættelsestjeneste...", "callingImageTranslateService": "Kalder billedoversættelsestjeneste...",
"savingRecord": "Gemmer optegnelse", "savingRecord": "Gemmer optegnelse",
"savingTranslationResult": "Gemmer oversættelsesresultat...", "savingTranslationResult": "Gemmer oversættelsesresultat...",
"translationCompleted": "Oversættelse fuldført", "translationCompleted": "Oversættelse fuldført",
"allStepsCompleted": "All steps completed", "allStepsCompleted": "Alle trin fuldført",
"processingFailed": "Behandling mislykkedes", "processingFailed": "Behandling mislykkedes",
"imageProcessingOrTranslationFailed": "imageProcessingOrTranslationFailed":
"Billedbehandling eller oversættelse mislykkedes. Prøv venligst igen.\nFejl: {error}", "Billedbehandling eller oversættelse mislykkedes. Prøv venligst igen.\nFejl: {error}",
"imageTooLarge": "Image size exceeds 4MB limit", "imageTooLarge": "Billedstørrelse overstiger 4 MB-grænsen",
"imageTooLargeHint": "imageTooLargeHint":
"Image size exceeds 4MB. Reduce quality or dimensions and retry", "Billedstørrelse overstiger 4 MB. Reducer kvalitet eller dimensioner og prøv igen",
"emptyTranslationResult": "Billedoversættelses-API returnerede tomt resultat", "emptyTranslationResult": "Billedoversættelses-API returnerede tomt resultat",
"imageTranslationFailedTryLater": "imageTranslationFailedTryLater":
"Billedoversættelse mislykkedes. Netværksproblem eller hastighedsbegrænsning. Prøv venligst igen senere", "Billedoversættelse mislykkedes. Netværksproblem eller hastighedsbegrænsning. Prøv venligst igen senere",
@ -1110,11 +1110,11 @@ const Map<String, String> daDK = {
"photoAlbumPermissionRequired": "photoAlbumPermissionRequired":
"Fotoalbumtilladelse kræves for at vælge billeder", "Fotoalbumtilladelse kræves for at vælge billeder",
"translationDetails": "Oversættelsesdetaljer", "translationDetails": "Oversættelsesdetaljer",
"originalImage": "Original Image", "originalImage": "Originalt billede",
"sourceLanguage": "Source Language", "sourceLanguage": "Kildesprog",
"targetLanguage": "Target Language", "targetLanguage": "Målsprog",
"translationTime": "Oversættelsestid", "translationTime": "Oversættelsestid",
"shareInDevelopment": "Sharing feature under development", "shareInDevelopment": "Delingsfunktion er under udvikling",
// 翻译模块 - 录音文件 // 翻译模块 - 录音文件
"translateAudioFiles": "Oversæt lydfiler", "translateAudioFiles": "Oversæt lydfiler",
@ -1154,7 +1154,7 @@ const Map<String, String> daDK = {
// 个人资料模块 // 个人资料模块
"editProfile": "Rediger personlige oplysninger", "editProfile": "Rediger personlige oplysninger",
"avatar": "Avatar", "avatar": "Profilbillede",
"nickname": "Kaldenavn", "nickname": "Kaldenavn",
"save": "Gem", "save": "Gem",
"about": "Om", "about": "Om",
@ -1166,8 +1166,8 @@ const Map<String, String> daDK = {
'deleteAccount': 'Slet konto', 'deleteAccount': 'Slet konto',
'deleteAccountTips': 'deleteAccountTips':
'Er du sikker på, at du vil slette din konto permanent? Denne handling kan ikke fortrydes', 'Er du sikker på, at du vil slette din konto permanent? Denne handling kan ikke fortrydes',
'clean': 'Clear Cache', 'clean': 'Ryd cache',
'cleanTips': 'Are you sure you want to clear personal cache?', 'cleanTips': 'Er du sikker på, at du vil rydde din personlige cache?',
'networkConnectionFailed': 'networkConnectionFailed':
'Netværksforbindelse mislykkedes, tjek venligst netværksindstillinger og prøv igen', 'Netværksforbindelse mislykkedes, tjek venligst netværksindstillinger og prøv igen',
'serverTemporarilyUnavailable': 'serverTemporarilyUnavailable':
@ -1280,7 +1280,7 @@ const Map<String, String> daDK = {
'permanentDenialText': 'permanentDenialText':
'Du har permanent nægtet {permission} tilladelse, gå venligst til app-indstillinger for at aktivere det', 'Du har permanent nægtet {permission} tilladelse, gå venligst til app-indstillinger for at aktivere det',
'goToSettings': 'Gå til indstillinger', 'goToSettings': 'Gå til indstillinger',
'bluetoothScan': 'Bluetooth Scan', 'bluetoothScan': 'Bluetooth-scanning',
'bluetoothConnect': 'Bluetooth Forbindelse', 'bluetoothConnect': 'Bluetooth Forbindelse',
'bluetoothScanExplanation': 'bluetoothScanExplanation':
'Appen har brug for Bluetooth-scanningstilladelse til at scanne efter Bluetooth-enheder i nærheden.', 'Appen har brug for Bluetooth-scanningstilladelse til at scanne efter Bluetooth-enheder i nærheden.',
@ -1348,7 +1348,7 @@ const Map<String, String> daDK = {
// 配对模块 // 配对模块
"devicePairing": "Enhedsparring", "devicePairing": "Enhedsparring",
"connectYourDeepSoundHeadset": "Tilslut dine Voitrans øretelefoner", "connectYourDeepSoundHeadset": "Tilslut dine Voitrans øretelefoner",
"bind": "Bind", "bind": 'Tilknyt',
"authorizeBind": "Autoriser binding", "authorizeBind": "Autoriser binding",
"enterCode": "Indtast venligst kode", "enterCode": "Indtast venligst kode",
"autoInputCode": "Automatisk kodeinput", "autoInputCode": "Automatisk kodeinput",
@ -1559,25 +1559,25 @@ const Map<String, String> daDK = {
"克罗地亚语": "Kroatisk", "克罗地亚语": "Kroatisk",
"加泰隆语": "Catalansk", "加泰隆语": "Catalansk",
"阿拉伯语": "Arabisk", "阿拉伯语": "Arabisk",
"泰语": "Thai", "泰语": 'Thai',
"越南语": "Vietnamesisk", "越南语": "Vietnamesisk",
"印尼语": "Indonesisk", "印尼语": "Indonesisk",
"印地语": "Hindi", "印地语": 'Hindi',
"土耳其语": "Tyrkisk", "土耳其语": "Tyrkisk",
"马来语": "Malaysisk", "马来语": "Malaysisk",
"孟加拉语": "Bengali", "孟加拉语": 'Bengali',
"泰米尔语": "Tamil", "泰米尔语": 'Tamil',
"泰卢固语": "Telugu", "泰卢固语": 'Telugu',
"马拉提语": "Marathi", "马拉提语": 'Marathi',
"乌尔都语": "Urdu", "乌尔都语": 'Urdu',
"波斯语": "Persisk", "波斯语": "Persisk",
"斯瓦希里语": "Swahili", "斯瓦希里语": 'Swahili',
// 国家列表 // 国家列表
"邮箱": "E-mail", "邮箱": "E-mail",
"中国": "Kina", "中国": "Kina",
"美国": "USA", "美国": "USA",
"加拿大": "Canada", "加拿大": 'Canada',
"俄罗斯": "Rusland", "俄罗斯": "Rusland",
"英国": "Storbritannien", "英国": "Storbritannien",
"德国": "Tyskland", "德国": "Tyskland",
@ -1587,22 +1587,22 @@ const Map<String, String> daDK = {
"南非": "Sydafrika", "南非": "Sydafrika",
"沙特阿拉伯": "Saudi-Arabien", "沙特阿拉伯": "Saudi-Arabien",
"土耳其": "Tyrkiet", "土耳其": "Tyrkiet",
"日本": "Japan", "日本": 'Japan',
"韩国": "Sydkorea", "韩国": "Sydkorea",
"新加坡": "Singapore", "新加坡": 'Singapore',
"马来西亚": "Malaysia", "马来西亚": 'Malaysia',
"泰国": "Thailand", "泰国": 'Thailand',
"越南": "Vietnam", "越南": 'Vietnam',
"印度": "Indien", "印度": "Indien",
"巴基斯坦": "Pakistan", "巴基斯坦": 'Pakistan',
"菲律宾": "Filippinerne", "菲律宾": "Filippinerne",
"印度尼西亚": "Indonesien", "印度尼西亚": "Indonesien",
"阿联酋": "UAE", "阿联酋": "UAE",
"墨西哥": "Mexico", "墨西哥": "Mexico",
"巴西": "Brasilien", "巴西": "Brasilien",
"阿根廷": "Argentina", "阿根廷": 'Argentina',
"澳大利亚": "Australien", "澳大利亚": "Australien",
"新西兰": "New Zealand", "新西兰": 'New Zealand',
"中国香港": "Hong Kong", "中国香港": "Hong Kong",
"中国澳门": "Macao", "中国澳门": "Macao",
"中国台湾": "Taiwan", "中国台湾": "Taiwan",
@ -1618,77 +1618,77 @@ const Map<String, String> daDK = {
"瑞典": "Sverige", "瑞典": "Sverige",
"挪威": "Norge", "挪威": "Norge",
"波兰": "Polen", "波兰": "Polen",
"秘鲁": "Peru", "秘鲁": 'Peru',
"智利": "Chile", "智利": 'Chile',
"哥伦比亚": "Colombia", "哥伦比亚": 'Colombia',
"委内瑞拉": "Venezuela", "委内瑞拉": 'Venezuela',
"葡萄牙": "Portugal", "葡萄牙": 'Portugal',
"卢森堡": "Luxembourg", "卢森堡": 'Luxembourg',
"爱尔兰": "Irland", "爱尔兰": "Irland",
"冰岛": "Island", "冰岛": "Island",
"阿尔巴尼亚": "Albanien", "阿尔巴尼亚": "Albanien",
"马耳他": "Malta", "马耳他": 'Malta',
"塞浦路斯": "Cypern", "塞浦路斯": "Cypern",
"芬兰": "Finland", "芬兰": 'Finland',
"保加利亚": "Bulgarien", "保加利亚": "Bulgarien",
"立陶宛": "Litauen", "立陶宛": "Litauen",
"拉脱维亚": "Letland", "拉脱维亚": "Letland",
"爱沙尼亚": "Estland", "爱沙尼亚": "Estland",
"乌克兰": "Ukraine", "乌克兰": 'Ukraine',
"塞尔维亚": "Serbien", "塞尔维亚": "Serbien",
"克罗地亚": "Kroatien", "克罗地亚": "Kroatien",
"斯洛文尼亚": "Slovenien", "斯洛文尼亚": "Slovenien",
"捷克": "Tjekkiet", "捷克": "Tjekkiet",
"斯洛伐克": "Slovakiet", "斯洛伐克": "Slovakiet",
"危地马拉": "Guatemala", "危地马拉": 'Guatemala',
"萨尔瓦多": "El Salvador", "萨尔瓦多": 'El Salvador',
"洪都拉斯": "Honduras", "洪都拉斯": 'Honduras',
"尼加拉瓜": "Nicaragua", "尼加拉瓜": 'Nicaragua',
"哥斯达黎加": "Costa Rica", "哥斯达黎加": 'Costa Rica',
"巴拿马": "Panama", "巴拿马": 'Panama',
"海地": "Haiti", "海地": 'Haiti',
"玻利维亚": "Bolivia", "玻利维亚": 'Bolivia',
"厄瓜多尔": "Ecuador", "厄瓜多尔": 'Ecuador',
"巴拉圭": "Paraguay", "巴拉圭": 'Paraguay',
"乌拉圭": "Uruguay", "乌拉圭": 'Uruguay',
"摩洛哥": "Marokko", "摩洛哥": "Marokko",
"阿尔及利亚": "Algeriet", "阿尔及利亚": "Algeriet",
"突尼斯": "Tunesien", "突尼斯": "Tunesien",
"尼日利亚": "Nigeria", "尼日利亚": 'Nigeria',
"加纳": "Ghana", "加纳": 'Ghana',
"埃塞俄比亚": "Etiopien", "埃塞俄比亚": "Etiopien",
"肯尼亚": "Kenya", "肯尼亚": 'Kenya',
"坦桑尼亚": "Tanzania", "坦桑尼亚": 'Tanzania',
"乌干达": "Uganda", "乌干达": 'Uganda',
"孟加拉国": "Bangladesh", "孟加拉国": 'Bangladesh',
"以色列": "Israel", "以色列": 'Israel',
"黎巴嫩": "Libanon", "黎巴嫩": "Libanon",
"约旦": "Jordan", "约旦": 'Jordan',
"伊拉克": "Irak", "伊拉克": "Irak",
"科威特": "Kuwait", "科威特": 'Kuwait',
"巴林": "Bahrain", "巴林": 'Bahrain',
"卡塔尔": "Qatar", "卡塔尔": 'Qatar',
"阿曼": "Oman", "阿曼": 'Oman',
"阿富汗": "Afghanistan", "阿富汗": 'Afghanistan',
"斯里兰卡": "Sri Lanka", "斯里兰卡": 'Sri Lanka',
"缅甸": "Myanmar", "缅甸": 'Myanmar',
"尼泊尔": "Nepal", "尼泊尔": 'Nepal',
"蒙古": "Mongoliet", "蒙古": "Mongoliet",
"柬埔寨": "Cambodja", "柬埔寨": "Cambodja",
"老挝": "Laos", "老挝": 'Laos',
"文莱": "Brunei", "文莱": 'Brunei',
"东帝汶": "Østtimor", "东帝汶": "Østtimor",
"斐济": "Fiji", "斐济": 'Fiji',
"所罗门群岛": "Salomonøerne", "所罗门群岛": "Salomonøerne",
"刚果民主共和国": "Democratic Republic of the Congo", "刚果民主共和国": "Den Demokratiske Republik Congo",
"安哥拉": "Angola", "安哥拉": 'Angola',
"苏丹": "Sudan", "苏丹": 'Sudan',
"马尔代夫": "Maldives", "马尔代夫": "Maldiverne",
"不丹": "Bhutan", "不丹": 'Bhutan',
"摩纳哥": "Monaco", "摩纳哥": 'Monaco',
"圣马力诺": "San Marino", "圣马力诺": 'San Marino',
"牙买加": "Jamaica", "牙买加": 'Jamaica',
"巴哈马": "Bahamas", "巴哈马": 'Bahamas',
"巴布亚新几内亚": "Papua New Guinea", "巴布亚新几内亚": "Papua Ny Guinea",
"萨摩亚": "Samoa", "萨摩亚": 'Samoa',
}; };

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

@ -49,13 +49,13 @@ const Map<String, String> deDE = {
"russian": "Russisch", "russian": "Russisch",
"vietnamese": "Vietnamesisch", "vietnamese": "Vietnamesisch",
"italian": "Italienisch", "italian": "Italienisch",
"hindi": "Hindi", "hindi": 'Hindi',
"indonesian": "Indonesisch", "indonesian": "Indonesisch",
"thai": "Thailändisch", "thai": "Thailändisch",
"malay": "Malaiisch", "malay": "Malaiisch",
"turkish": "Türkisch", "turkish": "Türkisch",
"polish": "Polnisch", "polish": "Polnisch",
"filipino": "Filipino", "filipino": 'Filipino',
"dutch": "Niederländisch", "dutch": "Niederländisch",
"swedish": "Schwedisch", "swedish": "Schwedisch",
"danish": "Dänisch", "danish": "Dänisch",
@ -121,7 +121,7 @@ const Map<String, String> deDE = {
"reconnect": "Erneut verbinden", "reconnect": "Erneut verbinden",
"connectingDevice": "Gerät wird verbunden...", "connectingDevice": "Gerät wird verbunden...",
"connectedTo": "Verbunden mit", "connectedTo": "Verbunden mit",
"signal": "Signal", "signal": 'Signal',
"deviceId": "Geräte-ID", "deviceId": "Geräte-ID",
"firmwareVersion": "Firmware-Version", "firmwareVersion": "Firmware-Version",
"disconnectedDevice": "disconnectedDevice":
@ -392,9 +392,9 @@ const Map<String, String> deDE = {
'keywordSearch': 'Stichwortsuche', 'keywordSearch': 'Stichwortsuche',
'collaborationSharing': 'Zusammenarbeit & Teilen', 'collaborationSharing': 'Zusammenarbeit & Teilen',
'meetingHeaderDesc1': 'meetingHeaderDesc1':
'Audio recording, transcription, keyword search, and auto summary.', 'Audioaufzeichnung, Transkription, Stichwortsuche und automatische Zusammenfassung zur Steigerung der Meeting-Effizienz.',
'meetingHeaderDesc2': 'meetingHeaderDesc2':
'Suitable for business meetings, class notes, and interview minutes.', 'Geeignet für Geschäftsmeetings, Unterrichtsnotizen und Interviewprotokolle.',
'meetingAutoRecording': 'Automatische Aufnahme und Segmentierung', 'meetingAutoRecording': 'Automatische Aufnahme und Segmentierung',
'meetingSpeakerTagging': 'Sprecherkennzeichnung', 'meetingSpeakerTagging': 'Sprecherkennzeichnung',
'meetingLongAudioTranscription': 'Transkription langer Audios', 'meetingLongAudioTranscription': 'Transkription langer Audios',
@ -426,9 +426,9 @@ const Map<String, String> deDE = {
'ai_001_name': 'KI Basic 100', 'ai_001_name': 'KI Basic 100',
'ai_002_name': 'KI Basic 500', 'ai_002_name': 'KI Basic 500',
'ai_003_name': 'KI Basic 1000', 'ai_003_name': 'KI Basic 1000',
'meet_001_name': 'Meeting Basic 100', 'meet_001_name': 'Meeting Basis 100',
'meet_002_name': 'Meeting Basic 500', 'meet_002_name': 'Meeting Basis 500',
'meet_003_name': 'Meeting Basic 1000', 'meet_003_name': 'Meeting Basis 1000',
'trans_001_name': 'Übersetzung Basis 100', 'trans_001_name': 'Übersetzung Basis 100',
'trans_002_name': 'Übersetzung Basis 500', 'trans_002_name': 'Übersetzung Basis 500',
'trans_003_name': 'Übersetzung Basis 1000', 'trans_003_name': 'Übersetzung Basis 1000',
@ -443,8 +443,8 @@ const Map<String, String> deDE = {
'trans_003_desc': 'Enthält 1000 Übersetzungen (Stimme/Text).', 'trans_003_desc': 'Enthält 1000 Übersetzungen (Stimme/Text).',
// 商品模块 - 页脚 // 商品模块 - 页脚
'appNameProvider': 'App: VoiTrans · Provided by: VoiTrans', 'appNameProvider': 'App: VoiTrans · Bereitgestellt von: VoiTrans',
'iapCustomerServiceQQLabel': 'IAP customer service QQ: @qq', 'iapCustomerServiceQQLabel': 'IAP-Kundendienst QQ: @qq',
'copyrightVoitrans': '© 2025 Voitrans Technologies', 'copyrightVoitrans': '© 2025 Voitrans Technologies',
// 新手引导 // 新手引导
@ -795,7 +795,7 @@ const Map<String, String> deDE = {
"permissionManagementInfo": "permissionManagementInfo":
"App-Berechtigungseinstellungen verwalten", // 管理应用权限设置 "App-Berechtigungseinstellungen verwalten", // 管理应用权限设置
"aboutApplication": "Über", "aboutApplication": "Über",
"versions": "Version", "versions": 'Version',
"checkUpdates": "Updates prüfen", "checkUpdates": "Updates prüfen",
"selectLanguage": "Sprache auswählen", "selectLanguage": "Sprache auswählen",
"voiceService": "Sprachdienst", "voiceService": "Sprachdienst",
@ -848,7 +848,7 @@ const Map<String, String> deDE = {
// Agent模块 - 主界面 // Agent模块 - 主界面
"Lily": "Lily", "Lily": "Lily",
"clearChatHistory": "Chat-Verlauf löschen", "clearChatHistory": "Chat-Verlauf löschen",
"online": "Online", "online": 'Online',
"ttsSpeed": "Sprachgeschwindigkeit", "ttsSpeed": "Sprachgeschwindigkeit",
"ttsSpeedDefaultHint": "Standard +25 %", "ttsSpeedDefaultHint": "Standard +25 %",
"inputMessage": "Nachricht eingeben...", "inputMessage": "Nachricht eingeben...",
@ -1175,7 +1175,7 @@ const Map<String, String> deDE = {
// 个人资料模块 // 个人资料模块
"editProfile": "Profil bearbeiten", "editProfile": "Profil bearbeiten",
"avatar": "Avatar", "avatar": 'Avatar',
"nickname": "Spitzname", "nickname": "Spitzname",
"save": "Speichern", "save": "Speichern",
"about": "Über", "about": "Über",
@ -1470,7 +1470,7 @@ const Map<String, String> deDE = {
"ok": "OK", "ok": "OK",
// 用户反馈模块 // 用户反馈模块
"feedback": "Feedback", "feedback": 'Feedback',
'feedbackInfo': 'Feedback oder Vorschläge geben', 'feedbackInfo': 'Feedback oder Vorschläge geben',
'feedbackDescription': 'feedbackDescription':
'Bitte beschreiben Sie Ihr Problem oder Ihren Vorschlag', 'Bitte beschreiben Sie Ihr Problem oder Ihren Vorschlag',
@ -1602,23 +1602,23 @@ const Map<String, String> deDE = {
"克罗地亚语": "Kroatisch", "克罗地亚语": "Kroatisch",
"加泰隆语": "Katalanisch", "加泰隆语": "Katalanisch",
"阿拉伯语": "Arabisch", "阿拉伯语": "Arabisch",
"泰语": "Thai", "泰语": 'Thailändisch',
"越南语": "Vietnamesisch", "越南语": "Vietnamesisch",
"印尼语": "Indonesisch", "印尼语": "Indonesisch",
"印地语": "Hindi", "印地语": 'Hindi',
"土耳其语": "Türkisch", "土耳其语": "Türkisch",
"马来语": "Malaiisch", "马来语": "Malaiisch",
"孟加拉语": "Bengalisch", "孟加拉语": "Bengalisch",
"泰米尔语": "Tamil", "泰米尔语": 'Tamil',
"泰卢固语": "Telugu", "泰卢固语": 'Telugu',
"马拉提语": "Marathi", "马拉提语": 'Marathi',
"乌尔都语": "Urdu", "乌尔都语": 'Urdu',
"波斯语": "Persisch", "波斯语": "Persisch",
"斯瓦希里语": "Swahili", "斯瓦希里语": 'Suaheli',
// 国家列表 // 国家列表
"邮箱": "E-Mail", "邮箱": "E-Mail",
"中国": "China", "中国": 'China',
"美国": "Vereinigte Staaten", "美国": "Vereinigte Staaten",
"加拿大": "Kanada", "加拿大": "Kanada",
"俄罗斯": "Russland", "俄罗斯": "Russland",
@ -1630,14 +1630,14 @@ const Map<String, String> deDE = {
"南非": "Südafrika", "南非": "Südafrika",
"沙特阿拉伯": "Saudi-Arabien", "沙特阿拉伯": "Saudi-Arabien",
"土耳其": "Türkei", "土耳其": "Türkei",
"日本": "Japan", "日本": 'Japan',
"韩国": "Südkorea", "韩国": "Südkorea",
"新加坡": "Singapur", "新加坡": "Singapur",
"马来西亚": "Malaysia", "马来西亚": 'Malaysia',
"泰国": "Thailand", "泰国": 'Thailand',
"越南": "Vietnam", "越南": 'Vietnam',
"印度": "Indien", "印度": "Indien",
"巴基斯坦": "Pakistan", "巴基斯坦": 'Pakistan',
"菲律宾": "Philippinen", "菲律宾": "Philippinen",
"印度尼西亚": "Indonesien", "印度尼西亚": "Indonesien",
"阿联酋": "Vereinigte Arabische Emirate", "阿联酋": "Vereinigte Arabische Emirate",
@ -1647,8 +1647,8 @@ const Map<String, String> deDE = {
"澳大利亚": "Australien", "澳大利亚": "Australien",
"新西兰": "Neuseeland", "新西兰": "Neuseeland",
"中国香港": "Hongkong, China", "中国香港": "Hongkong, China",
"中国澳门": "Macau, China", "中国澳门": 'Macau, China',
"中国台湾": "Taiwan, China", "中国台湾": 'Taiwan, China',
"埃及": "Ägypten", "埃及": "Ägypten",
"希腊": "Griechenland", "希腊": "Griechenland",
"荷兰": "Niederlande", "荷兰": "Niederlande",
@ -1661,77 +1661,77 @@ const Map<String, String> deDE = {
"瑞典": "Schweden", "瑞典": "Schweden",
"挪威": "Norwegen", "挪威": "Norwegen",
"波兰": "Polen", "波兰": "Polen",
"秘鲁": "Peru", "秘鲁": 'Peru',
"智利": "Chile", "智利": 'Chile',
"哥伦比亚": "Kolumbien", "哥伦比亚": "Kolumbien",
"委内瑞拉": "Venezuela", "委内瑞拉": 'Venezuela',
"葡萄牙": "Portugal", "葡萄牙": 'Portugal',
"卢森堡": "Luxemburg", "卢森堡": "Luxemburg",
"爱尔兰": "Irland", "爱尔兰": "Irland",
"冰岛": "Island", "冰岛": "Island",
"阿尔巴尼亚": "Albanien", "阿尔巴尼亚": "Albanien",
"马耳他": "Malta", "马耳他": 'Malta',
"塞浦路斯": "Zypern", "塞浦路斯": "Zypern",
"芬兰": "Finnland", "芬兰": "Finnland",
"保加利亚": "Bulgarien", "保加利亚": "Bulgarien",
"立陶宛": "Litauen", "立陶宛": "Litauen",
"拉脱维亚": "Lettland", "拉脱维亚": "Lettland",
"爱沙尼亚": "Estland", "爱沙尼亚": "Estland",
"乌克兰": "Ukraine", "乌克兰": 'Ukraine',
"塞尔维亚": "Serbien", "塞尔维亚": "Serbien",
"克罗地亚": "Kroatien", "克罗地亚": "Kroatien",
"斯洛文尼亚": "Slowenien", "斯洛文尼亚": "Slowenien",
"捷克": "Tschechische Republik", "捷克": "Tschechische Republik",
"斯洛伐克": "Slowakei", "斯洛伐克": "Slowakei",
"危地马拉": "Guatemala", "危地马拉": 'Guatemala',
"萨尔瓦多": "El Salvador", "萨尔瓦多": 'El Salvador',
"洪都拉斯": "Honduras", "洪都拉斯": 'Honduras',
"尼加拉瓜": "Nicaragua", "尼加拉瓜": 'Nicaragua',
"哥斯达黎加": "Costa Rica", "哥斯达黎加": 'Costa Rica',
"巴拿马": "Panama", "巴拿马": 'Panama',
"海地": "Haiti", "海地": 'Haiti',
"玻利维亚": "Bolivien", "玻利维亚": "Bolivien",
"厄瓜多尔": "Ecuador", "厄瓜多尔": 'Ecuador',
"巴拉圭": "Paraguay", "巴拉圭": 'Paraguay',
"乌拉圭": "Uruguay", "乌拉圭": 'Uruguay',
"摩洛哥": "Marokko", "摩洛哥": "Marokko",
"阿尔及利亚": "Algerien", "阿尔及利亚": "Algerien",
"突尼斯": "Tunesien", "突尼斯": "Tunesien",
"尼日利亚": "Nigeria", "尼日利亚": 'Nigeria',
"加纳": "Ghana", "加纳": 'Ghana',
"埃塞俄比亚": "Äthiopien", "埃塞俄比亚": "Äthiopien",
"肯尼亚": "Kenia", "肯尼亚": "Kenia",
"坦桑尼亚": "Tansania", "坦桑尼亚": "Tansania",
"乌干达": "Uganda", "乌干达": 'Uganda',
"孟加拉国": "Bangladesch", "孟加拉国": "Bangladesch",
"以色列": "Israel", "以色列": 'Israel',
"黎巴嫩": "Libanon", "黎巴嫩": "Libanon",
"约旦": "Jordanien", "约旦": "Jordanien",
"伊拉克": "Irak", "伊拉克": "Irak",
"科威特": "Kuwait", "科威特": 'Kuwait',
"巴林": "Bahrain", "巴林": 'Bahrain',
"卡塔尔": "Katar", "卡塔尔": "Katar",
"阿曼": "Oman", "阿曼": 'Oman',
"阿富汗": "Afghanistan", "阿富汗": 'Afghanistan',
"斯里兰卡": "Sri Lanka", "斯里兰卡": 'Sri Lanka',
"缅甸": "Myanmar", "缅甸": 'Myanmar',
"尼泊尔": "Nepal", "尼泊尔": 'Nepal',
"蒙古": "Mongolei", "蒙古": "Mongolei",
"柬埔寨": "Kambodscha", "柬埔寨": "Kambodscha",
"老挝": "Laos", "老挝": 'Laos',
"文莱": "Brunei", "文莱": 'Brunei',
"东帝汶": "Osttimor", "东帝汶": "Osttimor",
"斐济": "Fidschi", "斐济": "Fidschi",
"所罗门群岛": "Salomonen", "所罗门群岛": "Salomonen",
"刚果民主共和国": "Demokratische Republik Kongo", "刚果民主共和国": "Demokratische Republik Kongo",
"安哥拉": "Angola", "安哥拉": 'Angola',
"苏丹": "Sudan", "苏丹": 'Sudan',
"马尔代夫": "Malediven", "马尔代夫": "Malediven",
"不丹": "Bhutan", "不丹": 'Bhutan',
"摩纳哥": "Monaco", "摩纳哥": 'Monaco',
"圣马力诺": "San Marino", "圣马力诺": 'San Marino',
"牙买加": "Jamaika", "牙买加": "Jamaika",
"巴哈马": "Bahamas", "巴哈马": 'Bahamas',
"巴布亚新几内亚": "Papua-Neuguinea", "巴布亚新几内亚": "Papua-Neuguinea",
"萨摩亚": "Samoa", "萨摩亚": 'Samoa',
}; };

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

@ -423,12 +423,12 @@ const Map<String, String> elGR = {
'Τα πραγματικά προνόμια εξαρτώνται από τις λεπτομέρειες του πακέτου και μπορεί να αλλάξουν με τις εκδόσεις.', 'Τα πραγματικά προνόμια εξαρτώνται από τις λεπτομέρειες του πακέτου και μπορεί να αλλάξουν με τις εκδόσεις.',
// 商品模块 - 商品名称与描述 // 商品模块 - 商品名称与描述
'ai_001_name': 'AI Basic 100', 'ai_001_name': 'AI Βασικό 100',
'ai_002_name': 'AI Basic 500', 'ai_002_name': 'AI Βασικό 500',
'ai_003_name': 'AI Basic 1000', 'ai_003_name': 'AI Βασικό 1000',
'meet_001_name': 'Meeting Basic 100', 'meet_001_name': 'Συνάντηση Βασικό 100',
'meet_002_name': 'Meeting Basic 500', 'meet_002_name': 'Συνάντηση Βασικό 500',
'meet_003_name': 'Meeting Basic 1000', 'meet_003_name': 'Συνάντηση Βασικό 1000',
'trans_001_name': 'Μετάφραση Basic 100', 'trans_001_name': 'Μετάφραση Basic 100',
'trans_002_name': 'Μετάφραση Basic 500', 'trans_002_name': 'Μετάφραση Basic 500',
'trans_003_name': 'Μετάφραση Basic 1000', 'trans_003_name': 'Μετάφραση Basic 1000',

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

@ -209,7 +209,7 @@ const Map<String, String> etEE = {
"conferenceAssistantInfo": "conferenceAssistantInfo":
"Reaalajas protokolli salvestamine ja mitmekeelne tõlge", "Reaalajas protokolli salvestamine ja mitmekeelne tõlge",
"usageStats": "Kasutamise statistika", "usageStats": "Kasutamise statistika",
"usageStatsInfo": "Näita sovelluksen kasutamise statistikat", "usageStatsInfo": "Kuva rakenduse kasutamise statistikat",
"scene": "Stsenaariumid", "scene": "Stsenaariumid",
// 用量统计模块 // 用量统计模块
@ -437,8 +437,8 @@ const Map<String, String> etEE = {
'trans_003_desc': 'Sisaldab 1000 tõlget (hääl/tekst).', 'trans_003_desc': 'Sisaldab 1000 tõlget (hääl/tekst).',
// 商品模块 - 页脚 // 商品模块 - 页脚
'appNameProvider': 'App: VoiTrans · Provided by: VoiTrans', 'appNameProvider': 'Rakendus: VoiTrans · Esitab: VoiTrans',
'iapCustomerServiceQQLabel': 'IAP customer service QQ: @qq', 'iapCustomerServiceQQLabel': 'IAP klienditeenindus QQ: @qq',
'copyrightVoitrans': '© 2025 Voitrans Technologies', 'copyrightVoitrans': '© 2025 Voitrans Technologies',
// 新手引导 // 新手引导
@ -763,7 +763,7 @@ const Map<String, String> etEE = {
"aiRecharge": "Premium liige", "aiRecharge": "Premium liige",
"translationRecharge": "Tõlke varundus", "translationRecharge": "Tõlke varundus",
"meetingAssistantRecharge": "Koosoleku assistendi varundus", "meetingAssistantRecharge": "Koosoleku assistendi varundus",
"cloudSync": "Pääsyvaraus cloud-synkronointiin", "cloudSync": "Pilvsünkroonimise varundus",
"memberService": "Liikmeteenus", "memberService": "Liikmeteenus",
"bindRewardTitle": "Preemiad", "bindRewardTitle": "Preemiad",
"bindRewardSimpleDesc": "bindRewardSimpleDesc":
@ -1676,15 +1676,15 @@ const Map<String, String> etEE = {
"东帝汶": "Ida-Timor", "东帝汶": "Ida-Timor",
"斐济": "Fidži", "斐济": "Fidži",
"所罗门群岛": "Saalomoni Saared", "所罗门群岛": "Saalomoni Saared",
"刚果民主共和国": "Democratic Republic of the Congo", "刚果民主共和国": "Kongo Demokraatlik Vabariik",
"安哥拉": "Angola", "安哥拉": "Angola",
"苏丹": "Sudan", "苏丹": "Sudan",
"马尔代夫": "Maldives", "马尔代夫": "Maldiivid",
"不丹": "Bhutan", "不丹": "Bhutan",
"摩纳哥": "Monaco", "摩纳哥": "Monaco",
"圣马力诺": "San Marino", "圣马力诺": "San Marino",
"牙买加": "Jamaica", "牙买加": "Jamaica",
"巴哈马": "Bahamas", "巴哈马": "Bahama",
"巴布亚新几内亚": "Papua New Guinea", "巴布亚新几内亚": "Paapua Uus-Guinea",
"萨摩亚": "Samoa", "萨摩亚": "Samoa",
}; };

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

@ -19,11 +19,11 @@ const Map<String, String> fiFI = {
"unknownError": "Tuntematon virhe", "unknownError": "Tuntematon virhe",
"asrConnectionFailed": "asrConnectionFailed":
"Yhteys puheentunnistuspalveluun epäonnistui. Tarkista verkkoyhteys tai yritä myöhemmin uudelleen.", "Yhteys puheentunnistuspalveluun epäonnistui. Tarkista verkkoyhteys tai yritä myöhemmin uudelleen.",
"justNow": "Just now", "justNow": "Juuri nyt",
"minutesAgo": "@minutes minutes ago", "minutesAgo": "@minutes minuuttia sitten",
"yesterday": "Yesterday", "yesterday": "Eilen",
"daysAgo": "@days days ago", "daysAgo": "@days päivää sitten",
"hoursAgo": "@hours hours ago", "hoursAgo": "@hours tuntia sitten",
// 启动页 // 启动页
"slogan": "Maailman yhdistäminen, äänen tuolla puolen", "slogan": "Maailman yhdistäminen, äänen tuolla puolen",
@ -256,10 +256,10 @@ const Map<String, String> fiFI = {
"loadFailed": "Lataus epäonnistui", "loadFailed": "Lataus epäonnistui",
"statsLoadFailedTryLater": "statsLoadFailedTryLater":
"Tilastojen lataus epäonnistui. Yritä myöhemmin uudelleen.", "Tilastojen lataus epäonnistui. Yritä myöhemmin uudelleen.",
"cleanupComplete": "Cleanup Complete", "cleanupComplete": "Siivous valmis",
"cleanedOldData": "Cleaned data older than 90 days", "cleanedOldData": "Poistettu yli 90 päivää vanha data",
"exportFeature": "Export Feature", "exportFeature": "Vientitoiminto",
"exportInDevelopment": "Data export is under development", "exportInDevelopment": "Datavieniti on kehitteillä",
// 商品模块 - 通用 // 商品模块 - 通用
'availablePackages': 'Saatavilla olevat paketit', 'availablePackages': 'Saatavilla olevat paketit',
@ -332,101 +332,101 @@ const Map<String, String> fiFI = {
'AI-jäsenyys on vanhentunut. Siirry jäsenyyden lataussivulle ja uusi.', 'AI-jäsenyys on vanhentunut. Siirry jäsenyyden lataussivulle ja uusi.',
// 商品模块 - AI商品页 // 商品模块 - AI商品页
'musicAndRecommendation': 'Music & Recommendation', 'musicAndRecommendation': 'Musiikki ja suositukset',
'navigationAndRoutes': 'Navigation & Routes', 'navigationAndRoutes': 'Navigointi ja reitit',
'nearbySearch': 'Nearby Search', 'nearbySearch': 'Lähistön haku',
'newsInformation': 'News', 'newsInformation': 'Uutiset',
'communicationAssistant': 'Communication Assistant', 'communicationAssistant': 'Viestintäassistentti',
'aiHeaderDesc1': 'aiHeaderDesc1':
'Longer conversation quota, more tool calls, extended context length.', 'Suurempi keskusttelukiintiö, enemmän työkalukutsuja, pidempi konteksti.',
'aiHeaderDesc2': 'aiHeaderDesc2':
'Suitable for agent Q&A, summarization, analysis, and task execution.', 'Sopii agentin kysymyksiin, tiivistämiseen, analyysiin ja tehtävien suorittamiseen.',
'musicSearchPlaybackControl': 'Music library search and playback control', 'musicSearchPlaybackControl': 'Musiikkikirjaston haku ja toiston ohjaus',
'smartPlaylistAndSimilarRecommendations': 'smartPlaylistAndSimilarRecommendations':
'Smart playlist and similar song recommendations', 'Älykäs soittolista ja samankaltaisten kappaleiden suositukset',
'routePlanningAndCongestionAvoidance': 'routePlanningAndCongestionAvoidance':
'Route planning and congestion avoidance', 'Reittien suunnittelu ja ruuhkien välttäminen',
'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'voiceBroadcastAndWaypoints': 'Äänikuulutus ja välipisteasetukset',
'realTimeWeatherForecast': 'Real-time weather and forecast', 'realTimeWeatherForecast': 'Reaaliaikainen sää ja ennuste',
'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', 'clothingAdviceAndTravelReminders': 'Pukeutumisneuvoja ja matkamuistutuksia',
'poiSearchFoodGasParking': 'POI search: dining / gas / parking', 'poiSearchFoodGasParking': 'POI-haku: ruokailu / huoltoasema / pysäköinti',
'ratingsHoursAndDirectRoutes': 'Ratings, business hours, and direct routing', 'ratingsHoursAndDirectRoutes': 'Arviot, aukioloajat ja suorat reitit',
'hotNewsAndTopicOverview': 'Hot news and topic overview', 'hotNewsAndTopicOverview': 'Kuumat uutiset ja aiheyhteenveto',
'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'longArticleSummariesAndKeyPoints': 'Pitkien artikkelien tiivistelmät ja avainpisteet',
'helpCallAndSMS': 'Help with calls and SMS', 'helpCallAndSMS': 'Apua puheluihin ja tekstiviesteihin',
'templatedMessagesAndScheduleReminders': 'templatedMessagesAndScheduleReminders':
'Template messages and schedule reminders', 'Malliviestit ja aikataulumuistutukset',
'aiDisclaimer': 'aiDisclaimer':
'Toiminnot riippuvat laitteen käyttöoikeuksista, palvelun saatavuudesta ja verkkoyhteydestä.', 'Toiminnot riippuvat laitteen käyttöoikeuksista, palvelun saatavuudesta ja verkkoyhteydestä.',
// 商品模块 - 翻译商品页 // 商品模块 - 翻译商品页
'realtimeTranscription': 'Real-time Transcription', 'realtimeTranscription': 'Reaaliaikainen litterointi',
'sceneLexicon': 'Scenario Glossary', 'sceneLexicon': 'Tilannesanasto',
'subtitleDisplay': 'Subtitles', 'subtitleDisplay': 'Tekstitykset',
'transHeaderDesc1': 'transHeaderDesc1':
'Reaaliaikainen simultaanitulkkaus ja tekstikäännös matalaviiveisellä äänellä.', 'Reaaliaikainen simultaanitulkkaus ja tekstikäännös matalaviiveisellä äänellä.',
'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'transHeaderDesc2': 'Sopii matkustamiseen, liike-elämään, puheisiin ja opetukseen.',
'translateZhEn': 'Kiinan–englannin käännös', 'translateZhEn': 'Kiinan–englannin käännös',
'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'lowLatencyVoiceBroadcast': 'Matalaviiveinen äänisaatto',
'multiLangTextTranslation': 'Monikielinen tekstikäännös', 'multiLangTextTranslation': 'Monikielinen tekstikäännös',
'termOptimizationContextPreserve': 'termOptimizationContextPreserve':
'Terminology optimization and context preservation', 'Terminologian optimointi ja kontekstin säilyttäminen',
'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'lexiconTourBusinessLife': 'Matkailu-/liike-/elämäsanastot',
'personalVocabularyMemory': 'Personal vocabulary memory', 'personalVocabularyMemory': 'Henkilökohtaisen sanaston muisti',
'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'conversationSubtitleLargeText': 'Keskustelun tekstitykset / Suuritekstinen tila',
'colorHighContrast': 'High color contrast', 'colorHighContrast': 'Korkea värikontrasti',
'transDisclaimer': 'transDisclaimer':
'Käännöksen suorituskyky riippuu mikrofonista, verkkoviiveestä ja taustamelusta.', 'Käännöksen suorituskyky riippuu mikrofonista, verkkoviiveestä ja taustamelusta.',
// 商品模块 - 会议商品页 // 商品模块 - 会议商品页
'meetingRecording': 'Kokoustallennus', 'meetingRecording': 'Kokoustallennus',
'transcriptionAndSummary': 'Transcription & Summary', 'transcriptionAndSummary': 'Litterointi ja yhteenveto',
'keywordSearch': 'Keyword Search', 'keywordSearch': 'Avainsanahaku',
'collaborationSharing': 'Collaboration & Sharing', 'collaborationSharing': 'Yhteistyö ja jakaminen',
'meetingHeaderDesc1': 'meetingHeaderDesc1':
'Äänitallennus, transkriptio, avainsanahaku ja automaattinen yhteenveto tehostavat kokouksia.', 'Äänitallennus, transkriptio, avainsanahaku ja automaattinen yhteenveto tehostavat kokouksia.',
'meetingHeaderDesc2': 'meetingHeaderDesc2':
'Suitable for business meetings, class notes, and interview minutes.', 'Sopii yrityskokouksiin, luentomuistiinpanoihin ja haastattelupöytäkirjoihin.',
'meetingAutoRecording': 'Automaattinen tallennus ja segmentointi', 'meetingAutoRecording': 'Automaattinen tallennus ja segmentointi',
'meetingSpeakerTagging': 'Speaker labeling', 'meetingSpeakerTagging': 'Puhujan merkintä',
'meetingLongAudioTranscription': 'Long audio transcription', 'meetingLongAudioTranscription': 'Pitkän äänen litterointi',
'meetingKeyPointSummary': 'Key point extraction', 'meetingKeyPointSummary': 'Avainpisteiden poiminta',
'meetingTopicNameSearch': 'Search by topic/name', 'meetingTopicNameSearch': 'Haku aiheen/nimen mukaan',
'meetingTimelineJump': 'Timeline jump', 'meetingTimelineJump': 'Aikajanan hyppy',
'meetingExportSummary': 'Export minutes', 'meetingExportSummary': 'Vie pöytäkirja',
'meetingMultiPlatformShare': 'Share across platforms', 'meetingMultiPlatformShare': 'Jaa eri alustoilla',
'meetingDisclaimer': 'meetingDisclaimer':
'Käytä hiljaisessa ympäristössä; suorituskyky riippuu mikrofonista ja verkosta.', 'Käytä hiljaisessa ympäristössä; suorituskyky riippuu mikrofonista ja verkosta.',
// 商品模块 - VIP会员页 // 商品模块 - VIP会员页
'benefitsOverview': 'Benefits overview', 'benefitsOverview': 'Etujen yhteenveto',
'higherQuota': 'Higher usage quota', 'higherQuota': 'Suurempi käyttökiintiö',
'lowerUnitPrice': 'Lower unit price', 'lowerUnitPrice': 'Alempi yksikköhinta',
'priorityService': 'Priority service', 'priorityService': 'Prioriteettipalvelu',
'exclusiveSupportChannel': 'Dedicated support channel', 'exclusiveSupportChannel': 'Oma tukikanava',
'fastResponse': 'Fast issue response', 'fastResponse': 'Nopea ongelmavastaus',
'eventsAndDiscounts': 'Events and discounts', 'eventsAndDiscounts': 'Tapahtumat ja alennukset',
'memberExclusiveEvents': 'Member-exclusive events', 'memberExclusiveEvents': 'Jäsenille yksinomaiset tapahtumat',
'longTermDiscountPlan': 'Long-term discount plan', 'longTermDiscountPlan': 'Pitkäaikainen alennussuunnitelma',
'generalPrivileges': 'General privileges', 'generalPrivileges': 'Yleiset etuoikeudet',
'earlyAccessNewFeatures': 'Early access to new features', 'earlyAccessNewFeatures': 'Varhainen pääsy uusiin ominaisuuksiin',
'crossDeviceSync': 'Laitteiden välinen synkronointi', 'crossDeviceSync': 'Laitteiden välinen synkronointi',
'vipDisclaimer': 'vipDisclaimer':
'Actual benefits depend on the package details and may change with versions.', 'Todelliset edut riippuvat pakettitiedoista ja voivat muuttua versioiden myötä.',
// 商品模块 - 商品名称与描述 // 商品模块 - 商品名称与描述
'ai_001_name': 'AI Basic 100', 'ai_001_name': 'AI Perus 100',
'ai_002_name': 'AI Basic 500', 'ai_002_name': 'AI Perus 500',
'ai_003_name': 'AI Basic 1000', 'ai_003_name': 'AI Perus 1000',
'meet_001_name': 'Meeting Basic 100', 'meet_001_name': 'Kokous Perus 100',
'meet_002_name': 'Meeting Basic 500', 'meet_002_name': 'Kokous Perus 500',
'meet_003_name': 'Meeting Basic 1000', 'meet_003_name': 'Kokous Perus 1000',
'trans_001_name': 'Käännös Perus 100', 'trans_001_name': 'Käännös Perus 100',
'trans_002_name': 'Käännös Perus 500', 'trans_002_name': 'Käännös Perus 500',
'trans_003_name': 'Käännös Perus 1000', 'trans_003_name': 'Käännös Perus 1000',
'ai_001_desc': 'Includes 100 uses. Access core AI features.', 'ai_001_desc': 'Sisältää 100 käyttöä. Pääsy AI:n ydintoimintoihin.',
'ai_002_desc': 'Includes 500 uses. Access core AI features.', 'ai_002_desc': 'Sisältää 500 käyttöä. Pääsy AI:n ydintoimintoihin.',
'ai_003_desc': 'Includes 1000 uses. Access core AI features.', 'ai_003_desc': 'Sisältää 1000 käyttöä. Pääsy AI:n ydintoimintoihin.',
'meet_001_desc': 'Sisältää 100 kokoustallennusta/transkriptiota.', 'meet_001_desc': 'Sisältää 100 kokoustallennusta/transkriptiota.',
'meet_002_desc': 'Sisältää 500 kokoustallennusta/transkriptiota.', 'meet_002_desc': 'Sisältää 500 kokoustallennusta/transkriptiota.',
'meet_003_desc': 'Sisältää 1000 kokoustallennusta/transkriptiota.', 'meet_003_desc': 'Sisältää 1000 kokoustallennusta/transkriptiota.',
@ -441,40 +441,40 @@ const Map<String, String> fiFI = {
// 新手引导 // 新手引导
'skip': "Ohita", 'skip': "Ohita",
'next': 'Next', 'next': 'Seuraava',
'sayLilyHint': 'Say "Lily Lily" to the mic', 'sayLilyHint': 'Sano "Lily Lily" mikrofoniin',
'imHere': 'I’m here~', 'imHere': 'Olen täällä~',
'guideWelcomeWakeAI': 'Welcome to Voitrans! First, wake your AI “Lily”.', 'guideWelcomeWakeAI': 'Tervetuloa Voitransiin! Ensin herätä AI “Lily”.',
'aiReplyCompleted': 'Lily has finished the reply!', 'aiReplyCompleted': 'Lily on vastannut!',
'aiThinking': 'Lily is thinking…', 'aiThinking': 'Lily miettii…',
'guideAwakenSuccess': 'Great! Lily is awake—ask it to help.', 'guideAwakenSuccess': 'Hienoa! Lily on hereillä—pyydä apua.',
'confirmInput': 'Confirm Input', 'confirmInput': 'Vahvista syöte',
'guideClickSendPrefix': 'Tap send, ', 'guideClickSendPrefix': 'Napauta lähetä, ',
'guideWeatherStart': 'Tell Lily: “What’s the weather today?”', 'guideWeatherStart': 'Kysy Lilyltä: “Mikä on tämän päivän sää?”',
'guideWeatherInput': 'What’s the weather today?', 'guideWeatherInput': 'Mikä on tämän päivän sää?',
'guideWeatherSend': 'Lily will report the weather in real time', 'guideWeatherSend': 'Lily kertoo sään reaaliajassa',
'guideWeatherEnd': 'Lily can report weather live—try other commands', 'guideWeatherEnd': 'Lily voi kertoa sään—kokeile muita komentoja',
'guideMusicStart': 'Tell Lily: “Play some rock music”', 'guideMusicStart': 'Kysy Lilyltä: “Soita rock-musiikkia”',
'guideMusicInput': 'Play some rock music', 'guideMusicInput': 'Soita rock-musiikkia',
'guideMusicSend': 'Lily will find music for you', 'guideMusicSend': 'Lily etsii musiikkia sinulle',
'guideMusicEnd': 'Lily found music—try other commands', 'guideMusicEnd': 'Lily löysi musiikkia—kokeile muita komentoja',
'guideNavStart': 'Tell Lily: “Navigate to Shenzhen Airport”', 'guideNavStart': 'Kysy Lilyltä: “Navigoi Shenzenin lentokentälle”',
'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavInput': 'Navigoi Shenzenin lentokentälle',
'guideNavSend': 'Lily will plan the route', 'guideNavSend': 'Lily suunnittelee reitin',
'guideNavEnd': 'Navigation set—try other commands', 'guideNavEnd': 'Navigointi asetettu—kokeile muita komentoja',
'guideMeetingStart': 'guideMeetingStart':
'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'Kysy Lilyltä: “Luo kokousmuistutus huomenna klo 15”',
'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingInput': 'Luo kokousmuistutus huomenna klo 15',
'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingSend': 'Lily luo kokousmuistutuksen',
'guideMeetingEnd': 'Reminder created—try other commands', 'guideMeetingEnd': 'Muistutus luotu—kokeile muita komentoja',
'guidePhoneStart': 'Tell Lily: “Call Mom”', 'guidePhoneStart': 'Kysy Lilyltä: “Soita äidille”',
'guidePhoneInput': 'Call Mom', 'guidePhoneInput': 'Soita äidille',
'guidePhoneSend': 'Lily will make the call', 'guidePhoneSend': 'Lily soittaa puhelun',
'guidePhoneEnd': 'Call placed—try other commands', 'guidePhoneEnd': 'Puhelu soitettu—kokeile muita komentoja',
'guideSmsStart': 'Tell Lily: “Send Dad a text: I’ll be home for dinner”', 'guideSmsStart': 'Kysy Lilyltä: “Lähetä isälle viesti: Tulen kotiin illalliselle”',
'guideSmsInput': 'Text Dad: I’ll be home for dinner', 'guideSmsInput': 'Lähetä isälle viesti: Tulen kotiin illalliselle',
'guideSmsSend': 'Lily will send the message', 'guideSmsSend': 'Lily lähettää viestin',
'guideSmsEnd': 'Message sent—voice control is convenient', 'guideSmsEnd': 'Viesti lähetetty—ääniohjaus on kätevää',
// Meeting模块 - 首页与导航 // Meeting模块 - 首页与导航
"startMeeting": "Aloita kokous", "startMeeting": "Aloita kokous",
@ -503,9 +503,9 @@ const Map<String, String> fiFI = {
'aiPenNotFound': 'AI PEN -laitetta ei löytynyt', 'aiPenNotFound': 'AI PEN -laitetta ei löytynyt',
'connectedToAiPen': 'Yhdistetty AI PEN -laitteeseen', 'connectedToAiPen': 'Yhdistetty AI PEN -laitteeseen',
'checkingNewFiles': 'Tarkistetaan uusia tuotavia tiedostoja', 'checkingNewFiles': 'Tarkistetaan uusia tuotavia tiedostoja',
'startingWifi': 'Starting Wi-Fi...', 'startingWifi': 'Käynnistetään Wi-Fiä...',
'newFilesDetected': 'New files detected, preparing to import', 'newFilesDetected': 'Uusia tiedostoja havaittu, valmistellaan tuontia',
'noNewFiles': 'No new files to import', 'noNewFiles': 'Ei uusia tuotavia tiedostoja',
'connectingWifi': 'Yhdistetään Wi‑Fiin...', 'connectingWifi': 'Yhdistetään Wi‑Fiin...',
'wifiConnected': 'Wi‑Fi-yhteys muodostettu', 'wifiConnected': 'Wi‑Fi-yhteys muodostettu',
'downloadingFiles': 'Ladataan tiedostoja...', 'downloadingFiles': 'Ladataan tiedostoja...',
@ -520,7 +520,7 @@ const Map<String, String> fiFI = {
'liveRecording': 'Live-tallennus', 'liveRecording': 'Live-tallennus',
'audioVideoRecording': 'Ääni-/videotallennus', 'audioVideoRecording': 'Ääni-/videotallennus',
'callRecording': 'Puhelutallennus', 'callRecording': 'Puhelutallennus',
'importAudio': 'Import Audio', 'importAudio': 'Tuo ääni',
'meetingRecordExitTitle': 'Poistu tallennuksesta', // 退出录音 'meetingRecordExitTitle': 'Poistu tallennuksesta', // 退出录音
'meetingRecordExitMessage': 'meetingRecordExitMessage':
'Valitse, mitä tehdä ennen poistumista', // 请选择离开后的操作 'Valitse, mitä tehdä ennen poistumista', // 请选择离开后的操作
@ -543,30 +543,30 @@ const Map<String, String> fiFI = {
'Jotta voimme näyttää tallennuksen kelluvan palkin (ajastin/tauko/jatka) tallennuksen aikana, tarvitsemme päällekkäisyysoikeuden.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 'Jotta voimme näyttää tallennuksen kelluvan palkin (ajastin/tauko/jatka) tallennuksen aikana, tarvitsemme päällekkäisyysoikeuden.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。
'overlayPermissionOpenSettingsFailed': 'overlayPermissionOpenSettingsFailed':
'Järjestelmäasetuksia ei voi avata automaattisesti. Avaa Asetukset ja ota päällekkäisyysoikeus käyttöön manuaalisesti.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'Järjestelmäasetuksia ei voi avata automaattisesti. Avaa Asetukset ja ota päällekkäisyysoikeus käyttöön manuaalisesti.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。
'transcribing': 'Transcribing...', 'transcribing': 'Litteroidaan...',
'summarizing': 'Summarizing...', 'summarizing': 'Tiivistetään...',
'analyzing': 'Analyzing...', 'analyzing': 'Analysoidaan...',
'summaryComplete': 'Summary Complete', 'summaryComplete': 'Yhteenveto valmis',
'generate': 'Generate', 'generate': 'Luo',
'overview': 'Overview', 'overview': 'Yleiskatsaus',
'transcription': 'Transcription', 'transcription': 'Litterointi',
'summary': 'Summary', 'summary': 'Yhteenveto',
'mindMap': 'Mind Map', 'mindMap': 'Miellekartta',
'editSpeaker': 'Edit', 'editSpeaker': 'Muokkaa',
'nameSpeaker': 'Name Speaker', 'nameSpeaker': 'Nimeä puhuja',
// Meeting模块 - 转写与总结 // Meeting模块 - 转写与总结
'reSummarize': 'Re-summarize', 'reSummarize': 'Tiivistä uudelleen',
'dateAndTime': 'Date & Time', 'dateAndTime': 'Päivämäärä ja aika',
'location': 'Location', 'location': 'Sijainti',
'attendees': 'Attendees', 'attendees': 'Osallistujat',
'inputLocation': 'Enter Location', 'inputLocation': 'Syötä sijainti',
'inputAttendees': 'Enter Attendees', 'inputAttendees': 'Syötä osallistujat',
// Meeting模块 - 模版与生成 // Meeting模块 - 模版与生成
'selectSummaryTemplate': 'Select Summary Template', 'selectSummaryTemplate': 'Valitse yhteenveto-malli',
'useThisTemplate': 'Use This Template', 'useThisTemplate': 'Käytä tätä mallia',
'lastUsed': 'Last Used', 'lastUsed': 'Viimeksi käytetty',
'create': 'Luo', 'create': 'Luo',
'templateDetails': 'Mallin tiedot', 'templateDetails': 'Mallin tiedot',
'tag': 'Tunniste', 'tag': 'Tunniste',
@ -583,24 +583,24 @@ const Map<String, String> fiFI = {
'inputDescHint': 'Syötä kuvaus', 'inputDescHint': 'Syötä kuvaus',
'custom': 'Mukautettu', 'custom': 'Mukautettu',
'pleaseEnter': 'Ole hyvä ja syötä', 'pleaseEnter': 'Ole hyvä ja syötä',
'viewAll': 'View All', 'viewAll': 'Näytä kaikki',
'recordingLanguage': 'Tallennuskieli', 'recordingLanguage': 'Tallennuskieli',
'chineseSimplified': 'Chinese Mandarin (Simplified)', 'chineseSimplified': 'Kiinan mandariini (yksinkertaistettu)',
'meetingGenerateNow': 'Generate Now', 'meetingGenerateNow': 'Luo nyt',
'keyEventsAnalyzed': 'Analyzed {count} key events.', 'keyEventsAnalyzed': 'Analysoitu {count} avaintapahtumaa.',
'aiAnalysisDesc': 'aiAnalysisDesc':
'AI-analyysi tunnistaa tallenteista avaintapahtumat, jotta voit valita tärkeät tapahtumat AI-luontia varten.', 'AI-analyysi tunnistaa tallenteista avaintapahtumat, jotta voit valita tärkeät tapahtumat AI-luontia varten.',
// Meeting模块 - 文件操作 // Meeting模块 - 文件操作
'importing': 'Importing...', 'importing': 'Tuodaan...',
'batchImporting': 'Batch importing...', 'batchImporting': 'Tuodaan erissä...',
'importingLocalRecordings': 'Tuodaan paikallisia tallenteita...', 'importingLocalRecordings': 'Tuodaan paikallisia tallenteita...',
'importFailed': 'Tiedoston tuonti epäonnistui: {filePath}, virhe: {error}', 'importFailed': 'Tiedoston tuonti epäonnistui: {filePath}, virhe: {error}',
'importSuccess': '{count} paikallista tallennetta tuotu onnistuneesti', 'importSuccess': '{count} paikallista tallennetta tuotu onnistuneesti',
'importError': 'Tuonti epäonnistui: {error}', 'importError': 'Tuonti epäonnistui: {error}',
'pleaseSelectAudioFile': 'Valitse äänitiedosto', 'pleaseSelectAudioFile': 'Valitse äänitiedosto',
'shareAudio': 'Share Meeting Audio', 'shareAudio': 'Jaa kokouksen ääni',
'shareComplete': 'Share complete!', 'shareComplete': 'Jakaminen valmis!',
'shareFailed': 'Jakaminen epäonnistui: {error}', 'shareFailed': 'Jakaminen epäonnistui: {error}',
'fileProcessingFailed': 'fileProcessingFailed':
'Tiedoston käsittely epäonnistui: {filePath}, virhe: {error}', 'Tiedoston käsittely epäonnistui: {filePath}, virhe: {error}',
@ -657,88 +657,88 @@ const Map<String, String> fiFI = {
'enabled': 'Käytössä', 'enabled': 'Käytössä',
'disabled': 'Ei käytössä', 'disabled': 'Ei käytössä',
'myVoitransDevice': 'Oma VOITRANS-laite', 'myVoitransDevice': 'Oma VOITRANS-laite',
'helpAndFeedback': 'Help & Feedback', 'helpAndFeedback': 'Ohje ja palaute',
'aboutVoitrans': 'About VOITRANS', 'aboutVoitrans': 'Tietoja VOITRANS:ista',
'meetingDays': 'Days', 'meetingDays': 'Päivää',
'meetingHours': 'Hours', 'meetingHours': 'Tuntia',
'voitransAiMember': 'Voitrans AI Member', 'voitransAiMember': 'Voitrans AI -jäsen',
'unlockStarterMember': 'Unlock Starter Member', 'unlockStarterMember': 'Avaa Starter-jäsenyys',
'bindDeviceToActivate': 'bindDeviceToActivate':
'Sido Voitrans-laite aktivoidaksesi Starter-jäsenyyden', 'Sido Voitrans-laite aktivoidaksesi Starter-jäsenyyden',
'unlockNow': 'Unlock Now', 'unlockNow': 'Avaa nyt',
// Meeting模块 - 会员与升级 // Meeting模块 - 会员与升级
'comparison': 'Comparison', 'comparison': 'Vertailu',
'detailedInfo': 'Detailed Information', 'detailedInfo': 'Yksityiskohtaiset tiedot',
'monthlyTranscriptionTime': 'Monthly Transcription Time', 'monthlyTranscriptionTime': 'Kuukausittainen litterointiaika',
'unlimited': 'Unlimited', 'unlimited': 'Rajoittamaton',
'professionalTemplates': 'Professional Templates', 'professionalTemplates': 'Ammattilaismallit',
'limited': 'Limited', 'limited': 'Rajoitettu',
'fullTemplates': 'Full Templates', 'fullTemplates': 'Täydet mallit',
'professionalTerms': 'Professional Terms', 'professionalTerms': 'Ammattisanasto',
'customTemplates': 'Custom Templates', 'customTemplates': 'Mukautetut mallit',
'visualMindMap': 'Visual Mind Map', 'visualMindMap': 'Visuaalinen miellekartta',
'speakerIdentification': 'Speaker Identification', 'speakerIdentification': 'Puhujan tunnistus',
'aiVoiceEnhancement': 'AI Voice Enhancement', 'aiVoiceEnhancement': 'AI-äänenparannus',
'audioImport': 'Audio Import', 'audioImport': 'Äänen tuonti',
'multipleExportFormats': 'Multiple Export Formats', 'multipleExportFormats': 'Useita vientimuotoja',
'professionalSummaryTemplates': 'Professional Summary Templates', 'professionalSummaryTemplates': 'Ammattilaiset yhteenvetomallit',
'professionalTemplateDesc': 'professionalTemplateDesc':
'Professional template design to improve your work efficiency. Customized according to industry needs.', 'Ammattilaismallin muotoilu työtehosi parantamiseksi. Mukautettu toimialan tarpeiden mukaan.',
'customTemplateDesc': 'customTemplateDesc':
'You can customize summary prompts according to your needs and use them to generate the required summaries.', 'Voit mukauttaa yhteenvetokehotteet tarpeidesi mukaan ja käyttää niitä tarvittavien yhteenvetojen luomiseen.',
'askAiDesc': 'askAiDesc':
'Poimi tallenteista älykkäästi syvempää tietoa ja luo yhdellä napsautuksella datataulukoita, keskustelujen keskeisiä johtopäätöksiä, tehtävälistoja, raporttisähköposteja ja muuta muotoiltua sisältöä.', 'Poimi tallenteista älykkäästi syvempää tietoa ja luo yhdellä napsautuksella datataulukoita, keskustelujen keskeisiä johtopäätöksiä, tehtävälistoja, raporttisähköposteja ja muuta muotoiltua sisältöä.',
'visualMindMapDesc': 'visualMindMapDesc':
'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', 'Yhteenvetojen lisäksi – järjestä ja visualisoi avainpisteet miellekartoilla tekstin ymmärtämiseksi.',
'templateCommunityDesc': 'templateCommunityDesc':
'Discover, share, and get inspiration from the template library created by users.', 'Löydä, jaa ja saa inspiraatiota käyttäjien luomasta mallikirjastosta.',
'speakerIdentificationDesc': 'speakerIdentificationDesc':
'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', 'Äänen litterointi tukee puhujan tunnistusta, palauttaa kokouksen tai puhelun sisällön intuitiivisemmin. Samalla yhteenveto on tarkempi.',
'privateCloudSyncDesc': 'privateCloudSyncDesc':
'Tallenteet ja transkriptiot tallennetaan turvallisesti erillisille pilvipalvelimille. Lähetys ja lataus on täysin salattu yksityisyyden ja turvallisuuden varmistamiseksi.', 'Tallenteet ja transkriptiot tallennetaan turvallisesti erillisille pilvipalvelimille. Lähetys ja lataus on täysin salattu yksityisyyden ja turvallisuuden varmistamiseksi.',
'aiVoiceEnhancementDesc': 'aiVoiceEnhancementDesc':
'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', 'AI-äänenparannus tukee useita melunvaimennus-asetuksia, poistaa älykkäästi taustamelun, parantaa äänen selkeyttä ja toistokvaliteettia.',
'audioImportDesc': 'audioImportDesc':
'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', 'Tuo helposti äänitiedostoja paikallisesta tai kolmannen osapuolen sovelluksista, kuten äänimuistiot, Google Drive jne.',
'multipleExportFormatsDesc': 'multipleExportFormatsDesc':
'Vie äänitallenteet, transkriptiotekstit ja yhteenvedot eri muodoissa (TXT, PDF, JPEG) tarpeesi mukaan.', 'Vie äänitallenteet, transkriptiotekstit ja yhteenvedot eri muodoissa (TXT, PDF, JPEG) tarpeesi mukaan.',
'upgradeMembership': 'Upgrade Your Membership', 'upgradeMembership': 'Päivitä jäsenyytesi',
'yearlySubscription': 'Yearly Subscription', 'yearlySubscription': 'Vuositilaus',
'monthlySubscription': 'Monthly Subscription', 'monthlySubscription': 'Kuukausitilaus',
'proMonthly': 'Pro ¥60/month', 'proMonthly': 'Pro ¥60/kuukausi',
'proMonthlyDesc': 'proMonthlyDesc':
'7-day free trial, then ¥800/year. Cancel anytime before trial ends.', '7 päivän ilmainen kokeilu, sitten ¥800/vuosi. Peruuta milloin tahansa ennen kokeilun päättymistä.',
'sevenDayTrial': '7-day Free Trial', 'sevenDayTrial': '7 päivän ilmainen kokeilu',
'unlimitedMonthly': 'Unlimited ¥120/month', 'unlimitedMonthly': 'Rajoittamaton ¥120/kuukausi',
'unlimitedMonthlyDesc': 'unlimitedMonthlyDesc':
'7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', '7 päivän ilmainen kokeilu, sitten ¥1600/vuosi. Peruuta milloin tahansa ennen kokeilun päättymistä.',
'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'trialNote': '*Ilmainen kokeilu 7 päivää, sitten veloitetaan vuosittain, peruuta milloin tahansa.',
'proPrice': 'Pro ¥120', 'proPrice': 'Pro ¥120',
'proMonthlyPrice': '¥120/month', 'proMonthlyPrice': '¥120/kuukausi',
'subscribe': 'Subscribe', 'subscribe': 'Tilaa',
'unlimitedPrice': 'Unlimited ¥198', 'unlimitedPrice': 'Rajoittamaton ¥198',
'unlimitedMonthlyPrice': '¥198/month', 'unlimitedMonthlyPrice': '¥198/kuukausi',
'upgradeNote': 'upgradeNote':
'*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', '*Tilauksen päivityksen jälkeen alkuperäisen tilauksen jäljellä olevat päivät lasketaan automaattisesti ja hyvitetään maksutilillesi.',
'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'buyMoreTranscriptionTime': 'Osta lisää litterointiaikaa',
'sixThousandMinutes': '6,000 minutes', 'sixThousandMinutes': '6 000 minuuttia',
'threeThousandMinutes': '3,000 minutes', 'threeThousandMinutes': '3 000 minuuttia',
'sixHundredMinutes': '600 minutes', 'sixHundredMinutes': '600 minuuttia',
'oneHundredTwentyMinutes': '120 minutes', 'oneHundredTwentyMinutes': '120 minuuttia',
'validityPeriod': '*Validity Period: ', 'validityPeriod': '*Voimassaoloaika: ',
'validityNote': 'validityNote':
'Activated immediately after purchase, valid for 2 years after activation.', 'Aktivoituu heti oston jälkeen, voimassa 2 vuotta aktivoinnista.',
'purchase': 'Purchase', 'purchase': 'Osta',
// Meeting模块 - 录音语言 // Meeting模块 - 录音语言
'recordLanguage': 'Tallennuskieli', 'recordLanguage': 'Tallennuskieli',
'cantonese': 'Cantonese', 'cantonese': 'Kantoninkiina',
'sichuan': 'Sichuan Dialect', 'sichuan': 'Sichuanin murre',
'shanghai': 'Shanghai Dialect', 'shanghai': 'Shanghain murre',
// Meeting模块 - 错误提示 // Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Unknown Language', 'meetingUnknownLanguage': 'Tuntematon kieli',
'analysisFailed': 'Analyysi epäonnistui, yritä myöhemmin uudelleen', 'analysisFailed': 'Analyysi epäonnistui, yritä myöhemmin uudelleen',
'transcriptionFailed': 'Litterointi epäonnistui, yritä myöhemmin uudelleen', 'transcriptionFailed': 'Litterointi epäonnistui, yritä myöhemmin uudelleen',
'summaryFailed': 'Yhteenveto epäonnistui, yritä myöhemmin uudelleen', 'summaryFailed': 'Yhteenveto epäonnistui, yritä myöhemmin uudelleen',
@ -817,13 +817,13 @@ const Map<String, String> fiFI = {
"deviceTypeClassicBluetoothHeadset": "Perinteinen Bluetooth-kuuloke", "deviceTypeClassicBluetoothHeadset": "Perinteinen Bluetooth-kuuloke",
"deviceTypeBleBluetoothHeadset": "BLE Bluetooth-kuuloke", "deviceTypeBleBluetoothHeadset": "BLE Bluetooth-kuuloke",
"deviceTypeSmartVoiceRecorder": "Älykäs äänitallennin", "deviceTypeSmartVoiceRecorder": "Älykäs äänitallennin",
"deviceTypeSmartEye": "Smart Glasses", "deviceTypeSmartEye": "Älylasit",
"unbind": "Poista sidonta", "unbind": "Poista sidonta",
"noDevicesBound": "Ei sidottuja laitteita vielä", "noDevicesBound": "Ei sidottuja laitteita vielä",
"pleaseBindDeviceFirst": "Sido ensin laite hallintaa varten", "pleaseBindDeviceFirst": "Sido ensin laite hallintaa varten",
"noMacAddress": "No MAC Address", "noMacAddress": "Ei MAC-osoitetta",
"licenseCode": "License Code", "licenseCode": "Lisenssikoodi",
"confirmUnbind": "Confirm Unbind", "confirmUnbind": "Vahvista sidonnan poisto",
"confirmUnbindMessage": "confirmUnbindMessage":
"Haluatko varmasti poistaa laitteen \"{deviceName}\" sidonnan?", "Haluatko varmasti poistaa laitteen \"{deviceName}\" sidonnan?",
"confirmUnbindAction": "Poista sidonta", "confirmUnbindAction": "Poista sidonta",
@ -1164,8 +1164,8 @@ const Map<String, String> fiFI = {
'deleteAccount': 'Poista tili', 'deleteAccount': 'Poista tili',
'deleteAccountTips': 'deleteAccountTips':
'Oletko varma, että haluat poistaa tilisi pysyvästi? Tätä toimintoa ei voi kumota.', 'Oletko varma, että haluat poistaa tilisi pysyvästi? Tätä toimintoa ei voi kumota.',
'clean': 'Clear Cache', 'clean': 'Tyhjennä välimuisti',
'cleanTips': 'Are you sure you want to clear personal cache?', 'cleanTips': 'Haluatko varmasti tyhjentää henkilökohtaisen välimuistin?',
'networkConnectionFailed': 'networkConnectionFailed':
'Verkkoyhteys epäonnistui, tarkista verkkoyhteyden asetukset ja yritä uudelleen', 'Verkkoyhteys epäonnistui, tarkista verkkoyhteyden asetukset ja yritä uudelleen',
'serverTemporarilyUnavailable': 'serverTemporarilyUnavailable':
@ -1683,15 +1683,15 @@ const Map<String, String> fiFI = {
"东帝汶": "Itä-Timor", "东帝汶": "Itä-Timor",
"斐济": "Fidži", "斐济": "Fidži",
"所罗门群岛": "Salomonsaaret", "所罗门群岛": "Salomonsaaret",
"刚果民主共和国": "Democratic Republic of the Congo", "刚果民主共和国": "Kongon demokraattinen tasavalta",
"安哥拉": "Angola", "安哥拉": "Angola",
"苏丹": "Sudan", "苏丹": "Sudan",
"马尔代夫": "Maldives", "马尔代夫": "Malediivit",
"不丹": "Bhutan", "不丹": "Bhutan",
"摩纳哥": "Monaco", "摩纳哥": "Monaco",
"圣马力诺": "San Marino", "圣马力诺": "San Marino",
"牙买加": "Jamaica", "牙买加": "Jamaika",
"巴哈马": "Bahamas", "巴哈马": "Bahama",
"巴布亚新几内亚": "Papua New Guinea", "巴布亚新几内亚": "Papua-Uusi-Guinea",
"萨摩亚": "Samoa", "萨摩亚": "Samoa",
}; };

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

@ -49,13 +49,13 @@ const Map<String, String> frFR = {
"russian": "Russe", "russian": "Russe",
"vietnamese": "Vietnamien", "vietnamese": "Vietnamien",
"italian": "Italien", "italian": "Italien",
"hindi": "Hindi", "hindi": 'Hindi',
"indonesian": "Indonésien", "indonesian": "Indonésien",
"thai": "Thaï", "thai": "Thaï",
"malay": "Malais", "malay": "Malais",
"turkish": "Turc", "turkish": "Turc",
"polish": "Polonais", "polish": "Polonais",
"filipino": "Filipino", "filipino": 'Filipino',
"dutch": "Néerlandais", "dutch": "Néerlandais",
"swedish": "Suédois", "swedish": "Suédois",
"danish": "Danois", "danish": "Danois",
@ -121,7 +121,7 @@ const Map<String, String> frFR = {
"reconnect": "Reconnecter", "reconnect": "Reconnecter",
"connectingDevice": "Connexion à l'appareil...", "connectingDevice": "Connexion à l'appareil...",
"connectedTo": "Connecté à", "connectedTo": "Connecté à",
"signal": "Signal", "signal": 'Signal',
"deviceId": "ID de l'appareil", "deviceId": "ID de l'appareil",
"firmwareVersion": "Version du firmware", "firmwareVersion": "Version du firmware",
"disconnectedDevice": "disconnectedDevice":
@ -160,7 +160,7 @@ const Map<String, String> frFR = {
"zeroSignal": "Aucun signal", "zeroSignal": "Aucun signal",
"good": "Bon", "good": "Bon",
"fine": "Excellent", "fine": "Excellent",
"excellent": "Excellent", "excellent": 'Excellent',
"unknown": "Inconnu", "unknown": "Inconnu",
'bluetoothTurnedOff': 'Bluetooth est désactivé, veuillez l\'activer', 'bluetoothTurnedOff': 'Bluetooth est désactivé, veuillez l\'activer',
'bluetoothOff': 'Bluetooth désactivé', 'bluetoothOff': 'Bluetooth désactivé',
@ -260,17 +260,18 @@ const Map<String, String> frFR = {
"loadFailed": "Échec du chargement", "loadFailed": "Échec du chargement",
"statsLoadFailedTryLater": "statsLoadFailedTryLater":
"Échec du chargement des statistiques. Veuillez réessayer plus tard.", "Échec du chargement des statistiques. Veuillez réessayer plus tard.",
"cleanupComplete": "Cleanup Complete", "cleanupComplete": "Nettoyage terminé",
"cleanedOldData": "Cleaned data older than 90 days", "cleanedOldData": "Données de plus de 90 jours supprimées",
"exportFeature": "Export Feature", "exportFeature": "Fonction d'exportation",
"exportInDevelopment": "Data export is under development", "exportInDevelopment":
"L'exportation de données est en cours de développement",
// 商品模块 - 通用 // 商品模块 - 通用
'availablePackages': 'Available Packages', 'availablePackages': 'Forfaits disponibles',
'remainingQuota': 'Remaining Quota', 'remainingQuota': 'Quota restant',
'totalQuota': 'Total Quota', 'totalQuota': 'Quota total',
'remaining': 'Remaining', 'remaining': 'Restant',
'featureDescription': 'Feature Description', 'featureDescription': 'Description de la fonctionnalité',
'paymentSuccess': 'Paiement réussi', 'paymentSuccess': 'Paiement réussi',
'paymentFailed': 'Échec du paiement', 'paymentFailed': 'Échec du paiement',
'gotIt': 'Compris', 'gotIt': 'Compris',
@ -338,88 +339,95 @@ const Map<String, String> frFR = {
'Votre abonnement IA a expiré, veuillez aller à la page de recharge pour le renouveler.', 'Votre abonnement IA a expiré, veuillez aller à la page de recharge pour le renouveler.',
// 商品模块 - AI商品页 // 商品模块 - AI商品页
'musicAndRecommendation': 'Music & Recommendation', 'musicAndRecommendation': 'Musique & Recommandations',
'navigationAndRoutes': 'Navigation & Routes', 'navigationAndRoutes': 'Navigation & Itinéraires',
'nearbySearch': 'Nearby Search', 'nearbySearch': 'Recherche à proximité',
'newsInformation': 'News', 'newsInformation': 'Actualités',
'communicationAssistant': 'Communication Assistant', 'communicationAssistant': 'Assistant de communication',
'aiHeaderDesc1': 'aiHeaderDesc1':
'Quota de conversation plus élevé, plus d’appels d’outils, contexte étendu.', "Quota de conversation plus élevé, plus d\u2019appels d\u2019outils, contexte étendu.",
'aiHeaderDesc2': 'aiHeaderDesc2':
'Adapté aux questions-réponses avec l’agent, aux résumés, aux analyses et à l’exécution de tâches.', "Adapté aux questions-réponses avec l\u2019agent, aux résumés, aux analyses et à l\u2019exécution de tâches.",
'musicSearchPlaybackControl': 'Music library search and playback control', 'musicSearchPlaybackControl':
'Recherche dans la bibliothèque musicale et contrôle de lecture',
'smartPlaylistAndSimilarRecommendations': 'smartPlaylistAndSimilarRecommendations':
'Smart playlist and similar song recommendations', 'Listes de lecture intelligentes et recommandations de chansons similaires',
'routePlanningAndCongestionAvoidance': 'routePlanningAndCongestionAvoidance':
'Route planning and congestion avoidance', 'Planification d\'itinéraire et évitement des embouteillages',
'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'voiceBroadcastAndWaypoints':
'realTimeWeatherForecast': 'Real-time weather and forecast', 'Diffusion vocale et paramètres de points de passage',
'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', 'realTimeWeatherForecast': 'Météo en temps réel et prévisions',
'poiSearchFoodGasParking': 'POI search: dining / gas / parking', 'clothingAdviceAndTravelReminders':
'ratingsHoursAndDirectRoutes': 'Ratings, business hours, and direct routing', 'Conseils vestimentaires et rappels de voyage',
'hotNewsAndTopicOverview': 'Hot news and topic overview', 'poiSearchFoodGasParking':
'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'Recherche de POI : restauration / carburant / stationnement',
'helpCallAndSMS': 'Help with calls and SMS', 'ratingsHoursAndDirectRoutes':
'Avis, horaires d\'ouverture et itinéraires directs',
'hotNewsAndTopicOverview': 'Actualités populaires et aperçu des sujets',
'longArticleSummariesAndKeyPoints':
'Résumés d\'articles longs et points clés',
'helpCallAndSMS': 'Aide pour les appels et les SMS',
'templatedMessagesAndScheduleReminders': 'templatedMessagesAndScheduleReminders':
'Template messages and schedule reminders', 'Messages prédéfinis et rappels de planning',
'aiDisclaimer': 'aiDisclaimer':
'Les fonctionnalités dépendent des autorisations de l’appareil, de la disponibilité du service et des conditions réseau.', "Les fonctionnalités dépendent des autorisations de l’appareil, de la disponibilité du service et des conditions réseau.",
// 商品模块 - 翻译商品页 // 商品模块 - 翻译商品页
'realtimeTranscription': 'Real-time Transcription', 'realtimeTranscription': 'Transcription en temps réel',
'sceneLexicon': 'Scenario Glossary', 'sceneLexicon': 'Glossaire de scénarios',
'subtitleDisplay': 'Subtitles', 'subtitleDisplay': 'Sous-titres',
'transHeaderDesc1': 'transHeaderDesc1':
'Interprétation simultanée en temps réel et traduction de texte avec voix à faible latence.', 'Interprétation simultanée en temps réel et traduction de texte avec voix à faible latence.',
'transHeaderDesc2': 'transHeaderDesc2':
'Adapté aux voyages, aux affaires, aux discours et à l’enseignement.', "Adapté aux voyages, aux affaires, aux discours et à l\u2019enseignement.",
'translateZhEn': 'Traduction chinois–anglais', 'translateZhEn': 'Traduction chinois–anglais',
'lowLatencyVoiceBroadcast': 'Diffusion vocale à faible latence', 'lowLatencyVoiceBroadcast': 'Diffusion vocale à faible latence',
'multiLangTextTranslation': 'Traduction de texte multilingue', 'multiLangTextTranslation': 'Traduction de texte multilingue',
'termOptimizationContextPreserve': 'termOptimizationContextPreserve':
'Terminology optimization and context preservation', 'Optimisation terminologique et préservation du contexte',
'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'lexiconTourBusinessLife': 'Lexiques Voyage/Affaires/Vie quotidienne',
'personalVocabularyMemory': 'Personal vocabulary memory', 'personalVocabularyMemory': 'Mémorisation du vocabulaire personnel',
'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'conversationSubtitleLargeText':
'colorHighContrast': 'High color contrast', 'Sous-titres de conversation / Mode grand texte',
'colorHighContrast': 'Contraste de couleurs élevé',
'transDisclaimer': 'transDisclaimer':
'Les performances de traduction dépendent du microphone, de la latence réseau et du bruit ambiant.', 'Les performances de traduction dépendent du microphone, de la latence réseau et du bruit ambiant.',
// 商品模块 - 会议商品页 // 商品模块 - 会议商品页
'meetingRecording': 'Enregistrement de réunion', 'meetingRecording': 'Enregistrement de réunion',
'transcriptionAndSummary': 'Transcription & Summary', 'transcriptionAndSummary': 'Transcription et résumé',
'keywordSearch': 'Keyword Search', 'keywordSearch': 'Recherche par mots-clés',
'collaborationSharing': 'Collaboration & Sharing', 'collaborationSharing': 'Collaboration et partage',
'meetingHeaderDesc1': 'meetingHeaderDesc1':
'Enregistrement audio, transcription, recherche par mots-clés et résumé automatique pour améliorer l’efficacité des réunions.', 'Enregistrement audio, transcription, recherche par mots-clés et résumé automatique pour améliorer l’efficacité des réunions.',
'meetingHeaderDesc2': 'meetingHeaderDesc2':
'Suitable for business meetings, class notes, and interview minutes.', 'Convient aux réunions professionnelles, aux notes de cours et aux comptes rendus d’entretien.',
'meetingAutoRecording': 'Enregistrement automatique et segmentation', 'meetingAutoRecording': 'Enregistrement automatique et segmentation',
'meetingSpeakerTagging': 'Speaker labeling', 'meetingSpeakerTagging': 'Identification des intervenants',
'meetingLongAudioTranscription': 'Long audio transcription', 'meetingLongAudioTranscription': 'Transcription d’audio long',
'meetingKeyPointSummary': 'Key point extraction', 'meetingKeyPointSummary': 'Extraction des points clés',
'meetingTopicNameSearch': 'Search by topic/name', 'meetingTopicNameSearch': 'Recherche par sujet/nom',
'meetingTimelineJump': 'Timeline jump', 'meetingTimelineJump': 'Saut dans la chronologie',
'meetingExportSummary': 'Export minutes', 'meetingExportSummary': 'Exporter le compte rendu',
'meetingMultiPlatformShare': 'Share across platforms', 'meetingMultiPlatformShare': 'Partager sur plusieurs plateformes',
'meetingDisclaimer': 'meetingDisclaimer':
'À utiliser dans des environnements calmes ; les performances dépendent du microphone et du réseau.', 'À utiliser dans des environnements calmes ; les performances dépendent du microphone et du réseau.',
// 商品模块 - VIP会员页 // 商品模块 - VIP会员页
'benefitsOverview': 'Benefits overview', 'benefitsOverview': 'Aperçu des avantages',
'higherQuota': 'Higher usage quota', 'higherQuota': 'Quota d’utilisation plus élevé',
'lowerUnitPrice': 'Lower unit price', 'lowerUnitPrice': 'Prix unitaire plus bas',
'priorityService': 'Priority service', 'priorityService': 'Service prioritaire',
'exclusiveSupportChannel': 'Dedicated support channel', 'exclusiveSupportChannel': 'Canal d’assistance dédié',
'fastResponse': 'Fast issue response', 'fastResponse': 'Réponse rapide aux problèmes',
'eventsAndDiscounts': 'Events and discounts', 'eventsAndDiscounts': 'Événements et réductions',
'memberExclusiveEvents': 'Member-exclusive events', 'memberExclusiveEvents': 'Événements réservés aux membres',
'longTermDiscountPlan': 'Long-term discount plan', 'longTermDiscountPlan': 'Plan de réduction long terme',
'generalPrivileges': 'General privileges', 'generalPrivileges': 'Avantages généraux',
'earlyAccessNewFeatures': 'Early access to new features', 'earlyAccessNewFeatures': 'Accès anticipé aux nouvelles fonctionnalités',
'crossDeviceSync': 'Synchronisation multi‑appareils', 'crossDeviceSync': 'Synchronisation multi‑appareils',
'vipDisclaimer': 'vipDisclaimer':
'Actual benefits depend on the package details and may change with versions.', 'Les avantages réels dépendent des détails du forfait et peuvent évoluer selon les versions.',
// 商品模块 - 商品名称与描述 // 商品模块 - 商品名称与描述
'ai_001_name': 'IA Basique 100', 'ai_001_name': 'IA Basique 100',
@ -443,46 +451,46 @@ const Map<String, String> frFR = {
'trans_003_desc': 'Inclut 1000 traductions (voix/texte).', 'trans_003_desc': 'Inclut 1000 traductions (voix/texte).',
// 商品模块 - 页脚 // 商品模块 - 页脚
'appNameProvider': 'App: VoiTrans · Provided by: VoiTrans', 'appNameProvider': 'Application : VoiTrans · Fourni par : VoiTrans',
'iapCustomerServiceQQLabel': 'IAP customer service QQ: @qq', 'iapCustomerServiceQQLabel': 'Service client IAP QQ : @qq',
'copyrightVoitrans': '© 2025 Voitrans Technologies', 'copyrightVoitrans': '© 2025 Voitrans Technologies',
// 新手引导 // 新手引导
'skip': "Ignorer", 'skip': "Ignorer",
'next': 'Next', 'next': 'Suivant',
'sayLilyHint': "Say \"Lily Lily\" to the mic", 'sayLilyHint': "Say \"Lily Lily\" to the mic",
'imHere': "I’m here~", 'imHere': 'Je suis là~',
'guideWelcomeWakeAI': "Welcome to Voitrans! First, wake your AI “Lily”.", 'guideWelcomeWakeAI': 'Bienvenue sur Voitrans ! Réveillez d’abord votre IA “Lily”.',
'aiReplyCompleted': "Lily has finished the reply!", 'aiReplyCompleted': 'Lily a terminé la réponse !',
'aiThinking': "Lily is thinking…", 'aiThinking': 'Lily réfléchit…',
'guideAwakenSuccess': "Great! Lily is awake—ask it to help.", 'guideAwakenSuccess': 'Super ! Lily est réveillée—demandez-lui de l’aide.',
'confirmInput': "Confirm Input", 'confirmInput': 'Confirmer la saisie',
'guideClickSendPrefix': "Tap send, ", 'guideClickSendPrefix': 'Appuyez sur envoyer, ',
'guideWeatherStart': "Tell Lily: “What’s the weather today?”", 'guideWeatherStart': 'Dites à Lily : “Quel temps fait-il aujourd’hui ?”',
'guideWeatherInput': "What’s the weather today?", 'guideWeatherInput': 'Quel temps fait-il aujourd’hui ?',
'guideWeatherSend': "Lily will report the weather in real time", 'guideWeatherSend': 'Lily annoncera la météo en temps réel',
'guideWeatherEnd': "Lily can report weather live—try other commands", 'guideWeatherEnd': 'Lily peut donner la météo en direct—essayez d’autres commandes',
'guideMusicStart': "Tell Lily: “Play some rock music”", 'guideMusicStart': 'Dites à Lily : “Joue de la musique rock”',
'guideMusicInput': "Play some rock music", 'guideMusicInput': 'Joue de la musique rock',
'guideMusicSend': "Lily will find music for you", 'guideMusicSend': 'Lily trouvera de la musique pour vous',
'guideMusicEnd': "Lily found music—try other commands", 'guideMusicEnd': 'Lily a trouvé de la musique—essayez d’autres commandes',
'guideNavStart': "Tell Lily: “Navigate to Shenzhen Airport”", 'guideNavStart': 'Dites à Lily : “Navigue vers l’aéroport de Shenzhen”',
'guideNavInput': "Navigate to Shenzhen Airport", 'guideNavInput': 'Navigue vers l’aéroport de Shenzhen',
'guideNavSend': "Lily will plan the route", 'guideNavSend': 'Lily planifiera l’itinéraire',
'guideNavEnd': "Navigation set—try other commands", 'guideNavEnd': 'Navigation définie—essayez d’autres commandes',
'guideMeetingStart': 'guideMeetingStart':
"Tell Lily: “Create a meeting reminder for 3pm tomorrow”", 'Dites à Lily : “Crée un rappel de réunion pour demain à 15h”',
'guideMeetingInput': "Create a meeting reminder for 3pm tomorrow", 'guideMeetingInput': 'Crée un rappel de réunion pour demain à 15h',
'guideMeetingSend': "Lily will create a meeting reminder", 'guideMeetingSend': 'Lily créera un rappel de réunion',
'guideMeetingEnd': "Reminder created—try other commands", 'guideMeetingEnd': 'Rappel créé—essayez d’autres commandes',
'guidePhoneStart': "Tell Lily: “Call Mom”", 'guidePhoneStart': 'Dites à Lily : “Appelle Maman”',
'guidePhoneInput': "Call Mom", 'guidePhoneInput': 'Appelle Maman',
'guidePhoneSend': "Lily will make the call", 'guidePhoneSend': 'Lily passera l’appel',
'guidePhoneEnd': "Call placed—try other commands", 'guidePhoneEnd': 'Appel passé—essayez d’autres commandes',
'guideSmsStart': "Tell Lily: “Send Dad a text: I’ll be home for dinner”", 'guideSmsStart': 'Dites à Lily : “Envoie un SMS à Papa : je rentrerai pour le dîner”',
'guideSmsInput': "Text Dad: I’ll be home for dinner", 'guideSmsInput': 'SMS à Papa : je rentrerai pour le dîner',
'guideSmsSend': "Lily will send the message", 'guideSmsSend': 'Lily enverra le message',
'guideSmsEnd': "Message sent—voice control is convenient", 'guideSmsEnd': 'Message envoyé—la commande vocale est pratique',
// Meeting模块 - 首页与导航 // Meeting模块 - 首页与导航
"startMeeting": "Démarrer la réunion", "startMeeting": "Démarrer la réunion",
@ -715,42 +723,43 @@ const Map<String, String> frFR = {
'Importez facilement des fichiers audio depuis le stockage local ou des applications tierces, comme les mémos vocaux, Google Drive, etc.', 'Importez facilement des fichiers audio depuis le stockage local ou des applications tierces, comme les mémos vocaux, Google Drive, etc.',
'multipleExportFormatsDesc': 'multipleExportFormatsDesc':
'Exportez vos enregistrements audio, textes de transcription et résumés dans différents formats (TXT, PDF, JPEG) selon vos besoins.', 'Exportez vos enregistrements audio, textes de transcription et résumés dans différents formats (TXT, PDF, JPEG) selon vos besoins.',
'upgradeMembership': 'Upgrade Your Membership', 'upgradeMembership': 'Mettre à niveau votre abonnement',
'yearlySubscription': 'Yearly Subscription', 'yearlySubscription': 'Abonnement annuel',
'monthlySubscription': 'Monthly Subscription', 'monthlySubscription': 'Abonnement mensuel',
'proMonthly': 'Pro ¥60/month', 'proMonthly': 'Pro ¥60/mois',
'proMonthlyDesc': 'proMonthlyDesc':
'7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'Essai gratuit de 7 jours, puis ¥800/an. Annulez à tout moment avant la fin de l’essai.',
'sevenDayTrial': '7-day Free Trial', 'sevenDayTrial': 'Essai gratuit de 7 jours',
'unlimitedMonthly': 'Unlimited ¥120/month', 'unlimitedMonthly': 'Illimité ¥120/mois',
'unlimitedMonthlyDesc': 'unlimitedMonthlyDesc':
'7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'Essai gratuit de 7 jours, puis ¥1600/an. Annulez à tout moment avant la fin de l’essai.',
'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'trialNote':
'*Essai gratuit pendant 7 jours, puis facturation annuelle ; annulez à tout moment.',
'proPrice': 'Pro ¥120', 'proPrice': 'Pro ¥120',
'proMonthlyPrice': '¥120/month', 'proMonthlyPrice': '¥120/mois',
'subscribe': 'Subscribe', 'subscribe': 'S’abonner',
'unlimitedPrice': 'Unlimited ¥198', 'unlimitedPrice': 'Illimité ¥198',
'unlimitedMonthlyPrice': '¥198/month', 'unlimitedMonthlyPrice': '¥198/mois',
'upgradeNote': 'upgradeNote':
'*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', '*Après la mise à niveau de l’abonnement, les jours restants de l’abonnement initial seront automatiquement calculés et remboursés sur votre compte de paiement.',
'buyMoreTranscriptionTime': 'Acheter plus de temps de transcription', 'buyMoreTranscriptionTime': 'Acheter plus de temps de transcription',
'sixThousandMinutes': '6,000 minutes', 'sixThousandMinutes': '6 000 minutes',
'threeThousandMinutes': '3,000 minutes', 'threeThousandMinutes': '3 000 minutes',
'sixHundredMinutes': '600 minutes', 'sixHundredMinutes': '600 minutes',
'oneHundredTwentyMinutes': '120 minutes', 'oneHundredTwentyMinutes': '120 minutes',
'validityPeriod': '*Validity Period: ', 'validityPeriod': '*Période de validité : ',
'validityNote': 'validityNote':
'Activated immediately after purchase, valid for 2 years after activation.', 'Activé immédiatement après l’achat, valable pendant 2 ans après activation.',
'purchase': 'Purchase', 'purchase': 'Acheter',
// Meeting模块 - 录音语言 // Meeting模块 - 录音语言
'recordLanguage': 'Langue d’enregistrement', 'recordLanguage': 'Langue d’enregistrement',
'cantonese': 'Cantonese', 'cantonese': 'Cantonais',
'sichuan': 'Sichuan Dialect', 'sichuan': 'Dialecte du Sichuan',
'shanghai': 'Shanghai Dialect', 'shanghai': 'Dialecte de Shanghai',
// Meeting模块 - 错误提示 // Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Unknown Language', 'meetingUnknownLanguage': 'Langue inconnue',
'analysisFailed': "Échec de l'analyse, veuillez réessayer plus tard", 'analysisFailed': "Échec de l'analyse, veuillez réessayer plus tard",
'transcriptionFailed': 'transcriptionFailed':
'Échec de la transcription, veuillez réessayer plus tard', 'Échec de la transcription, veuillez réessayer plus tard',
@ -791,7 +800,7 @@ const Map<String, String> frFR = {
"permissionManagementInfo": "permissionManagementInfo":
"Gérer les paramètres d'autorisation de l'application", // 管理应用权限设置 "Gérer les paramètres d'autorisation de l'application", // 管理应用权限设置
"aboutApplication": "À propos", "aboutApplication": "À propos",
"versions": "Version", "versions": 'Version',
"checkUpdates": "Vérifier les mises à jour", "checkUpdates": "Vérifier les mises à jour",
"selectLanguage": "Sélectionner la langue", "selectLanguage": "Sélectionner la langue",
"voiceService": "Service vocal", "voiceService": "Service vocal",
@ -957,7 +966,7 @@ const Map<String, String> frFR = {
"driving": "Conduite", "driving": "Conduite",
"walking": "Marche", "walking": "Marche",
"bicycling": "Vélo", "bicycling": "Vélo",
"tsransit": "Transit", "tsransit": 'Transit',
// Agent模块 - 导航选择 // Agent模块 - 导航选择
'selectNavigationApp': 'Choisir une application de navigation', 'selectNavigationApp': 'Choisir une application de navigation',
@ -1030,7 +1039,7 @@ const Map<String, String> frFR = {
"lightSnow": "Neige légère", "lightSnow": "Neige légère",
"moderateSnow": "Neige modérée", "moderateSnow": "Neige modérée",
"heavySnow": "Neige forte", "heavySnow": "Neige forte",
"blizzard": "Blizzard", "blizzard": 'Blizzard',
"fog": "Brouillard", "fog": "Brouillard",
"haze": "Brume", "haze": "Brume",
"strongWind": "Vent fort", "strongWind": "Vent fort",
@ -1115,9 +1124,9 @@ const Map<String, String> frFR = {
"processingFailed": "Échec du traitement", "processingFailed": "Échec du traitement",
"imageProcessingOrTranslationFailed": "imageProcessingOrTranslationFailed":
"Le traitement de l’image ou la traduction a échoué. Veuillez réessayer.\nErreur : {error}", "Le traitement de l’image ou la traduction a échoué. Veuillez réessayer.\nErreur : {error}",
"imageTooLarge": "Image size exceeds 4MB limit", "imageTooLarge": 'La taille de l’image dépasse la limite de 4 Mo',
"imageTooLargeHint": "imageTooLargeHint":
"Image size exceeds 4MB. Reduce quality or dimensions and retry", 'La taille de l’image dépasse 4 Mo. Réduisez la qualité ou les dimensions et réessayez',
"emptyTranslationResult": "emptyTranslationResult":
"L’API de traduction d’images a renvoyé un résultat vide", "L’API de traduction d’images a renvoyé un résultat vide",
"imageTranslationFailedTryLater": "imageTranslationFailedTryLater":
@ -1174,7 +1183,7 @@ const Map<String, String> frFR = {
// 个人资料模块 // 个人资料模块
"editProfile": "Modifier le profil", "editProfile": "Modifier le profil",
"avatar": "Avatar", "avatar": 'Avatar',
"nickname": "Pseudo", "nickname": "Pseudo",
"save": "Enregistrer", "save": "Enregistrer",
"about": "À propos", "about": "À propos",
@ -1252,7 +1261,7 @@ const Map<String, String> frFR = {
'sms': 'SMS', 'sms': 'SMS',
'contacts': 'Contacts', 'contacts': 'Contacts',
'notification': 'Notification', 'notification': 'Notification',
'alarm': 'Alarm', 'alarm': 'Alarme',
'calendarWrite': 'Écriture calendrier', 'calendarWrite': 'Écriture calendrier',
'calendarFullAccess': 'Accès complet au calendrier', 'calendarFullAccess': 'Accès complet au calendrier',
'locationInfo': 'Informations de localisation', 'locationInfo': 'Informations de localisation',
@ -1599,32 +1608,32 @@ const Map<String, String> frFR = {
"芬兰语": "Finnois", "芬兰语": "Finnois",
"挪威语": "Norvégien", "挪威语": "Norvégien",
"克罗地亚语": "Croate", "克罗地亚语": "Croate",
"加泰隆语": "Catalan", "加泰隆语": 'Catalan',
"阿拉伯语": "Arabe", "阿拉伯语": "Arabe",
"泰语": "Thaï", "泰语": "Thaï",
"越南语": "Vietnamien", "越南语": "Vietnamien",
"印尼语": "Indonésien", "印尼语": "Indonésien",
"印地语": "Hindi", "印地语": 'Hindi',
"土耳其语": "Turc", "土耳其语": "Turc",
"马来语": "Malais", "马来语": "Malais",
"孟加拉语": "Bengali", "孟加拉语": 'Bengali',
"泰米尔语": "Tamil", "泰米尔语": 'Tamoul',
"泰卢固语": "Telugu", "泰卢固语": 'Télougou',
"马拉提语": "Marathi", "马拉提语": 'Marathi',
"乌尔都语": "Ourdou", "乌尔都语": "Ourdou",
"波斯语": "Persan", "波斯语": "Persan",
"斯瓦希里语": "Swahili", "斯瓦希里语": 'Swahili',
// 国家列表 // 国家列表
"邮箱": "E-mail", "邮箱": "E-mail",
"中国": "Chine", "中国": "Chine",
"美国": "États-Unis", "美国": "États-Unis",
"加拿大": "Canada", "加拿大": 'Canada',
"俄罗斯": "Russie", "俄罗斯": "Russie",
"英国": "Royaume-Uni", "英国": "Royaume-Uni",
"德国": "Allemagne", "德国": "Allemagne",
"意大利": "Italie", "意大利": "Italie",
"法国": "France", "法国": 'France',
"西班牙": "Espagne", "西班牙": "Espagne",
"南非": "Afrique du Sud", "南非": "Afrique du Sud",
"沙特阿拉伯": "Arabie Saoudite", "沙特阿拉伯": "Arabie Saoudite",
@ -1634,10 +1643,10 @@ const Map<String, String> frFR = {
"新加坡": "Singapour", "新加坡": "Singapour",
"马来西亚": "Malaisie", "马来西亚": "Malaisie",
"泰国": "Thaïlande", "泰国": "Thaïlande",
"越南": "Vietnam", "越南": 'Vietnam',
"印度": "Inde", "印度": "Inde",
"巴基斯坦": "Pakistan", "巴基斯坦": 'Pakistan',
"菲律宾": "Philippines", "菲律宾": 'Philippines',
"印度尼西亚": "Indonésie", "印度尼西亚": "Indonésie",
"阿联酋": "Émirats Arabes Unis", "阿联酋": "Émirats Arabes Unis",
"墨西哥": "Mexique", "墨西哥": "Mexique",
@ -1663,9 +1672,9 @@ const Map<String, String> frFR = {
"秘鲁": "Pérou", "秘鲁": "Pérou",
"智利": "Chili", "智利": "Chili",
"哥伦比亚": "Colombie", "哥伦比亚": "Colombie",
"委内瑞拉": "Venezuela", "委内瑞拉": 'Venezuela',
"葡萄牙": "Portugal", "葡萄牙": 'Portugal',
"卢森堡": "Luxembourg", "卢森堡": 'Luxembourg',
"爱尔兰": "Irlande", "爱尔兰": "Irlande",
"冰岛": "Islande", "冰岛": "Islande",
"阿尔巴尼亚": "Albanie", "阿尔巴尼亚": "Albanie",
@ -1676,61 +1685,61 @@ const Map<String, String> frFR = {
"立陶宛": "Lituanie", "立陶宛": "Lituanie",
"拉脱维亚": "Lettonie", "拉脱维亚": "Lettonie",
"爱沙尼亚": "Estonie", "爱沙尼亚": "Estonie",
"乌克兰": "Ukraine", "乌克兰": 'Ukraine',
"塞尔维亚": "Serbie", "塞尔维亚": "Serbie",
"克罗地亚": "Croatie", "克罗地亚": "Croatie",
"斯洛文尼亚": "Slovénie", "斯洛文尼亚": "Slovénie",
"捷克": "République Tchèque", "捷克": "République Tchèque",
"斯洛伐克": "Slovaquie", "斯洛伐克": "Slovaquie",
"危地马拉": "Guatemala", "危地马拉": 'Guatemala',
"萨尔瓦多": "El Salvador", "萨尔瓦多": 'El Salvador',
"洪都拉斯": "Honduras", "洪都拉斯": 'Honduras',
"尼加拉瓜": "Nicaragua", "尼加拉瓜": 'Nicaragua',
"哥斯达黎加": "Costa Rica", "哥斯达黎加": 'Costa Rica',
"巴拿马": "Panama", "巴拿马": 'Panama',
"海地": "Haïti", "海地": "Haïti",
"玻利维亚": "Bolivie", "玻利维亚": "Bolivie",
"厄瓜多尔": "Équateur", "厄瓜多尔": "Équateur",
"巴拉圭": "Paraguay", "巴拉圭": 'Paraguay',
"乌拉圭": "Uruguay", "乌拉圭": 'Uruguay',
"摩洛哥": "Maroc", "摩洛哥": "Maroc",
"阿尔及利亚": "Algérie", "阿尔及利亚": "Algérie",
"突尼斯": "Tunisie", "突尼斯": "Tunisie",
"尼日利亚": "Nigeria", "尼日利亚": 'Nigéria',
"加纳": "Ghana", "加纳": 'Ghana',
"埃塞俄比亚": "Éthiopie", "埃塞俄比亚": "Éthiopie",
"肯尼亚": "Kenya", "肯尼亚": "Kenya",
"坦桑尼亚": "Tanzanie", "坦桑尼亚": "Tanzanie",
"乌干达": "Ouganda", "乌干达": "Ouganda",
"孟加拉国": "Bangladesh", "孟加拉国": 'Bangladesh',
"以色列": "Israël", "以色列": "Israël",
"黎巴嫩": "Liban", "黎巴嫩": "Liban",
"约旦": "Jordanie", "约旦": "Jordanie",
"伊拉克": "Irak", "伊拉克": "Irak",
"科威特": "Koweït", "科威特": "Koweït",
"巴林": "Bahreïn", "巴林": "Bahreïn",
"卡塔尔": "Qatar", "卡塔尔": 'Qatar',
"阿曼": "Oman", "阿曼": 'Oman',
"阿富汗": "Afghanistan", "阿富汗": 'Afghanistan',
"斯里兰卡": "Sri Lanka", "斯里兰卡": 'Sri Lanka',
"缅甸": "Myanmar", "缅甸": "Myanmar",
"尼泊尔": "Népal", "尼泊尔": "Népal",
"蒙古": "Mongolie", "蒙古": "Mongolie",
"柬埔寨": "Cambodge", "柬埔寨": "Cambodge",
"老挝": "Laos", "老挝": 'Laos',
"文莱": "Brunei", "文莱": 'Brunéi',
"东帝汶": "Timor Oriental", "东帝汶": "Timor Oriental",
"斐济": "Fidji", "斐济": "Fidji",
"所罗门群岛": "Îles Salomon", "所罗门群岛": "Îles Salomon",
"刚果民主共和国": "Democratic Republic of the Congo", "刚果民主共和国": 'République démocratique du Congo',
"安哥拉": "Angola", "安哥拉": 'Angola',
"苏丹": "Sudan", "苏丹": 'Soudan',
"马尔代夫": "Maldives", "马尔代夫": 'Maldives',
"不丹": "Bhutan", "不丹": 'Bhoutan',
"摩纳哥": "Monaco", "摩纳哥": 'Monaco',
"圣马力诺": "San Marino", "圣马力诺": 'Saint-Marin',
"牙买加": "Jamaica", "牙买加": 'Jamaïque',
"巴哈马": "Bahamas", "巴哈马": 'Bahamas',
"巴布亚新几内亚": "Papua New Guinea", "巴布亚新几内亚": 'Papouasie-Nouvelle-Guinée',
"萨摩亚": "Samoa", "萨摩亚": 'Samoa',
}; };

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

@ -433,8 +433,8 @@ const Map<String, String> hiIN = {
'trans_003_desc': '1000 अनुवाद (वॉयस/टेक्स्ट) शामिल।', 'trans_003_desc': '1000 अनुवाद (वॉयस/टेक्स्ट) शामिल।',
// 商品模块 - 页脚 // 商品模块 - 页脚
'appNameProvider': 'App: VoiTrans · Provided by: VoiTrans', 'appNameProvider': 'ऐप: VoiTrans · प्रदाता: VoiTrans',
'iapCustomerServiceQQLabel': 'IAP customer service QQ: @qq', 'iapCustomerServiceQQLabel': 'IAP ग्राहक सेवा QQ: @qq',
'copyrightVoitrans': '© 2025 Voitrans Technologies', 'copyrightVoitrans': '© 2025 Voitrans Technologies',
// 新手引导 // 新手引导
@ -449,34 +449,28 @@ const Map<String, String> hiIN = {
'guideAwakenSuccess': "बिलकुल! लिली उठ गई—अपने प्रश्नों को पूछें।", 'guideAwakenSuccess': "बिलकुल! लिली उठ गई—अपने प्रश्नों को पूछें।",
'confirmInput': "पुष्टि करें", 'confirmInput': "पुष्टि करें",
'guideClickSendPrefix': "पाठ सेंड करने के लिए टैप करें, ", 'guideClickSendPrefix': "पाठ सेंड करने के लिए टैप करें, ",
'guideWeatherStart': "Tell Lily: “What’s the weather today?”", 'guideWeatherStart': "Lily से कहें: „आज मौसम कैसा है?”",
'guideWeatherInput': "आज का मौसम क्या है?", 'guideWeatherInput': "आज का मौसम क्या है?",
'guideWeatherSend': "लिली ने आपके प्रश्न का प्रतिक्रिया दिया", 'guideWeatherSend': "Lily रियल-टाइम मौसम की जानकारी देगी",
'guideWeatherEnd': 'guideWeatherEnd': "Lily रियल-टाइम मौसम बता सकती है — अन्य कमांड आज़माएं",
"लिली ने आपके प्रश्न का प्रतिक्रिया दिया—अन्य कमांड्स का प्रयास करें", 'guideMusicStart': "Lily से कहें: „कुछ रॉक म्यूजिक चलाओ”",
'guideMusicStart': "Tell Lily: “Play some rock music”", 'guideMusicInput': "कुछ रॉक म्यूजिक चलाओ",
'guideMusicInput': "प्ले सॉक्कर म्यूजिक", 'guideMusicSend': "Lily आपके लिए म्यूजिक खोजेगी",
'guideMusicSend': 'guideMusicEnd': "Lily ने म्यूजिक खोज लिया — अन्य कमांड आज़माएं",
"लिली ने आपके प्रश्न का प्रतिक्रिया दिया—अन्य कमांड्स का प्रयास करें", 'guideNavStart': "Lily से कहें: „Shenzhen Airport नेविगेट करो”",
'guideMusicEnd':
"लिली ने आपके प्रश्न का प्रतिक्रिया दिया—अन्य कमांड्स का प्रयास करें",
'guideNavStart': "Tell Lily: “Navigate to Shenzhen Airport”",
'guideNavInput': "Shenzhen Airport तक नेविगेट करें", 'guideNavInput': "Shenzhen Airport तक नेविगेट करें",
'guideNavSend': 'guideNavSend': "Lily रूट प्लान करेगी",
"लिली ने आपके प्रश्न का प्रतिक्रिया दिया—अन्य कमांड्स का प्रयास करें", 'guideNavEnd': "नेविगेशन सेट हो गया — अन्य कमांड आज़माएं",
'guideNavEnd': "नेविगेशन सेट—अन्य कमांड्स का प्रयास करें", 'guideMeetingStart': "Lily से कहें: „कल दोपहर 3 बजे मीटिंग रिमाइंडर बनाओ”",
'guideMeetingStart': 'guideMeetingInput': "कल दोपहर 3 बजे मीटिंग रिमाइंडर बनाएं",
"Tell Lily: “Create a meeting reminder for 3pm tomorrow”", 'guideMeetingSend': "Lily मीटिंग रिमाइंडर बनाएगी",
'guideMeetingInput': "3 बजे शामिल बैठक रिकॉर्डिंग बनाएं", 'guideMeetingEnd': "रिमाइंडर बन गया — अन्य कमांड आज़माएं",
'guideMeetingSend': 'guidePhoneStart': "Lily से कहें: „माँ को कॉल करो”",
"लिली ने आपके प्रश्न का प्रतिक्रिया दिया—अन्य कमांड्स का प्रयास करें", 'guidePhoneInput': "माँ को कॉल करें",
'guideMeetingEnd': "पengingat bali created—try other commands", 'guidePhoneSend': "Lily कॉल करेगी",
'guidePhoneStart': "Tell Lily: “Call Mom”", 'guidePhoneEnd': "कॉल हो गया — अन्य कमांड आज़माएं",
'guidePhoneInput': "Mom को कॉल करें", 'guideSmsStart':
'guidePhoneSend': "Lily से कहें: „पापा को मैसेज करो: मैं रात के खाने पर घर आऊंगा”",
"लिली ने आपके प्रश्न का प्रतिक्रिया दिया—अन्य कमांड्स का प्रयास करें",
'guidePhoneEnd': "पhoe call placed—try other commands",
'guideSmsStart': "Tell Lily: “Send Dad a text: I’ll be home for dinner”",
'guideSmsInput': "Dad को टेक्स्ट भेजें: मैं आज घर आऊंगा", 'guideSmsInput': "Dad को टेक्स्ट भेजें: मैं आज घर आऊंगा",
'guideSmsSend': 'guideSmsSend':
"लिली ने आपके प्रश्न का प्रतिक्रिया दिया—अन्य कमांड्स का प्रयास करें", "लिली ने आपके प्रश्न का प्रतिक्रिया दिया—अन्य कमांड्स का प्रयास करें",

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

@ -385,21 +385,21 @@ const Map<String, String> hrHR = {
// 商品模块 - 会议商品页 // 商品模块 - 会议商品页
'meetingRecording': 'Snimanje sastanka', 'meetingRecording': 'Snimanje sastanka',
'transcriptionAndSummary': 'Transcription & Summary', 'transcriptionAndSummary': 'Transkripcija i sažetak',
'keywordSearch': 'Keyword Search', 'keywordSearch': 'Pretraživanje ključnih riječi',
'collaborationSharing': 'Collaboration & Sharing', 'collaborationSharing': 'Suradnja i dijeljenje',
'meetingHeaderDesc1': 'meetingHeaderDesc1':
'Snimanje zvuka, transkripcija, pretraživanje po ključnim riječima i automatski sažetak za veću učinkovitost sastanaka.', 'Snimanje zvuka, transkripcija, pretraživanje po ključnim riječima i automatski sažetak za veću učinkovitost sastanaka.',
'meetingHeaderDesc2': 'meetingHeaderDesc2':
'Suitable for business meetings, class notes, and interview minutes.', 'Pogodno za poslovne sastanke, bilješke s predavanja i zapisnike intervjua.',
'meetingAutoRecording': 'Automatsko snimanje i segmentacija', 'meetingAutoRecording': 'Automatsko snimanje i segmentacija',
'meetingSpeakerTagging': 'Speaker labeling', 'meetingSpeakerTagging': 'Označavanje govornika',
'meetingLongAudioTranscription': 'Long audio transcription', 'meetingLongAudioTranscription': 'Transkripcija dugih audiozapisa',
'meetingKeyPointSummary': 'Key point extraction', 'meetingKeyPointSummary': 'Izvlačenje ključnih točaka',
'meetingTopicNameSearch': 'Search by topic/name', 'meetingTopicNameSearch': 'Pretraživanje po temi/imenu',
'meetingTimelineJump': 'Timeline jump', 'meetingTimelineJump': 'Skok na vremensku traku',
'meetingExportSummary': 'Export minutes', 'meetingExportSummary': 'Izvoz zapisnika',
'meetingMultiPlatformShare': 'Share across platforms', 'meetingMultiPlatformShare': 'Dijeljenje na više platformi',
'meetingDisclaimer': 'meetingDisclaimer':
'Koristite u tihoj okolini; performanse ovise o mikrofonu i mreži.', 'Koristite u tihoj okolini; performanse ovise o mikrofonu i mreži.',
@ -505,7 +505,7 @@ const Map<String, String> hrHR = {
'creationTime': 'Vrijeme izrade', 'creationTime': 'Vrijeme izrade',
'bluetoothConnection': 'Bluetooth veza', 'bluetoothConnection': 'Bluetooth veza',
'meetingReconnect': 'Ponovno poveži', 'meetingReconnect': 'Ponovno poveži',
'searching': 'Searching...', 'searching': 'Pretraživanje...',
'searchFailed': 'searchFailed':
'Pretraživanje nije uspjelo, provjerite je li Bluetooth uključen', 'Pretraživanje nije uspjelo, provjerite je li Bluetooth uključen',
'aiPenNotFound': 'AI PEN uređaj nije pronađen', 'aiPenNotFound': 'AI PEN uređaj nije pronađen',
@ -732,10 +732,10 @@ const Map<String, String> hrHR = {
'upgradeNote': 'upgradeNote':
'*Nakon nadogradnje pretplate, preostali dani izvorne pretplate bit će automatski izračunati i vraćeni na vaš račun za plaćanje', '*Nakon nadogradnje pretplate, preostali dani izvorne pretplate bit će automatski izračunati i vraćeni na vaš račun za plaćanje',
'buyMoreTranscriptionTime': 'Kupi više vremena za transkripciju', 'buyMoreTranscriptionTime': 'Kupi više vremena za transkripciju',
'sixThousandMinutes': '6,000 minutes', 'sixThousandMinutes': '6.000 minuta',
'threeThousandMinutes': '3,000 minutes', 'threeThousandMinutes': '3.000 minuta',
'sixHundredMinutes': '600 minutes', 'sixHundredMinutes': '600 minuta',
'oneHundredTwentyMinutes': '120 minutes', 'oneHundredTwentyMinutes': '120 minuta',
'validityPeriod': '*Razdoblje valjanosti: ', 'validityPeriod': '*Razdoblje valjanosti: ',
'validityNote': 'validityNote':
'Aktivira se odmah nakon kupnje, vrijedi 2 godine nakon aktivacije.', 'Aktivira se odmah nakon kupnje, vrijedi 2 godine nakon aktivacije.',
@ -1701,15 +1701,15 @@ const Map<String, String> hrHR = {
"东帝汶": "Istočni Timor", "东帝汶": "Istočni Timor",
"斐济": "Fidži", "斐济": "Fidži",
"所罗门群岛": "Salomonski Otoci", "所罗门群岛": "Salomonski Otoci",
"刚果民主共和国": "Democratic Republic of the Congo", "刚果民主共和国": "Demokratska Republika Kongo",
"安哥拉": "Angola", "安哥拉": "Angola",
"苏丹": "Sudan", "苏丹": "Sudan",
"马尔代夫": "Maldives", "马尔代夫": "Maldivi",
"不丹": "Bhutan", "不丹": "Butan",
"摩纳哥": "Monaco", "摩纳哥": "Monako",
"圣马力诺": "San Marino", "圣马力诺": "San Marino",
"牙买加": "Jamaica", "牙买加": "Jamajka",
"巴哈马": "Bahamas", "巴哈马": "Bahami",
"巴布亚新几内亚": "Papua New Guinea", "巴布亚新几内亚": "Papua Nova Gvineja",
"萨摩亚": "Samoa", "萨摩亚": "Samoa",
}; };

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

@ -385,21 +385,21 @@ const Map<String, String> huHU = {
// 商品模块 - 会议商品页 // 商品模块 - 会议商品页
'meetingRecording': 'Megbeszélés rögzítése', 'meetingRecording': 'Megbeszélés rögzítése',
'transcriptionAndSummary': 'Transcription & Summary', 'transcriptionAndSummary': 'Átirat és összefoglaló',
'keywordSearch': 'Keyword Search', 'keywordSearch': 'Kulcsszavas keresés',
'collaborationSharing': 'Collaboration & Sharing', 'collaborationSharing': 'Együttműködés és megosztás',
'meetingHeaderDesc1': 'meetingHeaderDesc1':
'Hangrögzítés, átírás, kulcsszavas keresés és automatikus összefoglaló a hatékonyabb megbeszélésekért.', 'Hangrögzítés, átírás, kulcsszavas keresés és automatikus összefoglaló a hatékonyabb megbeszélésekért.',
'meetingHeaderDesc2': 'meetingHeaderDesc2':
'Üzleti megbeszélésekhez, órai jegyzetekhez és interjújegyzőkönyvekhez.', 'Üzleti megbeszélésekhez, órai jegyzetekhez és interjújegyzőkönyvekhez.',
'meetingAutoRecording': 'Automatikus rögzítés és szegmentálás', 'meetingAutoRecording': 'Automatikus rögzítés és szegmentálás',
'meetingSpeakerTagging': 'Speaker labeling', 'meetingSpeakerTagging': 'Beszélőcímkézés',
'meetingLongAudioTranscription': 'Long audio transcription', 'meetingLongAudioTranscription': 'Hosszú hangfelvétel átírása',
'meetingKeyPointSummary': 'Key point extraction', 'meetingKeyPointSummary': 'Kulcspontok kinyerése',
'meetingTopicNameSearch': 'Search by topic/name', 'meetingTopicNameSearch': 'Keresés téma/név alapján',
'meetingTimelineJump': 'Timeline jump', 'meetingTimelineJump': 'Idővonalon ugrás',
'meetingExportSummary': 'Export minutes', 'meetingExportSummary': 'Jegyzőkönyv exportálása',
'meetingMultiPlatformShare': 'Share across platforms', 'meetingMultiPlatformShare': 'Megosztás platformok között',
'meetingDisclaimer': 'meetingDisclaimer':
'Használja csendes környezetben; a teljesítmény a mikrofontól és a hálózattól függ.', 'Használja csendes környezetben; a teljesítmény a mikrofontól és a hálózattól függ.',
@ -417,7 +417,7 @@ const Map<String, String> huHU = {
'earlyAccessNewFeatures': 'Korai hozzáférés az új funkciókhoz', 'earlyAccessNewFeatures': 'Korai hozzáférés az új funkciókhoz',
'crossDeviceSync': 'Szinkronizálás eszközök között', 'crossDeviceSync': 'Szinkronizálás eszközök között',
'vipDisclaimer': 'vipDisclaimer':
'Actual benefits depend on the package details and may change with versions.', 'A tényleges előnyök a csomag részleteitől függnek, és verziónként változhatnak.',
// 商品模块 - 商品名称与描述 // 商品模块 - 商品名称与描述
'ai_001_name': 'AI Alap 100', 'ai_001_name': 'AI Alap 100',
@ -447,27 +447,30 @@ const Map<String, String> huHU = {
// 新手引导 // 新手引导
'skip': "Kihagyás", 'skip': "Kihagyás",
'next': 'Next', 'next': 'Következő',
'sayLilyHint': 'Say "Lily Lily" to the mic', 'sayLilyHint': 'Mondja a mikrofonba: \u201eLily Lily\u201d',
'imHere': 'I’m here~', 'imHere': 'Tessék, itt vagyok~',
'guideWelcomeWakeAI': 'Welcome to Voitrans! First, wake your AI “Lily”.', 'guideWelcomeWakeAI':
'aiReplyCompleted': 'Lily has finished the reply!', 'Üdvözöljük a Voitransban! Először élessze fel AI-ját, \u201eLilyt\u201d.',
'aiThinking': 'Lily is thinking…', 'aiReplyCompleted': 'Lily befejezte a választ!',
'guideAwakenSuccess': 'Great! Lily is awake—ask it to help.', 'aiThinking': 'Lily gondolkodik\u2026',
'confirmInput': 'Confirm Input', 'guideAwakenSuccess': 'Remek! Lily ébren van \u2014 kérjen tőle segítséget.',
'guideClickSendPrefix': 'Tap send, ', 'confirmInput': 'Bevitel megerősítése',
'guideWeatherStart': 'Tell Lily: “What’s the weather today?”', 'guideClickSendPrefix': 'Koppintson a küldés gombra, ',
'guideWeatherInput': 'What’s the weather today?', 'guideWeatherStart': 'Mondja Lilynek: \u201eMilyen idő van ma?\u201d',
'guideWeatherSend': 'Lily will report the weather in real time', 'guideWeatherInput': 'Milyen idő van ma?',
'guideWeatherEnd': 'Lily can report weather live—try other commands', 'guideWeatherSend': 'Lily valós időben jelenti az időjárást',
'guideMusicStart': 'Tell Lily: “Play some rock music”', 'guideWeatherEnd':
'guideMusicInput': 'Play some rock music', 'Lily élőben jelenti az időt \u2014 próbáljon más parancsokat',
'guideMusicSend': 'Lily will find music for you', 'guideMusicStart': 'Mondja Lilynek: \u201eJátssz rock zenét\u201d',
'guideMusicEnd': 'Lily found music—try other commands', 'guideMusicInput': 'Játssz rock zenét',
'guideNavStart': 'Tell Lily: “Navigate to Shenzhen Airport”', 'guideMusicSend': 'Lily zenét keres Önnek',
'guideNavInput': 'Navigate to Shenzhen Airport', 'guideMusicEnd': 'Lily zenét talált \u2014 próbáljon más parancsokat',
'guideNavSend': 'Lily will plan the route', 'guideNavStart':
'guideNavEnd': 'Navigation set—try other commands', 'Mondja Lilynek: \u201eNavigálj a shenzeni repülőtérre\u201d',
'guideNavInput': 'Navigálj a shenzeni repülőtérre',
'guideNavSend': 'Lily megtervezi az útvonalat',
'guideNavEnd': 'Navigáció beállítva \u2014 próbáljon más parancsokat',
'guideMeetingStart': 'guideMeetingStart':
'Mondja Lilynek: „Készíts egy megbeszélés-emlékeztetőt holnap 15:00-ra”', 'Mondja Lilynek: „Készíts egy megbeszélés-emlékeztetőt holnap 15:00-ra”',
'guideMeetingInput': 'Készíts egy megbeszélés-emlékeztetőt holnap 15:00-ra', 'guideMeetingInput': 'Készíts egy megbeszélés-emlékeztetőt holnap 15:00-ra',

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

@ -216,54 +216,54 @@ const Map<String, String> idID = {
"scene": "Skenario", "scene": "Skenario",
// 用量统计模块 // 用量统计模块
"aiChat": "AI Chat", "aiChat": "Obrolan AI",
"translationStats": "Statistik Terjemahan", "translationStats": "Statistik Terjemahan",
"meetingStats": "Meeting Statistics", "meetingStats": "Statistik Rapat",
"today": "Today", "today": "Hari Ini",
"thisWeek": "This Week", "thisWeek": "Minggu Ini",
"thisMonth": "This Month", "thisMonth": "Bulan Ini",
"history": "History", "history": "Riwayat",
"currentSessionStats": "Current Session Stats", "currentSessionStats": "Statistik Sesi Saat Ini",
"translationCount": "Jumlah Terjemahan", "translationCount": "Jumlah Terjemahan",
"sessionDuration": "Session Duration", "sessionDuration": "Durasi Sesi",
"characters": "Characters", "characters": "Karakter",
"recordingDuration": "Durasi Rekaman", "recordingDuration": "Durasi Rekaman",
"totalApiCalls": "Total API Calls", "totalApiCalls": "Total Panggilan API",
"sessionCount": "Session Count", "sessionCount": "Jumlah Sesi",
"totalCharacters": "Total Characters", "totalCharacters": "Total Karakter",
"apiCallStats": "API Call Stats", "apiCallStats": "Statistik Panggilan API",
"translationApi": "API Terjemahan", "translationApi": "API Terjemahan",
"asr": "ASR", "asr": "ASR",
"tts": "TTS", "tts": "TTS",
"dataVolumeStats": "Data Volume Stats", "dataVolumeStats": "Statistik Volume Data",
"sourceTextCharacters": "Source Text Characters", "sourceTextCharacters": "Karakter Teks Sumber",
"ttsTextCharacters": "TTS Text Characters", "ttsTextCharacters": "Karakter Teks TTS",
"effectiveAudioDuration": "Effective Audio Duration", "effectiveAudioDuration": "Durasi Audio Efektif",
"totalSessionDuration": "Total Session Duration", "totalSessionDuration": "Total Durasi Sesi",
"costStats": "Cost Stats", "costStats": "Statistik Biaya",
"estimatedCost": "Estimated Cost", "estimatedCost": "Estimasi Biaya",
"dailyCostThreshold": "Daily Cost Threshold", "dailyCostThreshold": "Batas Biaya Harian",
"monthlyCostThreshold": "Monthly Cost Threshold", "monthlyCostThreshold": "Batas Biaya Bulanan",
"usageBehaviorStats": "Usage Behavior Stats", "usageBehaviorStats": "Statistik Perilaku Penggunaan",
"mostUsedLanguagePair": "Most-used language pair", "mostUsedLanguagePair": "Pasangan bahasa paling sering digunakan",
"mostUsedMode": "Most-used mode", "mostUsedMode": "Mode paling sering digunakan",
"asrApiCalls": "ASR Calls", "asrApiCalls": "ASR Calls",
"totalAudioDuration": "Total Audio Duration", "totalAudioDuration": "Total Durasi Audio",
"audioFileSize": "Audio File Size", "audioFileSize": "Ukuran File Audio",
"transcriptBytes": "Transcript Bytes", "transcriptBytes": "Byte Transkrip",
"loadFailed": "Gagal Memuat", "loadFailed": "Gagal Memuat",
"statsLoadFailedTryLater": "Statistik gagal dimuat. Silakan coba lagi nanti.", "statsLoadFailedTryLater": "Statistik gagal dimuat. Silakan coba lagi nanti.",
"cleanupComplete": "Cleanup Complete", "cleanupComplete": "Pembersihan Selesai",
"cleanedOldData": "Cleaned data older than 90 days", "cleanedOldData": "Data lebih dari 90 hari telah dibersihkan",
"exportFeature": "Export Feature", "exportFeature": "Fitur Ekspor",
"exportInDevelopment": "Data export is under development", "exportInDevelopment": "Fitur ekspor data sedang dalam pengembangan",
// 商品模块 - 通用 // 商品模块 - 通用
'availablePackages': 'Available Packages', 'availablePackages': 'Paket Tersedia',
'remainingQuota': 'Remaining Quota', 'remainingQuota': 'Kuota Tersisa',
'totalQuota': 'Total Quota', 'totalQuota': 'Total Kuota',
'remaining': 'Remaining', 'remaining': 'Tersisa',
'featureDescription': 'Feature Description', 'featureDescription': 'Deskripsi Fitur',
'paymentSuccess': 'Pembayaran berhasil', 'paymentSuccess': 'Pembayaran berhasil',
'paymentFailed': 'Pembayaran gagal', 'paymentFailed': 'Pembayaran gagal',
'gotIt': 'Mengerti', 'gotIt': 'Mengerti',
@ -330,101 +330,101 @@ const Map<String, String> idID = {
'Keanggotaan AI telah kedaluwarsa, silakan buka halaman perpanjangan keanggotaan untuk memperbarui.', 'Keanggotaan AI telah kedaluwarsa, silakan buka halaman perpanjangan keanggotaan untuk memperbarui.',
// 商品模块 - AI商品页 // 商品模块 - AI商品页
'musicAndRecommendation': 'Music & Recommendation', 'musicAndRecommendation': 'Musik & Rekomendasi',
'navigationAndRoutes': 'Navigation & Routes', 'navigationAndRoutes': 'Navigasi & Rute',
'nearbySearch': 'Nearby Search', 'nearbySearch': 'Pencarian Sekitar',
'newsInformation': 'News', 'newsInformation': 'Berita',
'communicationAssistant': 'Communication Assistant', 'communicationAssistant': 'Asisten Komunikasi',
'aiHeaderDesc1': 'aiHeaderDesc1':
'Longer conversation quota, more tool calls, extended context length.', 'Kuota percakapan lebih panjang, lebih banyak panggilan alat, panjang konteks lebih besar.',
'aiHeaderDesc2': 'aiHeaderDesc2':
'Suitable for agent Q&A, summarization, analysis, and task execution.', 'Cocok untuk tanya jawab agen, ringkasan, analisis, dan eksekusi tugas.',
'musicSearchPlaybackControl': 'Music library search and playback control', 'musicSearchPlaybackControl': 'Pencarian perpustakaan musik dan kontrol pemutaran',
'smartPlaylistAndSimilarRecommendations': 'smartPlaylistAndSimilarRecommendations':
'Smart playlist and similar song recommendations', 'Daftar putar pintar dan rekomendasi lagu serupa',
'routePlanningAndCongestionAvoidance': 'routePlanningAndCongestionAvoidance':
'Route planning and congestion avoidance', 'Perencanaan rute dan penghindaran kemacetan',
'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'voiceBroadcastAndWaypoints': 'Siaran suara dan pengaturan titik jalan',
'realTimeWeatherForecast': 'Real-time weather and forecast', 'realTimeWeatherForecast': 'Cuaca dan prakiraan waktu nyata',
'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', 'clothingAdviceAndTravelReminders': 'Saran pakaian dan pengingat perjalanan',
'poiSearchFoodGasParking': 'POI search: dining / gas / parking', 'poiSearchFoodGasParking': 'Pencarian POI: makanan / bensin / parkir',
'ratingsHoursAndDirectRoutes': 'Ratings, business hours, and direct routing', 'ratingsHoursAndDirectRoutes': 'Rating, jam operasional, dan rute langsung',
'hotNewsAndTopicOverview': 'Hot news and topic overview', 'hotNewsAndTopicOverview': 'Berita populer dan ringkasan topik',
'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'longArticleSummariesAndKeyPoints': 'Ringkasan artikel panjang dan poin-poin utama',
'helpCallAndSMS': 'Help with calls and SMS', 'helpCallAndSMS': 'Bantuan panggilan dan SMS',
'templatedMessagesAndScheduleReminders': 'templatedMessagesAndScheduleReminders':
'Template messages and schedule reminders', 'Templat pesan dan pengingat jadwal',
'aiDisclaimer': 'aiDisclaimer':
'Fitur bergantung pada izin perangkat, ketersediaan layanan, dan kondisi jaringan.', 'Fitur bergantung pada izin perangkat, ketersediaan layanan, dan kondisi jaringan.',
// 商品模块 - 翻译商品页 // 商品模块 - 翻译商品页
'realtimeTranscription': 'Real-time Transcription', 'realtimeTranscription': 'Transkripsi Waktu Nyata',
'sceneLexicon': 'Scenario Glossary', 'sceneLexicon': 'Glosarium Skenario',
'subtitleDisplay': 'Subtitles', 'subtitleDisplay': 'Subtitle',
'transHeaderDesc1': 'transHeaderDesc1':
'Interpretasi simultan waktu nyata dan terjemahan teks dengan suara latensi rendah.', 'Interpretasi simultan waktu nyata dan terjemahan teks dengan suara latensi rendah.',
'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'transHeaderDesc2': 'Cocok untuk perjalanan, bisnis, pidato, dan pengajaran.',
'translateZhEn': 'Terjemahan Mandarin-Inggris', 'translateZhEn': 'Terjemahan Mandarin-Inggris',
'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'lowLatencyVoiceBroadcast': 'Siaran suara latensi rendah',
'multiLangTextTranslation': 'Terjemahan teks multibahasa', 'multiLangTextTranslation': 'Terjemahan teks multibahasa',
'termOptimizationContextPreserve': 'termOptimizationContextPreserve':
'Terminology optimization and context preservation', 'Optimasi terminologi dan pelestarian konteks',
'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'lexiconTourBusinessLife': 'Leksikon Perjalanan/Bisnis/Kehidupan',
'personalVocabularyMemory': 'Personal vocabulary memory', 'personalVocabularyMemory': 'Memori kosakata pribadi',
'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'conversationSubtitleLargeText': 'Subtitle percakapan / Mode teks besar',
'colorHighContrast': 'High color contrast', 'colorHighContrast': 'Kontras warna tinggi',
'transDisclaimer': 'transDisclaimer':
'Kinerja terjemahan bergantung pada mikrofon, latensi jaringan, dan kebisingan sekitar.', 'Kinerja terjemahan bergantung pada mikrofon, latensi jaringan, dan kebisingan sekitar.',
// 商品模块 - 会议商品页 // 商品模块 - 会议商品页
'meetingRecording': 'Rekaman Rapat', 'meetingRecording': 'Rekaman Rapat',
'transcriptionAndSummary': 'Transcription & Summary', 'transcriptionAndSummary': 'Transkripsi & Ringkasan',
'keywordSearch': 'Keyword Search', 'keywordSearch': 'Pencarian Kata Kunci',
'collaborationSharing': 'Collaboration & Sharing', 'collaborationSharing': 'Kolaborasi & Berbagi',
'meetingHeaderDesc1': 'meetingHeaderDesc1':
'Perekaman audio, transkripsi, pencarian kata kunci, dan ringkasan otomatis untuk meningkatkan efisiensi rapat.', 'Perekaman audio, transkripsi, pencarian kata kunci, dan ringkasan otomatis untuk meningkatkan efisiensi rapat.',
'meetingHeaderDesc2': 'meetingHeaderDesc2':
'Suitable for business meetings, class notes, and interview minutes.', 'Cocok untuk rapat bisnis, catatan kelas, dan notulen wawancara.',
'meetingAutoRecording': 'Perekaman otomatis dan segmentasi', 'meetingAutoRecording': 'Perekaman otomatis dan segmentasi',
'meetingSpeakerTagging': 'Speaker labeling', 'meetingSpeakerTagging': 'Pelabelan pembicara',
'meetingLongAudioTranscription': 'Long audio transcription', 'meetingLongAudioTranscription': 'Transkripsi audio panjang',
'meetingKeyPointSummary': 'Key point extraction', 'meetingKeyPointSummary': 'Ekstraksi poin utama',
'meetingTopicNameSearch': 'Search by topic/name', 'meetingTopicNameSearch': 'Cari berdasarkan topik/nama',
'meetingTimelineJump': 'Timeline jump', 'meetingTimelineJump': 'Lompatan timeline',
'meetingExportSummary': 'Export minutes', 'meetingExportSummary': 'Ekspor notulen',
'meetingMultiPlatformShare': 'Share across platforms', 'meetingMultiPlatformShare': 'Berbagi lintas platform',
'meetingDisclaimer': 'meetingDisclaimer':
'Gunakan di lingkungan yang tenang; kinerja bergantung pada mikrofon dan jaringan.', 'Gunakan di lingkungan yang tenang; kinerja bergantung pada mikrofon dan jaringan.',
// 商品模块 - VIP会员页 // 商品模块 - VIP会员页
'benefitsOverview': 'Benefits overview', 'benefitsOverview': 'Ringkasan manfaat',
'higherQuota': 'Higher usage quota', 'higherQuota': 'Kuota penggunaan lebih tinggi',
'lowerUnitPrice': 'Lower unit price', 'lowerUnitPrice': 'Harga per unit lebih rendah',
'priorityService': 'Priority service', 'priorityService': 'Layanan prioritas',
'exclusiveSupportChannel': 'Dedicated support channel', 'exclusiveSupportChannel': 'Saluran dukungan khusus',
'fastResponse': 'Fast issue response', 'fastResponse': 'Respons masalah cepat',
'eventsAndDiscounts': 'Events and discounts', 'eventsAndDiscounts': 'Acara dan diskon',
'memberExclusiveEvents': 'Member-exclusive events', 'memberExclusiveEvents': 'Acara eksklusif anggota',
'longTermDiscountPlan': 'Long-term discount plan', 'longTermDiscountPlan': 'Paket diskon jangka panjang',
'generalPrivileges': 'General privileges', 'generalPrivileges': 'Hak istimewa umum',
'earlyAccessNewFeatures': 'Early access to new features', 'earlyAccessNewFeatures': 'Akses awal ke fitur baru',
'crossDeviceSync': 'Sinkronisasi lintas perangkat', 'crossDeviceSync': 'Sinkronisasi lintas perangkat',
'vipDisclaimer': 'vipDisclaimer':
'Actual benefits depend on the package details and may change with versions.', 'Manfaat aktual bergantung pada detail paket dan dapat berubah seiring pembaruan versi.',
// 商品模块 - 商品名称与描述 // 商品模块 - 商品名称与描述
'ai_001_name': 'AI Basic 100', 'ai_001_name': 'AI Dasar 100',
'ai_002_name': 'AI Basic 500', 'ai_002_name': 'AI Dasar 500',
'ai_003_name': 'AI Basic 1000', 'ai_003_name': 'AI Dasar 1000',
'meet_001_name': 'Meeting Basic 100', 'meet_001_name': 'Rapat Dasar 100',
'meet_002_name': 'Meeting Basic 500', 'meet_002_name': 'Rapat Dasar 500',
'meet_003_name': 'Meeting Basic 1000', 'meet_003_name': 'Rapat Dasar 1000',
'trans_001_name': 'Terjemahan Dasar 100', 'trans_001_name': 'Terjemahan Dasar 100',
'trans_002_name': 'Terjemahan Dasar 500', 'trans_002_name': 'Terjemahan Dasar 500',
'trans_003_name': 'Terjemahan Dasar 1000', 'trans_003_name': 'Terjemahan Dasar 1000',
'ai_001_desc': 'Includes 100 uses. Access core AI features.', 'ai_001_desc': 'Termasuk 100 penggunaan. Akses fitur AI inti.',
'ai_002_desc': 'Includes 500 uses. Access core AI features.', 'ai_002_desc': 'Termasuk 500 penggunaan. Akses fitur AI inti.',
'ai_003_desc': 'Includes 1000 uses. Access core AI features.', 'ai_003_desc': 'Termasuk 1000 penggunaan. Akses fitur AI inti.',
'meet_001_desc': 'Termasuk 100 rekaman/transkripsi rapat.', 'meet_001_desc': 'Termasuk 100 rekaman/transkripsi rapat.',
'meet_002_desc': 'Termasuk 500 rekaman/transkripsi rapat.', 'meet_002_desc': 'Termasuk 500 rekaman/transkripsi rapat.',
'meet_003_desc': 'Termasuk 1000 rekaman/transkripsi rapat.', 'meet_003_desc': 'Termasuk 1000 rekaman/transkripsi rapat.',
@ -433,46 +433,46 @@ const Map<String, String> idID = {
'trans_003_desc': 'Termasuk 1000 terjemahan (suara/teks).', 'trans_003_desc': 'Termasuk 1000 terjemahan (suara/teks).',
// 商品模块 - 页脚 // 商品模块 - 页脚
'appNameProvider': 'App: VoiTrans · Provided by: VoiTrans', 'appNameProvider': 'Aplikasi: VoiTrans · Disediakan oleh: VoiTrans',
'iapCustomerServiceQQLabel': 'IAP customer service QQ: @qq', 'iapCustomerServiceQQLabel': 'Layanan pelanggan IAP QQ: @qq',
'copyrightVoitrans': '© 2025 Voitrans Technologies', 'copyrightVoitrans': '© 2025 Voitrans Technologies',
// 新手引导 // 新手引导
'skip': "Lewati", 'skip': "Lewati",
'next': 'Next', 'next': 'Selanjutnya',
'sayLilyHint': 'Say "Lily Lily" to the mic', 'sayLilyHint': 'Ucapkan "Lily Lily" ke mikrofon',
'imHere': 'I’m here~', 'imHere': 'Saya di sini~',
'guideWelcomeWakeAI': 'Welcome to Voitrans! First, wake your AI “Lily”.', 'guideWelcomeWakeAI': 'Selamat datang di Voitrans! Pertama, bangunkan AI Anda “Lily”.',
'aiReplyCompleted': 'Lily has finished the reply!', 'aiReplyCompleted': 'Lily telah menyelesaikan balasan!',
'aiThinking': 'Lily is thinking…', 'aiThinking': 'Lily sedang berpikir…',
'guideAwakenSuccess': 'Great! Lily is awake—ask it to help.', 'guideAwakenSuccess': 'Bagus! Lily sudah bangun—minta Lily membantu.',
'confirmInput': 'Confirm Input', 'confirmInput': 'Konfirmasi Input',
'guideClickSendPrefix': 'Tap send, ', 'guideClickSendPrefix': 'Ketuk kirim, ',
'guideWeatherStart': 'Tell Lily: “What’s the weather today?”', 'guideWeatherStart': 'Katakan pada Lily: “Bagaimana cuaca hari ini?”',
'guideWeatherInput': 'What’s the weather today?', 'guideWeatherInput': 'Bagaimana cuaca hari ini?',
'guideWeatherSend': 'Lily will report the weather in real time', 'guideWeatherSend': 'Lily akan melaporkan cuaca secara real-time',
'guideWeatherEnd': 'Lily can report weather live—try other commands', 'guideWeatherEnd': 'Lily dapat melaporkan cuaca langsung—coba perintah lain',
'guideMusicStart': 'Tell Lily: “Play some rock music”', 'guideMusicStart': 'Katakan pada Lily: “Putar musik rock”',
'guideMusicInput': 'Play some rock music', 'guideMusicInput': 'Putar musik rock',
'guideMusicSend': 'Lily will find music for you', 'guideMusicSend': 'Lily akan mencarikan musik untuk Anda',
'guideMusicEnd': 'Lily found music—try other commands', 'guideMusicEnd': 'Lily menemukan musik—coba perintah lain',
'guideNavStart': 'Tell Lily: “Navigate to Shenzhen Airport”', 'guideNavStart': 'Katakan pada Lily: “Navigasi ke bandara”',
'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavInput': 'Navigasi ke bandara',
'guideNavSend': 'Lily will plan the route', 'guideNavSend': 'Lily akan merencanakan rute',
'guideNavEnd': 'Navigation set—try other commands', 'guideNavEnd': 'Navigasi ditetapkan—coba perintah lain',
'guideMeetingStart': 'guideMeetingStart':
'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'Katakan pada Lily: “Buat pengingat rapat untuk besok jam 15:00”',
'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingInput': 'Buat pengingat rapat untuk besok jam 15:00',
'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingSend': 'Lily akan membuat pengingat rapat',
'guideMeetingEnd': 'Reminder created—try other commands', 'guideMeetingEnd': 'Pengingat dibuat—coba perintah lain',
'guidePhoneStart': 'Tell Lily: “Call Mom”', 'guidePhoneStart': 'Katakan pada Lily: “Telepon Ibu”',
'guidePhoneInput': 'Call Mom', 'guidePhoneInput': 'Telepon Ibu',
'guidePhoneSend': 'Lily will make the call', 'guidePhoneSend': 'Lily akan melakukan panggilan',
'guidePhoneEnd': 'Call placed—try other commands', 'guidePhoneEnd': 'Panggilan dilakukan—coba perintah lain',
'guideSmsStart': 'Tell Lily: “Send Dad a text: I’ll be home for dinner”', 'guideSmsStart': 'Katakan pada Lily: “Kirim pesan ke Ayah: Saya pulang untuk makan malam”',
'guideSmsInput': 'Text Dad: I’ll be home for dinner', 'guideSmsInput': 'Kirim ke Ayah: Saya pulang untuk makan malam',
'guideSmsSend': 'Lily will send the message', 'guideSmsSend': 'Lily akan mengirim pesan',
'guideSmsEnd': 'Message sent—voice control is convenient', 'guideSmsEnd': 'Pesan terkirim—kontrol suara sangat praktis',
// Meeting模块 - 首页与导航 // Meeting模块 - 首页与导航
"startMeeting": "Mulai Rapat", "startMeeting": "Mulai Rapat",
@ -501,9 +501,9 @@ const Map<String, String> idID = {
'aiPenNotFound': 'Perangkat AI PEN tidak ditemukan', 'aiPenNotFound': 'Perangkat AI PEN tidak ditemukan',
'connectedToAiPen': 'Terhubung ke perangkat AI PEN', 'connectedToAiPen': 'Terhubung ke perangkat AI PEN',
'checkingNewFiles': 'Memeriksa file baru untuk diimpor', 'checkingNewFiles': 'Memeriksa file baru untuk diimpor',
'startingWifi': 'Starting Wi-Fi...', 'startingWifi': 'Memulai Wi-Fi...',
'newFilesDetected': 'New files detected, preparing to import', 'newFilesDetected': 'File baru terdeteksi, mempersiapkan impor',
'noNewFiles': 'No new files to import', 'noNewFiles': 'Tidak ada file baru untuk diimpor',
'connectingWifi': 'Menyambungkan ke Wi‑Fi...', 'connectingWifi': 'Menyambungkan ke Wi‑Fi...',
'wifiConnected': 'Wi‑Fi berhasil terhubung', 'wifiConnected': 'Wi‑Fi berhasil terhubung',
'downloadingFiles': 'Mengunduh file...', 'downloadingFiles': 'Mengunduh file...',
@ -517,7 +517,7 @@ const Map<String, String> idID = {
'liveRecording': 'Rekaman Langsung', 'liveRecording': 'Rekaman Langsung',
'audioVideoRecording': 'Rekaman Audio/Video', 'audioVideoRecording': 'Rekaman Audio/Video',
'callRecording': 'Rekaman Panggilan', 'callRecording': 'Rekaman Panggilan',
'importAudio': 'Import Audio', 'importAudio': 'Impor Audio',
'meetingRecordExitTitle': 'Keluar dari perekaman', // 退出录音 'meetingRecordExitTitle': 'Keluar dari perekaman', // 退出录音
'meetingRecordExitMessage': 'meetingRecordExitMessage':
'Pilih apa yang akan dilakukan sebelum keluar', // 请选择离开后的操作 'Pilih apa yang akan dilakukan sebelum keluar', // 请选择离开后的操作
@ -542,30 +542,30 @@ const Map<String, String> idID = {
'Untuk menampilkan bilah mengambang perekaman (timer/jeda/lanjut) saat merekam, kami memerlukan izin overlay.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 'Untuk menampilkan bilah mengambang perekaman (timer/jeda/lanjut) saat merekam, kami memerlukan izin overlay.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。
'overlayPermissionOpenSettingsFailed': 'overlayPermissionOpenSettingsFailed':
'Tidak dapat membuka pengaturan sistem secara otomatis. Silakan buka Pengaturan dan aktifkan izin overlay secara manual.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'Tidak dapat membuka pengaturan sistem secara otomatis. Silakan buka Pengaturan dan aktifkan izin overlay secara manual.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。
'transcribing': 'Transcribing...', 'transcribing': 'Sedang mentranskrip...',
'summarizing': 'Summarizing...', 'summarizing': 'Sedang meringkas...',
'analyzing': 'Analyzing...', 'analyzing': 'Sedang menganalisis...',
'summaryComplete': 'Summary Complete', 'summaryComplete': 'Ringkasan Selesai',
'generate': 'Generate', 'generate': 'Buat',
'overview': 'Overview', 'overview': 'Ringkasan',
'transcription': 'Transcription', 'transcription': 'Transkripsi',
'summary': 'Summary', 'summary': 'Ringkasan',
'mindMap': 'Mind Map', 'mindMap': 'Peta Pikiran',
'editSpeaker': 'Edit', 'editSpeaker': 'Sunting',
'nameSpeaker': 'Name Speaker', 'nameSpeaker': 'Beri Nama Pembicara',
// Meeting模块 - 转写与总结 // Meeting模块 - 转写与总结
'reSummarize': 'Re-summarize', 'reSummarize': 'Ringkas Ulang',
'dateAndTime': 'Date & Time', 'dateAndTime': 'Tanggal & Waktu',
'location': 'Location', 'location': 'Lokasi',
'attendees': 'Attendees', 'attendees': 'Peserta',
'inputLocation': 'Enter Location', 'inputLocation': 'Masukkan Lokasi',
'inputAttendees': 'Enter Attendees', 'inputAttendees': 'Masukkan Peserta',
// Meeting模块 - 模版与生成 // Meeting模块 - 模版与生成
'selectSummaryTemplate': 'Select Summary Template', 'selectSummaryTemplate': 'Pilih Templat Ringkasan',
'useThisTemplate': 'Use This Template', 'useThisTemplate': 'Gunakan Templat Ini',
'lastUsed': 'Last Used', 'lastUsed': 'Terakhir Digunakan',
'create': 'Buat', 'create': 'Buat',
'templateDetails': 'Detail Template', 'templateDetails': 'Detail Template',
'tag': 'Tag', 'tag': 'Tag',
@ -584,160 +584,160 @@ const Map<String, String> idID = {
'pleaseEnter': 'Silakan masukkan', 'pleaseEnter': 'Silakan masukkan',
'viewAll': 'Lihat semua', 'viewAll': 'Lihat semua',
'recordingLanguage': 'Bahasa Rekaman', 'recordingLanguage': 'Bahasa Rekaman',
'chineseSimplified': 'Chinese Mandarin (Simplified)', 'chineseSimplified': 'Bahasa Mandarin (Sederhana)',
'meetingGenerateNow': 'Buat sekarang', 'meetingGenerateNow': 'Buat sekarang',
'keyEventsAnalyzed': 'Menganalisis {count} peristiwa penting.', 'keyEventsAnalyzed': 'Menganalisis {count} peristiwa penting.',
'aiAnalysisDesc': 'aiAnalysisDesc':
'Analisis AI mengidentifikasi peristiwa penting dalam rekaman, sehingga Anda dapat memilih peristiwa penting untuk pembuatan AI.', 'Analisis AI mengidentifikasi peristiwa penting dalam rekaman, sehingga Anda dapat memilih peristiwa penting untuk pembuatan AI.',
// Meeting模块 - 文件操作 // Meeting模块 - 文件操作
'importing': 'Importing...', 'importing': 'Mengimpor...',
'batchImporting': 'Batch importing...', 'batchImporting': 'Mengimpor secara massal...',
'importingLocalRecordings': 'Mengimpor rekaman lokal...', 'importingLocalRecordings': 'Mengimpor rekaman lokal...',
'importFailed': 'Gagal mengimpor file: {filePath}, kesalahan: {error}', 'importFailed': 'Gagal mengimpor file: {filePath}, kesalahan: {error}',
'importSuccess': 'Berhasil mengimpor {count} rekaman lokal', 'importSuccess': 'Berhasil mengimpor {count} rekaman lokal',
'importError': 'Impor gagal: {error}', 'importError': 'Impor gagal: {error}',
'pleaseSelectAudioFile': 'Silakan pilih file audio', 'pleaseSelectAudioFile': 'Silakan pilih file audio',
'shareAudio': 'Share Meeting Audio', 'shareAudio': 'Bagikan Audio Rapat',
'shareComplete': 'Share complete!', 'shareComplete': 'Berbagi selesai!',
'shareFailed': 'Berbagi gagal: {error}', 'shareFailed': 'Berbagi gagal: {error}',
'fileProcessingFailed': 'fileProcessingFailed':
'Pemrosesan file gagal: {filePath}, kesalahan: {error}', 'Pemrosesan file gagal: {filePath}, kesalahan: {error}',
// Meeting模块 - 思维导图 // Meeting模块 - 思维导图
'saveMindMap': 'Simpan Peta Pikiran', 'saveMindMap': 'Simpan Peta Pikiran',
'shareMindMap': 'Share Mind Map', 'shareMindMap': 'Bagikan Peta Pikiran',
'shareSuccess': 'Berbagi Berhasil', 'shareSuccess': 'Berbagi Berhasil',
// Meeting模块 - AI问答 // Meeting模块 - AI问答
'askAI': 'Ask AI ...', 'askAI': 'Tanya AI ...',
'askAIPrompt': 'What can I help you with today?', 'askAIPrompt': 'Ada yang bisa saya bantu hari ini?',
'continueAsk': 'Continue Asking', 'continueAsk': 'Lanjutkan Bertanya',
'todoList': 'To-Do List', 'todoList': 'Daftar Tugas',
'extractConclusion': 'Extract Conclusion', 'extractConclusion': 'Ekstrak Kesimpulan',
'generateKeyIndicators': 'Generate Key Indicators', 'generateKeyIndicators': 'Buat Indikator Utama',
// Meeting模块 - 分享与导出 // Meeting模块 - 分享与导出
'shareLink': 'Share Link', 'shareLink': 'Bagikan Tautan',
'copyTranscript': 'Copy Transcript', 'copyTranscript': 'Salin Transkrip',
'copySummary': 'Copy Summary', 'copySummary': 'Salin Ringkasan',
'exportAudio': 'Export Audio', 'exportAudio': 'Ekspor Audio',
'exportTranscript': 'Export Transcript', 'exportTranscript': 'Ekspor Transkrip',
'shareMeetingAudio': 'Share Meeting Audio', 'shareMeetingAudio': 'Bagikan Audio Rapat',
'exportSummary': 'Export Summary', 'exportSummary': 'Ekspor Ringkasan',
'exportAs': 'Export As', 'exportAs': 'Ekspor Sebagai',
'exportingPDF': 'Exporting PDF...', 'exportingPDF': 'Mengekspor PDF...',
'export': 'Ekspor', 'export': 'Ekspor',
// Meeting模块 - 发言者 // Meeting模块 - 发言者
'applyToAllParagraphs': 'Terapkan ke semua paragraf pembicara ini', 'applyToAllParagraphs': 'Terapkan ke semua paragraf pembicara ini',
'summaryWillBeUpdatedAutomatically': 'summaryWillBeUpdatedAutomatically':
'Ringkasan akan diperbarui otomatis berdasarkan template', 'Ringkasan akan diperbarui otomatis berdasarkan template',
'nameCurrentSpeaker': 'Name Current Speaker', 'nameCurrentSpeaker': 'Beri Nama Pembicara Saat Ini',
'recentlyUsedNames': 'Recently Used Names', 'recentlyUsedNames': 'Nama yang Baru Digunakan',
'applyToCurrentParagraph': 'Apply to Current Paragraph', 'applyToCurrentParagraph': 'Terapkan ke Paragraf Saat Ini',
'totalTime': 'Total Time', 'totalTime': 'Total Waktu',
'summarySpeakerWillBeUpdatedAutomatically': 'summarySpeakerWillBeUpdatedAutomatically':
'Summary speakers will be updated automatically', 'Pembicara dalam ringkasan akan diperbarui secara otomatis',
// Meeting模块 - 云端同步 // Meeting模块 - 云端同步
'syncToCloud': 'Sync to Cloud', 'syncToCloud': 'Sinkronkan ke Cloud',
'syncToCloudTip': 'syncToCloudTip':
'Sinkronkan rekaman Anda ke cloud secara otomatis; Anda dapat memutar, mengelola, dan membagikan rekaman melalui VOITRANS APP atau VOITRANS Web (web.voitrans.com).', 'Sinkronkan rekaman Anda ke cloud secara otomatis; Anda dapat memutar, mengelola, dan membagikan rekaman melalui VOITRANS APP atau VOITRANS Web (web.voitrans.com).',
'syncToVoitransApp': 'Sync VOITRANS APP', 'syncToVoitransApp': 'Sinkronkan ke Aplikasi VOITRANS',
'transcriptionRecord': 'Catatan Transkripsi', 'transcriptionRecord': 'Catatan Transkripsi',
// Meeting模块 - 我的页面 // Meeting模块 - 我的页面
'transcriptionRecords': 'Catatan Transkripsi', 'transcriptionRecords': 'Catatan Transkripsi',
'templateCommunity': 'Template Community', 'templateCommunity': 'Komunitas Templat',
'comingSoon': 'Coming Soon', 'comingSoon': 'Segera Hadir',
'integration': 'Integration', 'integration': 'Integrasi',
'voitransPrivateCloud': 'VOITRANS PRIVATE CLOUD', 'voitransPrivateCloud': 'VOITRANS PRIVATE CLOUD',
'enabled': 'Diaktifkan', 'enabled': 'Diaktifkan',
'disabled': 'Dinonaktifkan', 'disabled': 'Dinonaktifkan',
'myVoitransDevice': 'Perangkat VOITRANS Saya', 'myVoitransDevice': 'Perangkat VOITRANS Saya',
'helpAndFeedback': 'Help & Feedback', 'helpAndFeedback': 'Bantuan & Umpan Balik',
'aboutVoitrans': 'About VOITRANS', 'aboutVoitrans': 'Tentang VOITRANS',
'meetingDays': 'Days', 'meetingDays': 'Hari',
'meetingHours': 'Hours', 'meetingHours': 'Jam',
'voitransAiMember': 'Voitrans AI Member', 'voitransAiMember': 'Anggota Voitrans AI',
'unlockStarterMember': 'Unlock Starter Member', 'unlockStarterMember': 'Buka Keanggotaan Starter',
'bindDeviceToActivate': 'bindDeviceToActivate':
'Ikat perangkat Voitrans untuk mengaktifkan keanggotaan Starter', 'Ikat perangkat Voitrans untuk mengaktifkan keanggotaan Starter',
'unlockNow': 'Unlock Now', 'unlockNow': 'Buka Sekarang',
// Meeting模块 - 会员与升级 // Meeting模块 - 会员与升级
'comparison': 'Comparison', 'comparison': 'Perbandingan',
'detailedInfo': 'Detailed Information', 'detailedInfo': 'Informasi Detail',
'monthlyTranscriptionTime': 'Monthly Transcription Time', 'monthlyTranscriptionTime': 'Waktu Transkripsi Bulanan',
'unlimited': 'Unlimited', 'unlimited': 'Tak Terbatas',
'professionalTemplates': 'Professional Templates', 'professionalTemplates': 'Templat Profesional',
'limited': 'Limited', 'limited': 'Terbatas',
'fullTemplates': 'Full Templates', 'fullTemplates': 'Templat Lengkap',
'professionalTerms': 'Professional Terms', 'professionalTerms': 'Istilah Profesional',
'customTemplates': 'Custom Templates', 'customTemplates': 'Templat Kustom',
'visualMindMap': 'Visual Mind Map', 'visualMindMap': 'Peta Pikiran Visual',
'speakerIdentification': 'Speaker Identification', 'speakerIdentification': 'Identifikasi Pembicara',
'aiVoiceEnhancement': 'AI Voice Enhancement', 'aiVoiceEnhancement': 'Peningkatan Suara AI',
'audioImport': 'Audio Import', 'audioImport': 'Impor Audio',
'multipleExportFormats': 'Multiple Export Formats', 'multipleExportFormats': 'Berbagai Format Ekspor',
'professionalSummaryTemplates': 'Professional Summary Templates', 'professionalSummaryTemplates': 'Templat Ringkasan Profesional',
'professionalTemplateDesc': 'professionalTemplateDesc':
'Professional template design to improve your work efficiency. Customized according to industry needs.', 'Desain templat profesional untuk meningkatkan efisiensi kerja Anda. Disesuaikan dengan kebutuhan industri.',
'customTemplateDesc': 'customTemplateDesc':
'You can customize summary prompts according to your needs and use them to generate the required summaries.', 'Anda dapat menyesuaikan prompt ringkasan sesuai kebutuhan dan menggunakannya untuk membuat ringkasan yang diinginkan.',
'askAiDesc': 'askAiDesc':
'Ekstrak informasi lebih dalam dari rekaman secara cerdas; buat tabel data, kesimpulan diskusi utama, daftar tugas, email laporan, dan konten berformat lainnya dengan sekali klik.', 'Ekstrak informasi lebih dalam dari rekaman secara cerdas; buat tabel data, kesimpulan diskusi utama, daftar tugas, email laporan, dan konten berformat lainnya dengan sekali klik.',
'visualMindMapDesc': 'visualMindMapDesc':
'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', 'Lebih dari ringkasan - atur dan visualisasikan poin-poin utama dengan peta pikiran untuk pemahaman teks yang lebih efektif.',
'templateCommunityDesc': 'templateCommunityDesc':
'Discover, share, and get inspiration from the template library created by users.', 'Temukan, bagikan, dan dapatkan inspirasi dari perpustakaan templat yang dibuat oleh pengguna.',
'speakerIdentificationDesc': 'speakerIdentificationDesc':
'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', 'Transkripsi audio akan mendukung identifikasi pembicara, merekonstruksi konten rapat atau panggilan telepon secara lebih intuitif. Ringkasan juga akan lebih akurat.',
'privateCloudSyncDesc': 'privateCloudSyncDesc':
'Rekaman dan transkripsi Anda akan disimpan dengan aman di server cloud khusus, dengan enkripsi penuh saat unggah dan unduh untuk memastikan privasi dan keamanan.', 'Rekaman dan transkripsi Anda akan disimpan dengan aman di server cloud khusus, dengan enkripsi penuh saat unggah dan unduh untuk memastikan privasi dan keamanan.',
'aiVoiceEnhancementDesc': 'aiVoiceEnhancementDesc':
'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', 'Peningkatan suara AI mendukung berbagai pengaturan pengurangan kebisingan, menghilangkan kebisingan latar secara cerdas, meningkatkan kejernihan suara, dan meningkatkan kualitas pemutaran audio.',
'audioImportDesc': 'audioImportDesc':
'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', 'Impor file audio dengan mudah dari aplikasi lokal atau pihak ketiga, seperti memo suara, Google Drive, dll.',
'multipleExportFormatsDesc': 'multipleExportFormatsDesc':
'Ekspor rekaman audio, teks transkripsi, dan ringkasan Anda dalam berbagai format (TXT, PDF, JPEG) sesuai kebutuhan.', 'Ekspor rekaman audio, teks transkripsi, dan ringkasan Anda dalam berbagai format (TXT, PDF, JPEG) sesuai kebutuhan.',
'upgradeMembership': 'Upgrade Your Membership', 'upgradeMembership': 'Tingkatkan Keanggotaan Anda',
'yearlySubscription': 'Yearly Subscription', 'yearlySubscription': 'Langganan Tahunan',
'monthlySubscription': 'Monthly Subscription', 'monthlySubscription': 'Langganan Bulanan',
'proMonthly': 'Pro ¥60/month', 'proMonthly': 'Pro ¥60/bulan',
'proMonthlyDesc': 'proMonthlyDesc':
'7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'Uji coba gratis 7 hari, lalu ¥800/tahun. Batalkan kapan saja sebelum uji coba berakhir.',
'sevenDayTrial': '7-day Free Trial', 'sevenDayTrial': 'Uji Coba Gratis 7 Hari',
'unlimitedMonthly': 'Unlimited ¥120/month', 'unlimitedMonthly': 'Unlimited ¥120/bulan',
'unlimitedMonthlyDesc': 'unlimitedMonthlyDesc':
'7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'Uji coba gratis 7 hari, lalu ¥1600/tahun. Batalkan kapan saja sebelum uji coba berakhir.',
'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'trialNote': '*Uji coba gratis 7 hari, lalu ditagih tahunan, batalkan kapan saja.',
'proPrice': 'Pro ¥120', 'proPrice': 'Pro ¥120',
'proMonthlyPrice': '¥120/month', 'proMonthlyPrice': '¥120/bulan',
'subscribe': 'Subscribe', 'subscribe': 'Berlangganan',
'unlimitedPrice': 'Unlimited ¥198', 'unlimitedPrice': 'Unlimited ¥198',
'unlimitedMonthlyPrice': '¥198/month', 'unlimitedMonthlyPrice': '¥198/bulan',
'upgradeNote': 'upgradeNote':
'*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', '*Setelah meningkatkan langganan, sisa hari langganan asli akan dihitung secara otomatis dan dikembalikan ke akun pembayaran Anda',
'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'buyMoreTranscriptionTime': 'Beli Waktu Transkripsi Tambahan',
'sixThousandMinutes': '6,000 minutes', 'sixThousandMinutes': '6.000 menit',
'threeThousandMinutes': '3,000 minutes', 'threeThousandMinutes': '3.000 menit',
'sixHundredMinutes': '600 minutes', 'sixHundredMinutes': '600 menit',
'oneHundredTwentyMinutes': '120 minutes', 'oneHundredTwentyMinutes': '120 menit',
'validityPeriod': '*Validity Period: ', 'validityPeriod': '*Masa Berlaku: ',
'validityNote': 'validityNote':
'Activated immediately after purchase, valid for 2 years after activation.', 'Aktif segera setelah pembelian, berlaku 2 tahun setelah aktivasi.',
'purchase': 'Purchase', 'purchase': 'Beli',
// Meeting模块 - 录音语言 // Meeting模块 - 录音语言
'recordLanguage': 'Bahasa Rekaman', 'recordLanguage': 'Bahasa Rekaman',
'cantonese': 'Cantonese', 'cantonese': 'Bahasa Kanton',
'sichuan': 'Sichuan Dialect', 'sichuan': 'Dialek Sichuan',
'shanghai': 'Shanghai Dialect', 'shanghai': 'Dialek Shanghai',
// Meeting模块 - 错误提示 // Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Unknown Language', 'meetingUnknownLanguage': 'Bahasa Tidak Dikenal',
'analysisFailed': 'Analisis gagal, silakan coba lagi nanti', 'analysisFailed': 'Analisis gagal, silakan coba lagi nanti',
'transcriptionFailed': 'Transkripsi gagal, silakan coba lagi nanti', 'transcriptionFailed': 'Transkripsi gagal, silakan coba lagi nanti',
'summaryFailed': 'Ringkasan gagal, silakan coba lagi nanti', 'summaryFailed': 'Ringkasan gagal, silakan coba lagi nanti',
@ -819,12 +819,12 @@ const Map<String, String> idID = {
"noDevicesBound": "Belum ada perangkat yang terikat", "noDevicesBound": "Belum ada perangkat yang terikat",
"pleaseBindDeviceFirst": "pleaseBindDeviceFirst":
"Silakan ikat perangkat terlebih dahulu untuk dikelola", "Silakan ikat perangkat terlebih dahulu untuk dikelola",
"noMacAddress": "No MAC Address", "noMacAddress": "Tidak Ada Alamat MAC",
"licenseCode": "License Code", "licenseCode": "Kode Lisensi",
"confirmUnbind": "Confirm Unbind", "confirmUnbind": "Konfirmasi Pelepasan",
"confirmUnbindMessage": "confirmUnbindMessage":
"Apakah Anda yakin ingin melepas ikatan perangkat \"{deviceName}\"?", "Apakah Anda yakin ingin melepas ikatan perangkat \"{deviceName}\"?",
"confirmUnbindAction": "Confirm Unbind", "confirmUnbindAction": "Konfirmasi Pelepasan",
// Agent模块 - 主界面 // Agent模块 - 主界面
"Lily": "Lily", "Lily": "Lily",
@ -916,11 +916,11 @@ const Map<String, String> idID = {
'generatedByAi': 'Dihasilkan oleh AI', 'generatedByAi': 'Dihasilkan oleh AI',
// Agent模块 - 工具调用 // Agent模块 - 工具调用
'toolCall': 'Tool Call', 'toolCall': 'Panggilan Alat',
'noResult': 'No Result', 'noResult': 'Tidak Ada Hasil',
'noToolCallContentToCopy': 'No tool call content to copy', 'noToolCallContentToCopy': 'Tidak ada konten panggilan alat untuk disalin',
'toolCallDetails': 'Tool Call Details:', 'toolCallDetails': 'Detail Panggilan Alat:',
'toolCallContentCopied': 'Tool call content copied to clipboard', 'toolCallContentCopied': 'Konten panggilan alat disalin ke papan klip',
// Agent模块 - 音乐卡片 // Agent模块 - 音乐卡片
'recommendedMusic': 'Berikut adalah beberapa musik yang direkomendasikan:', 'recommendedMusic': 'Berikut adalah beberapa musik yang direkomendasikan:',
@ -963,7 +963,7 @@ const Map<String, String> idID = {
'pleaseInstallBaiduMapApp': 'pleaseInstallBaiduMapApp':
'Silakan instal aplikasi Baidu Maps terlebih dahulu', 'Silakan instal aplikasi Baidu Maps terlebih dahulu',
'appleMapStartFailed': 'Apple Maps gagal dimulai', 'appleMapStartFailed': 'Apple Maps gagal dimulai',
'appleMapUnavailable': 'Apple Maps unavailable', 'appleMapUnavailable': 'Apple Maps tidak tersedia',
'openAppleMapError': 'Kesalahan saat membuka Apple Maps', 'openAppleMapError': 'Kesalahan saat membuka Apple Maps',
// Agent模块 - 天气卡片 // Agent模块 - 天气卡片
@ -1097,9 +1097,9 @@ const Map<String, String> idID = {
"processingFailed": "Pemrosesan Gagal", "processingFailed": "Pemrosesan Gagal",
"imageProcessingOrTranslationFailed": "imageProcessingOrTranslationFailed":
"Pemrosesan gambar atau terjemahan gagal. Silakan coba lagi.\nKesalahan: {error}", "Pemrosesan gambar atau terjemahan gagal. Silakan coba lagi.\nKesalahan: {error}",
"imageTooLarge": "Image size exceeds 4MB limit", "imageTooLarge": "Ukuran gambar melebihi batas 4MB",
"imageTooLargeHint": "imageTooLargeHint":
"Image size exceeds 4MB. Reduce quality or dimensions and retry", "Ukuran gambar melebihi 4MB. Kurangi kualitas atau dimensi lalu coba lagi",
"emptyTranslationResult": "API terjemahan gambar mengembalikan hasil kosong", "emptyTranslationResult": "API terjemahan gambar mengembalikan hasil kosong",
"imageTranslationFailedTryLater": "imageTranslationFailedTryLater":
"Terjemahan gambar gagal. Masalah jaringan atau batas laju. Silakan coba lagi nanti", "Terjemahan gambar gagal. Masalah jaringan atau batas laju. Silakan coba lagi nanti",
@ -1110,11 +1110,11 @@ const Map<String, String> idID = {
"photoAlbumPermissionRequired": "photoAlbumPermissionRequired":
"Izin album foto diperlukan untuk memilih gambar", "Izin album foto diperlukan untuk memilih gambar",
"translationDetails": "Detail Terjemahan", "translationDetails": "Detail Terjemahan",
"originalImage": "Original Image", "originalImage": "Gambar Asli",
"sourceLanguage": "Source Language", "sourceLanguage": "Bahasa Sumber",
"targetLanguage": "Target Language", "targetLanguage": "Bahasa Target",
"translationTime": "Waktu Terjemahan", "translationTime": "Waktu Terjemahan",
"shareInDevelopment": "Sharing feature under development", "shareInDevelopment": "Fitur berbagi sedang dalam pengembangan",
// 翻译模块 - 录音文件 // 翻译模块 - 录音文件
"translateAudioFiles": "Terjemahkan File Audio", "translateAudioFiles": "Terjemahkan File Audio",
@ -1165,8 +1165,8 @@ const Map<String, String> idID = {
'deleteAccount': 'Hapus Akun', 'deleteAccount': 'Hapus Akun',
'deleteAccountTips': 'deleteAccountTips':
'Apakah Anda yakin ingin menghapus akun Anda secara permanen? Tindakan ini tidak dapat dibatalkan', 'Apakah Anda yakin ingin menghapus akun Anda secara permanen? Tindakan ini tidak dapat dibatalkan',
'clean': 'Clear Cache', 'clean': 'Hapus Cache',
'cleanTips': 'Are you sure you want to clear personal cache?', 'cleanTips': 'Apakah Anda yakin ingin menghapus cache pribadi?',
'networkConnectionFailed': 'networkConnectionFailed':
'Koneksi jaringan gagal, silakan periksa pengaturan jaringan Anda dan coba lagi', 'Koneksi jaringan gagal, silakan periksa pengaturan jaringan Anda dan coba lagi',
'serverTemporarilyUnavailable': 'serverTemporarilyUnavailable':
@ -1208,7 +1208,7 @@ const Map<String, String> idID = {
'Layanan Akun telah diinisialisasi', // AccountService 已初始化 'Layanan Akun telah diinisialisasi', // AccountService 已初始化
// 权限模块 // 权限模块
'meetingStoragePermission': 'Storage', 'meetingStoragePermission': 'Penyimpanan',
'meetingStoragePermissionExplanation': 'meetingStoragePermissionExplanation':
'Kami memerlukan izin penyimpanan agar Anda dapat memilih dan mengunggah file audio.', 'Kami memerlukan izin penyimpanan agar Anda dapat memilih dan mengunggah file audio.',
'meetingStoragePermissionPermanentDenial': 'meetingStoragePermissionPermanentDenial':
@ -1224,8 +1224,8 @@ const Map<String, String> idID = {
'locationPermissions': 'Izin Lokasi', 'locationPermissions': 'Izin Lokasi',
'phone': 'Telepon', 'phone': 'Telepon',
'sms': 'SMS', 'sms': 'SMS',
'contacts': 'Contacts', 'contacts': 'Kontak',
'notification': 'Notification', 'notification': 'Notifikasi',
'alarm': 'Alarm', 'alarm': 'Alarm',
'calendarWrite': 'Tulis Kalender', 'calendarWrite': 'Tulis Kalender',
'calendarFullAccess': 'Akses Penuh Kalender', 'calendarFullAccess': 'Akses Penuh Kalender',
@ -1233,7 +1233,7 @@ const Map<String, String> idID = {
'phonePermissionDesc': 'Digunakan untuk fungsi melakukan panggilan', 'phonePermissionDesc': 'Digunakan untuk fungsi melakukan panggilan',
'smsPermissionDesc': 'Digunakan untuk fungsi mengirim SMS', 'smsPermissionDesc': 'Digunakan untuk fungsi mengirim SMS',
'alarmPermissionDesc': 'alarmPermissionDesc':
'Used to set exact alarms to ensure reminders trigger on time', 'Digunakan untuk mengatur alarm tepat agar pengingat berbunyi tepat waktu',
'calendarWritePermissionDesc': 'calendarWritePermissionDesc':
'Digunakan untuk membuat acara kalender dan pengingat', 'Digunakan untuk membuat acara kalender dan pengingat',
'calendarFullAccessPermissionDesc': 'calendarFullAccessPermissionDesc':
@ -1273,7 +1273,7 @@ const Map<String, String> idID = {
'Digunakan untuk menyambungkan ke perangkat Bluetooth', 'Digunakan untuk menyambungkan ke perangkat Bluetooth',
'bluetoothConnectPermissionDetailDesc': 'bluetoothConnectPermissionDetailDesc':
'Menyambungkan ke perangkat Bluetooth memerlukan izin koneksi Bluetooth', 'Menyambungkan ke perangkat Bluetooth memerlukan izin koneksi Bluetooth',
'notificationPermissionDesc': 'Used for sending notification messages', 'notificationPermissionDesc': 'Digunakan untuk mengirim pesan notifikasi',
'notificationPermissionDetailDesc': 'notificationPermissionDetailDesc':
'Aplikasi memerlukan izin notifikasi untuk mengirim peringatan dan pesan penting kepada Anda', 'Aplikasi memerlukan izin notifikasi untuk mengirim peringatan dan pesan penting kepada Anda',
'appNeedsPermissionForFullFunction': 'appNeedsPermissionForFullFunction':
@ -1281,7 +1281,7 @@ const Map<String, String> idID = {
'permanentDenialText': 'permanentDenialText':
'Anda telah menolak izin {permission} secara permanen, silakan buka pengaturan aplikasi untuk mengaktifkannya', 'Anda telah menolak izin {permission} secara permanen, silakan buka pengaturan aplikasi untuk mengaktifkannya',
'goToSettings': 'Buka Pengaturan', 'goToSettings': 'Buka Pengaturan',
'bluetoothScan': 'Bluetooth Scan', 'bluetoothScan': 'Pemindaian Bluetooth',
'bluetoothConnect': 'Koneksi Bluetooth', 'bluetoothConnect': 'Koneksi Bluetooth',
'bluetoothScanExplanation': 'bluetoothScanExplanation':
'Aplikasi memerlukan izin pemindaian Bluetooth untuk memindai perangkat Bluetooth di sekitar.', 'Aplikasi memerlukan izin pemindaian Bluetooth untuk memindai perangkat Bluetooth di sekitar.',
@ -1295,8 +1295,8 @@ const Map<String, String> idID = {
'Izin koneksi Bluetooth telah ditolak secara permanen, silakan buka pengaturan untuk mengaktifkannya secara manual.', 'Izin koneksi Bluetooth telah ditolak secara permanen, silakan buka pengaturan untuk mengaktifkannya secara manual.',
'locationPermanentDenial': 'locationPermanentDenial':
'Izin lokasi telah ditolak secara permanen, silakan buka pengaturan untuk mengaktifkannya secara manual.', 'Izin lokasi telah ditolak secara permanen, silakan buka pengaturan untuk mengaktifkannya secara manual.',
'notificationPermission': 'Notification', 'notificationPermission': 'Notifikasi',
'locationPermission': 'Location', 'locationPermission': 'Lokasi',
'notificationPermissionExplanation': 'notificationPermissionExplanation':
'Izin notifikasi diperlukan untuk menampilkan status pemutaran musik.', 'Izin notifikasi diperlukan untuk menampilkan status pemutaran musik.',
'locationPermissionExplanation': 'locationPermissionExplanation':
@ -1305,7 +1305,7 @@ const Map<String, String> idID = {
'Anda telah menolak izin notifikasi secara permanen, silakan buka pengaturan untuk mengaktifkannya.', 'Anda telah menolak izin notifikasi secara permanen, silakan buka pengaturan untuk mengaktifkannya.',
'locationPermissionPermanentDenial': 'locationPermissionPermanentDenial':
'Anda telah menolak izin lokasi secara permanen, silakan buka pengaturan untuk mengaktifkannya.', 'Anda telah menolak izin lokasi secara permanen, silakan buka pengaturan untuk mengaktifkannya.',
'storagePermission': 'Storage', 'storagePermission': 'Penyimpanan',
'microphonePermissionExplanation': 'microphonePermissionExplanation':
'Kami memerlukan izin mikrofon untuk merekam konten audio.', 'Kami memerlukan izin mikrofon untuk merekam konten audio.',
'storagePermissionExplanation': 'storagePermissionExplanation':
@ -1681,15 +1681,15 @@ const Map<String, String> idID = {
"东帝汶": "Timor Leste", "东帝汶": "Timor Leste",
"斐济": "Fiji", "斐济": "Fiji",
"所罗门群岛": "Kepulauan Solomon", "所罗门群岛": "Kepulauan Solomon",
"刚果民主共和国": "Democratic Republic of the Congo", "刚果民主共和国": "Republik Demokratik Kongo",
"安哥拉": "Angola", "安哥拉": "Angola",
"苏丹": "Sudan", "苏丹": "Sudan",
"马尔代夫": "Maldives", "马尔代夫": "Maladewa",
"不丹": "Bhutan", "不丹": "Bhutan",
"摩纳哥": "Monaco", "摩纳哥": "Monako",
"圣马力诺": "San Marino", "圣马力诺": "San Marino",
"牙买加": "Jamaica", "牙买加": "Jamaika",
"巴哈马": "Bahamas", "巴哈马": "Bahama",
"巴布亚新几内亚": "Papua New Guinea", "巴布亚新几内亚": "Papua Nugini",
"萨摩亚": "Samoa", "萨摩亚": "Samoa",
}; };

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

@ -255,10 +255,10 @@ const Map<String, String> isIS = {
"loadFailed": "Hleðsla mistókst", "loadFailed": "Hleðsla mistókst",
"statsLoadFailedTryLater": "statsLoadFailedTryLater":
"Tókst ekki að hlaða tölfræði. Reyndu aftur síðar.", "Tókst ekki að hlaða tölfræði. Reyndu aftur síðar.",
"cleanupComplete": "Cleanup Complete", "cleanupComplete": "Hreinsun lokið",
"cleanedOldData": "Cleaned data older than 90 days", "cleanedOldData": "Gögn eldri en 90 dagar hreinsað",
"exportFeature": "Export Feature", "exportFeature": "Útflutningseiginleiki",
"exportInDevelopment": "Data export is under development", "exportInDevelopment": "Gagnaútflutningur er í þróun",
// 商品模块 - 通用 // 商品模块 - 通用
'availablePackages': 'Tiltækir pakkar', 'availablePackages': 'Tiltækir pakkar',
@ -333,100 +333,102 @@ const Map<String, String> isIS = {
'AI-aðild er útrunnin, farðu á áfyllingarsíðu aðildar til að endurnýja.', 'AI-aðild er útrunnin, farðu á áfyllingarsíðu aðildar til að endurnýja.',
// 商品模块 - AI商品页 // 商品模块 - AI商品页
'musicAndRecommendation': 'Music & Recommendation', 'musicAndRecommendation': 'Tónlist og tillögur',
'navigationAndRoutes': 'Navigation & Routes', 'navigationAndRoutes': 'Leiðsögn og leiðir',
'nearbySearch': 'Nearby Search', 'nearbySearch': 'Leit í nágrenninu',
'newsInformation': 'News', 'newsInformation': 'Fréttir',
'communicationAssistant': 'Communication Assistant', 'communicationAssistant': 'Samskiptaaðstoðarmaður',
'aiHeaderDesc1': 'aiHeaderDesc1':
'Longer conversation quota, more tool calls, extended context length.', 'Lengri samtalskivóti, fleiri verkfæraköll, lengra samhengi.',
'aiHeaderDesc2': 'aiHeaderDesc2':
'Suitable for agent Q&A, summarization, analysis, and task execution.', 'Hentar fyrir spjallþjónn-spurningar, samantektir, greiningar og verkframkvæmd.',
'musicSearchPlaybackControl': 'Music library search and playback control', 'musicSearchPlaybackControl': 'Leit í tónlistarsafni og spilunastjórnun',
'smartPlaylistAndSimilarRecommendations': 'smartPlaylistAndSimilarRecommendations':
'Smart playlist and similar song recommendations', 'Snjall spilunarlisti og tillögur um svipuð lög',
'routePlanningAndCongestionAvoidance': 'routePlanningAndCongestionAvoidance':
'Route planning and congestion avoidance', 'Leiðarskipulag og umferðarstaðsetningu forðast',
'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'voiceBroadcastAndWaypoints': 'Raddkynning og millistaðarstillingar',
'realTimeWeatherForecast': 'Real-time weather and forecast', 'realTimeWeatherForecast': 'Rauntímaveður og spá',
'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', 'clothingAdviceAndTravelReminders':
'poiSearchFoodGasParking': 'POI search: dining / gas / parking', 'Klæðnaðarráðleggingar og ferðaáminningar',
'ratingsHoursAndDirectRoutes': 'Ratings, business hours, and direct routing', 'poiSearchFoodGasParking': 'POI-leit: veitingastaðir / bensín / bílastæði',
'hotNewsAndTopicOverview': 'Hot news and topic overview', 'ratingsHoursAndDirectRoutes':
'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'Einkunnir, opnunartímar og bein leiðarvalgsleið',
'helpCallAndSMS': 'Help with calls and SMS', 'hotNewsAndTopicOverview': 'Heitar fréttir og efnisyfirlit',
'longArticleSummariesAndKeyPoints':
'Samantektir á löngum greinum og lykilatriðum',
'helpCallAndSMS': 'Aðstoð við símtöl og SMS',
'templatedMessagesAndScheduleReminders': 'templatedMessagesAndScheduleReminders':
'Template messages and schedule reminders', 'Sniðmátsskilaboð og dagskráráminningar',
'aiDisclaimer': 'aiDisclaimer':
'Eiginleikar fara eftir heimildum tækis, framboði þjónustu og nettengingu.', 'Eiginleikar fara eftir heimildum tækis, framboði þjónustu og nettengingu.',
// 商品模块 - 翻译商品页 // 商品模块 - 翻译商品页
'realtimeTranscription': 'Real-time Transcription', 'realtimeTranscription': 'Rauntíma uppskrift',
'sceneLexicon': 'Scenario Glossary', 'sceneLexicon': 'Atburðarásorðabók',
'subtitleDisplay': 'Subtitles', 'subtitleDisplay': 'Skjátextar',
'transHeaderDesc1': 'transHeaderDesc1':
'Rauntíma samtímtúlkun og textaþýðing með lágri töf í rödd.', 'Rauntíma samtímtúlkun og textaþýðing með lágri töf í rödd.',
'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'transHeaderDesc2': 'Hentar fyrir ferðalög, viðskipti, ræður og kennslu.',
'translateZhEn': 'Kínversku-ensku þýðing', 'translateZhEn': 'Kínversku-ensku þýðing',
'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'lowLatencyVoiceBroadcast': 'Raddkynning með lágri töf',
'multiLangTextTranslation': 'Fjöltyng textaþýðing', 'multiLangTextTranslation': 'Fjöltyng textaþýðing',
'termOptimizationContextPreserve': 'termOptimizationContextPreserve': 'Hugtakabestun og samhengisgeymsla',
'Terminology optimization and context preservation', 'lexiconTourBusinessLife': 'Ferðalags-/viðskipta-/lífsordabækur',
'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'personalVocabularyMemory': 'Persónuleg orðaforðaminnir',
'personalVocabularyMemory': 'Personal vocabulary memory', 'conversationSubtitleLargeText': 'Samtalsskjátextar / Stórtextahamur',
'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'colorHighContrast': 'Mikið litasamræmi',
'colorHighContrast': 'High color contrast',
'transDisclaimer': 'Þýðing fer eftir hljóðnema, nettöf og umhverfishávaða.', 'transDisclaimer': 'Þýðing fer eftir hljóðnema, nettöf og umhverfishávaða.',
// 商品模块 - 会议商品页 // 商品模块 - 会议商品页
'meetingRecording': 'Fundarupptaka', 'meetingRecording': 'Fundarupptaka',
'transcriptionAndSummary': 'Transcription & Summary', 'transcriptionAndSummary': 'Uppskrift og samantekt',
'keywordSearch': 'Keyword Search', 'keywordSearch': 'Leitarorðaleit',
'collaborationSharing': 'Collaboration & Sharing', 'collaborationSharing': 'Samvinna og deling',
'meetingHeaderDesc1': 'meetingHeaderDesc1':
'Hljóðupptaka, uppskrift, leitarorðaleit og sjálfvirkt yfirlit til að auka skilvirkni funda.', 'Hljóðupptaka, uppskrift, leitarorðaleit og sjálfvirkt yfirlit til að auka skilvirkni funda.',
'meetingHeaderDesc2': 'meetingHeaderDesc2':
'Suitable for business meetings, class notes, and interview minutes.', 'Hentar fyrir viðskiptafundi, bekkarglósur og viðtalsfundargerðir.',
'meetingAutoRecording': 'Sjálfvirk upptaka og skipting', 'meetingAutoRecording': 'Sjálfvirk upptaka og skipting',
'meetingSpeakerTagging': 'Speaker labeling', 'meetingSpeakerTagging': 'Merking ræðumanns',
'meetingLongAudioTranscription': 'Long audio transcription', 'meetingLongAudioTranscription': 'Uppskrift langs hljóðs',
'meetingKeyPointSummary': 'Key point extraction', 'meetingKeyPointSummary': 'Útdráttur lykilatriða',
'meetingTopicNameSearch': 'Search by topic/name', 'meetingTopicNameSearch': 'Leita eftir efni/nafni',
'meetingTimelineJump': 'Timeline jump', 'meetingTimelineJump': 'Tímalínuhopp',
'meetingExportSummary': 'Export minutes', 'meetingExportSummary': 'Flytja út fundargerð',
'meetingMultiPlatformShare': 'Share across platforms', 'meetingMultiPlatformShare': 'Deila yfir vettvanga',
'meetingDisclaimer': 'meetingDisclaimer':
'Notaðu í hljóðlátu umhverfi; afköst fara eftir hljóðnema og neti.', 'Notaðu í hljóðlátu umhverfi; afköst fara eftir hljóðnema og neti.',
// 商品模块 - VIP会员页 // 商品模块 - VIP会员页
'benefitsOverview': 'Benefits overview', 'benefitsOverview': 'Yfirlit yfir hlunnindi',
'higherQuota': 'Higher usage quota', 'higherQuota': 'Hærri notkunarkvóti',
'lowerUnitPrice': 'Lower unit price', 'lowerUnitPrice': 'Lægra einingaverð',
'priorityService': 'Priority service', 'priorityService': 'Forgangsþjónusta',
'exclusiveSupportChannel': 'Dedicated support channel', 'exclusiveSupportChannel': 'Sérstakur stuðningsrás',
'fastResponse': 'Fast issue response', 'fastResponse': 'Hröð viðbrögð við vandamálum',
'eventsAndDiscounts': 'Events and discounts', 'eventsAndDiscounts': 'Viðburðir og afsláttur',
'memberExclusiveEvents': 'Member-exclusive events', 'memberExclusiveEvents': 'Viðburðir eingöngu fyrir meðlimi',
'longTermDiscountPlan': 'Long-term discount plan', 'longTermDiscountPlan': 'Langtímaafslátttaráætlun',
'generalPrivileges': 'General privileges', 'generalPrivileges': 'Almenn forréttindi',
'earlyAccessNewFeatures': 'Early access to new features', 'earlyAccessNewFeatures': 'Snemma aðgangur að nýjum eiginleikum',
'crossDeviceSync': 'Samstilling milli tækja', 'crossDeviceSync': 'Samstilling milli tækja',
'vipDisclaimer': 'vipDisclaimer':
'Actual benefits depend on the package details and may change with versions.', 'Raunveruleg hlunnindi fara eftir pakkaskilmálum og geta breyst með útgáfum.',
// 商品模块 - 商品名称与描述 // 商品模块 - 商品名称与描述
'ai_001_name': 'AI Basic 100', 'ai_001_name': 'AI Grunn 100',
'ai_002_name': 'AI Basic 500', 'ai_002_name': 'AI Grunn 500',
'ai_003_name': 'AI Basic 1000', 'ai_003_name': 'AI Grunn 1000',
'meet_001_name': 'Meeting Basic 100', 'meet_001_name': 'Fundur Grunn 100',
'meet_002_name': 'Meeting Basic 500', 'meet_002_name': 'Fundur Grunn 500',
'meet_003_name': 'Meeting Basic 1000', 'meet_003_name': 'Fundur Grunn 1000',
'trans_001_name': 'Þýðing Grunn 100', 'trans_001_name': 'Þýðing Grunn 100',
'trans_002_name': 'Þýðing Grunn 500', 'trans_002_name': 'Þýðing Grunn 500',
'trans_003_name': 'Þýðing Grunn 1000', 'trans_003_name': 'Þýðing Grunn 1000',
'ai_001_desc': 'Includes 100 uses. Access core AI features.', 'ai_001_desc': 'Inniheldur 100 notkun. Aðgangur að kjarna AI-eiginleikum.',
'ai_002_desc': 'Includes 500 uses. Access core AI features.', 'ai_002_desc': 'Inniheldur 500 notkun. Aðgangur að kjarna AI-eiginleikum.',
'ai_003_desc': 'Includes 1000 uses. Access core AI features.', 'ai_003_desc': 'Inniheldur 1000 notkun. Aðgangur að kjarna AI-eiginleikum.',
'meet_001_desc': 'Inniheldur 100 fundarupptökur/uppskriftir.', 'meet_001_desc': 'Inniheldur 100 fundarupptökur/uppskriftir.',
'meet_002_desc': 'Inniheldur 500 fundarupptökur/uppskriftir.', 'meet_002_desc': 'Inniheldur 500 fundarupptökur/uppskriftir.',
'meet_003_desc': 'Inniheldur 1000 fundarupptökur/uppskriftir.', 'meet_003_desc': 'Inniheldur 1000 fundarupptökur/uppskriftir.',
@ -435,46 +437,49 @@ const Map<String, String> isIS = {
'trans_003_desc': 'Inniheldur 1000 þýðingar (rödd/texti).', 'trans_003_desc': 'Inniheldur 1000 þýðingar (rödd/texti).',
// 商品模块 - 页脚 // 商品模块 - 页脚
'appNameProvider': 'App: VoiTrans · Provided by: VoiTrans', 'appNameProvider': 'Forrit: VoiTrans · Veitt af: VoiTrans',
'iapCustomerServiceQQLabel': 'IAP customer service QQ: @qq', 'iapCustomerServiceQQLabel': 'IAP þ jónustuver QQ: @qq',
'copyrightVoitrans': '© 2025 Voitrans Technologies', 'copyrightVoitrans': '© 2025 Voitrans Technologies',
// 新手引导 // 新手引导
'skip': "Sleppa", "skip": "Sleppa",
'next': 'Next', "next": "Næsta",
'sayLilyHint': 'Say "Lily Lily" to the mic', "sayLilyHint": "Segðu \"Lily Lily\" í hljóðnemana",
'imHere': 'I’m here~', "imHere": "Ég er hér~",
'guideWelcomeWakeAI': 'Welcome to Voitrans! First, wake your AI “Lily”.', "guideWelcomeWakeAI":
'aiReplyCompleted': 'Lily has finished the reply!', "Velkomin(n) í Voitrans! Fyrst skaltu vekja AI þitt \u201cLily\u201d.",
'aiThinking': 'Lily is thinking…', "aiReplyCompleted": "Lily hefur lokið svari!",
'guideAwakenSuccess': 'Great! Lily is awake—ask it to help.', "aiThinking": "Lily er að hugsa\u2026",
'confirmInput': 'Confirm Input', "guideAwakenSuccess": "Frábært! Lily er vakið — biddu það um hjálp.",
'guideClickSendPrefix': 'Tap send, ', "confirmInput": "Staðfesta innslátt",
'guideWeatherStart': 'Tell Lily: “What’s the weather today?”', "guideClickSendPrefix": "Pikkaðu á senda, ",
'guideWeatherInput': 'What’s the weather today?', "guideWeatherStart": "Segjðu Lily: \u201cHvernig er veðrið í dag?\u201d",
'guideWeatherSend': 'Lily will report the weather in real time', "guideWeatherInput": "Hvernig er veðrið í dag?",
'guideWeatherEnd': 'Lily can report weather live—try other commands', "guideWeatherSend": "Lily mun tilkynna veðrið í rauntíma",
'guideMusicStart': 'Tell Lily: “Play some rock music”', "guideWeatherEnd":
'guideMusicInput': 'Play some rock music', "Lily getur tilkynnt veðrið í rauntíma — prófaðu önnur skipun",
'guideMusicSend': 'Lily will find music for you', "guideMusicStart": "Segjðu Lily: \u201cSpilaðu rokktónlist\u201d",
'guideMusicEnd': 'Lily found music—try other commands', "guideMusicInput": "Spilaðu rokktónlist",
'guideNavStart': 'Tell Lily: “Navigate to Shenzhen Airport”', "guideMusicSend": "Lily mun finna tónlist fyrir þig",
'guideNavInput': 'Navigate to Shenzhen Airport', "guideMusicEnd": "Lily fann tónlist — prófaðu önnur skipun",
'guideNavSend': 'Lily will plan the route', "guideNavStart": "Segjðu Lily: \u201cLeiðsögn að Shenzhen flugvelli\u201d",
'guideNavEnd': 'Navigation set—try other commands', "guideNavInput": "Leiðsögn að Shenzhen flugvelli",
'guideMeetingStart': "guideNavSend": "Lily mun skipuleggja leiðina",
'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', "guideNavEnd": "Leiðsögn stillt — prófaðu önnur skipun",
'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', "guideMeetingStart":
'guideMeetingSend': 'Lily will create a meeting reminder', "Segjðu Lily: \u201cBúðu til fundarminningu fyrir kl. 15 á morgun\u201d",
'guideMeetingEnd': 'Reminder created—try other commands', "guideMeetingInput": "Búðu til fundarminningu fyrir kl. 15 á morgun",
'guidePhoneStart': 'Tell Lily: “Call Mom”', "guideMeetingSend": "Lily mun búa til fundarminningu",
'guidePhoneInput': 'Call Mom', "guideMeetingEnd": "Minning búin til — prófaðu önnur skipun",
'guidePhoneSend': 'Lily will make the call', "guidePhoneStart": "Segjðu Lily: \u201cHringdu í mömmu\u201d",
'guidePhoneEnd': 'Call placed—try other commands', "guidePhoneInput": "Hringdu í mömmu",
'guideSmsStart': 'Tell Lily: “Send Dad a text: I’ll be home for dinner”', "guidePhoneSend": "Lily mun hringja",
'guideSmsInput': 'Text Dad: I’ll be home for dinner', "guidePhoneEnd": "Símtal átti sér stað — prófaðu önnur skipun",
'guideSmsSend': 'Lily will send the message', "guideSmsStart":
'guideSmsEnd': 'Message sent—voice control is convenient', "Segjðu Lily: \u201cSendðu pabba SMS: Ég kem heim í kvöldmat\u201d",
"guideSmsInput": "SMS til pabba: Ég kem heim í kvöldmat",
"guideSmsSend": "Lily mun senda skilaboðin",
"guideSmsEnd": "Skilaboð send — raddstýring er þægileg",
// Meeting模块 - 首页与导航 // Meeting模块 - 首页与导航
"startMeeting": "Hefja fund", "startMeeting": "Hefja fund",
@ -503,9 +508,9 @@ const Map<String, String> isIS = {
'aiPenNotFound': 'AI PEN tæki fannst ekki', 'aiPenNotFound': 'AI PEN tæki fannst ekki',
'connectedToAiPen': 'Tengt við AI PEN tæki', 'connectedToAiPen': 'Tengt við AI PEN tæki',
'checkingNewFiles': 'Athuga nýjar skrár til að flytja inn', 'checkingNewFiles': 'Athuga nýjar skrár til að flytja inn',
'startingWifi': 'Starting Wi-Fi...', 'startingWifi': 'Ræsi Wi-Fi...',
'newFilesDetected': 'New files detected, preparing to import', 'newFilesDetected': 'Nýjar skrár fundust, undirbý innflutning',
'noNewFiles': 'No new files to import', 'noNewFiles': 'Engar nýjar skrár til að flytja inn',
'connectingWifi': 'Tengist Wi‑Fi...', 'connectingWifi': 'Tengist Wi‑Fi...',
'wifiConnected': 'Wi‑Fi tenging tókst', 'wifiConnected': 'Wi‑Fi tenging tókst',
'downloadingFiles': 'Sæki skrár...', 'downloadingFiles': 'Sæki skrár...',
@ -519,7 +524,7 @@ const Map<String, String> isIS = {
'liveRecording': 'Bein upptaka', 'liveRecording': 'Bein upptaka',
'audioVideoRecording': 'Hljóð-/myndupptaka', 'audioVideoRecording': 'Hljóð-/myndupptaka',
'callRecording': 'Símtalaupptaka', 'callRecording': 'Símtalaupptaka',
'importAudio': 'Import Audio', 'importAudio': 'Flytja inn hljóð',
'meetingRecordExitTitle': 'Hætta í upptöku', // 退出录音 'meetingRecordExitTitle': 'Hætta í upptöku', // 退出录音
'meetingRecordExitMessage': 'meetingRecordExitMessage':
'Veldu hvað á að gera áður en þú ferð', // 请选择离开后的操作 'Veldu hvað á að gera áður en þú ferð', // 请选择离开后的操作
@ -543,30 +548,30 @@ const Map<String, String> isIS = {
'Til að sýna fljótandi upptökustiku (tími/pása/halda áfram) meðan á upptöku stendur þurfum við yfirlagaleyfi.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 'Til að sýna fljótandi upptökustiku (tími/pása/halda áfram) meðan á upptöku stendur þurfum við yfirlagaleyfi.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。
'overlayPermissionOpenSettingsFailed': 'overlayPermissionOpenSettingsFailed':
'Ekki tókst að opna kerfisstillingar sjálfkrafa. Opnaðu Stillingar og virkjaðu yfirlagaleyfi handvirkt.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'Ekki tókst að opna kerfisstillingar sjálfkrafa. Opnaðu Stillingar og virkjaðu yfirlagaleyfi handvirkt.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。
'transcribing': 'Transcribing...', 'transcribing': 'Umritar...',
'summarizing': 'Summarizing...', 'summarizing': 'Tekur saman...',
'analyzing': 'Analyzing...', 'analyzing': 'Greinir...',
'summaryComplete': 'Summary Complete', 'summaryComplete': 'Samantekt lokið',
'generate': 'Generate', 'generate': 'Búa til',
'overview': 'Overview', 'overview': 'Yfirlit',
'transcription': 'Transcription', 'transcription': 'Uppskrift',
'summary': 'Summary', 'summary': 'Samantekt',
'mindMap': 'Mind Map', 'mindMap': 'Hugarkort',
'editSpeaker': 'Edit', 'editSpeaker': 'Breyta',
'nameSpeaker': 'Name Speaker', 'nameSpeaker': 'Nefna ræðumann',
// Meeting模块 - 转写与总结 // Meeting模块 - 转写与总结
'reSummarize': 'Re-summarize', 'reSummarize': 'Taka saman aftur',
'dateAndTime': 'Date & Time', 'dateAndTime': 'Dagsetning og tími',
'location': 'Location', 'location': 'Staðsetning',
'attendees': 'Attendees', 'attendees': 'Þátttakendur',
'inputLocation': 'Enter Location', 'inputLocation': 'Sláðu inn staðsetningu',
'inputAttendees': 'Enter Attendees', 'inputAttendees': 'Sláðu inn þátttakendur',
// Meeting模块 - 模版与生成 // Meeting模块 - 模版与生成
'selectSummaryTemplate': 'Select Summary Template', 'selectSummaryTemplate': 'Veldu samantektarsniðmát',
'useThisTemplate': 'Use This Template', 'useThisTemplate': 'Nota þetta sniðmát',
'lastUsed': 'Last Used', 'lastUsed': 'Síðast notað',
'create': 'Búa til', 'create': 'Búa til',
'templateDetails': 'Sniðmátsupplýsingar', 'templateDetails': 'Sniðmátsupplýsingar',
'tag': 'Merki', 'tag': 'Merki',
@ -583,24 +588,24 @@ const Map<String, String> isIS = {
'inputDescHint': 'Vinsamlegast sláðu inn lýsingu', 'inputDescHint': 'Vinsamlegast sláðu inn lýsingu',
'custom': 'Sérsniðið', 'custom': 'Sérsniðið',
'pleaseEnter': 'Vinsamlegast sláðu inn', 'pleaseEnter': 'Vinsamlegast sláðu inn',
'viewAll': 'View All', 'viewAll': 'Skoða allt',
'recordingLanguage': 'Upptökutungumál', 'recordingLanguage': 'Upptökutungumál',
'chineseSimplified': 'Chinese Mandarin (Simplified)', 'chineseSimplified': 'Kínverska (einfölduð mandórín)',
'meetingGenerateNow': 'Generate Now', 'meetingGenerateNow': 'Búa til núna',
'keyEventsAnalyzed': 'Analyzed {count} key events.', 'keyEventsAnalyzed': 'Greinð {count} lykilatvik.',
'aiAnalysisDesc': 'aiAnalysisDesc':
'AI-greining finnur lykilatburði í upptökum, svo þú getir valið mikilvæga atburði fyrir AI-úrvinnslu.', 'AI-greining finnur lykilatburði í upptökum, svo þú getir valið mikilvæga atburði fyrir AI-úrvinnslu.',
// Meeting模块 - 文件操作 // Meeting模块 - 文件操作
'importing': 'Importing...', 'importing': 'Flytur inn...',
'batchImporting': 'Batch importing...', 'batchImporting': 'Fjöldainnflutningur...',
'importingLocalRecordings': 'Flyt inn staðbundnar upptökur...', 'importingLocalRecordings': 'Flyt inn staðbundnar upptökur...',
'importFailed': 'Innflutningur skráar mistókst: {filePath}, villa: {error}', 'importFailed': 'Innflutningur skráar mistókst: {filePath}, villa: {error}',
'importSuccess': 'Tókst að flytja inn {count} staðbundnar upptökur', 'importSuccess': 'Tókst að flytja inn {count} staðbundnar upptökur',
'importError': 'Innflutningur mistókst: {error}', 'importError': 'Innflutningur mistókst: {error}',
'pleaseSelectAudioFile': 'Veldu hljóðskrá', 'pleaseSelectAudioFile': 'Veldu hljóðskrá',
'shareAudio': 'Share Meeting Audio', 'shareAudio': 'Deila fundarhátóni',
'shareComplete': 'Share complete!', 'shareComplete': 'Deilingu lokið!',
'shareFailed': 'Deiling mistókst: {error}', 'shareFailed': 'Deiling mistókst: {error}',
'fileProcessingFailed': 'Skráarvinnsla mistókst: {filePath}, villa: {error}', 'fileProcessingFailed': 'Skráarvinnsla mistókst: {filePath}, villa: {error}',
@ -618,15 +623,15 @@ const Map<String, String> isIS = {
'generateKeyIndicators': 'Búa til lykilmælikvarða', 'generateKeyIndicators': 'Búa til lykilmælikvarða',
// Meeting模块 - 分享与导出 // Meeting模块 - 分享与导出
'shareLink': 'Share Link', 'shareLink': 'Deila hlekk',
'copyTranscript': 'Copy Transcript', 'copyTranscript': 'Afrita umritun',
'copySummary': 'Copy Summary', 'copySummary': 'Afrita samantekt',
'exportAudio': 'Export Audio', 'exportAudio': 'Flytja út hjóð',
'exportTranscript': 'Export Transcript', 'exportTranscript': 'Flytja út umritun',
'shareMeetingAudio': 'Share Meeting Audio', 'shareMeetingAudio': 'Deila fundarhátóni',
'exportSummary': 'Export Summary', 'exportSummary': 'Flytja út samantekt',
'exportAs': 'Export As', 'exportAs': 'Flytja út sem',
'exportingPDF': 'Exporting PDF...', 'exportingPDF': 'Flytur út PDF...',
'export': 'Flytja út', 'export': 'Flytja út',
// Meeting模块 - 发言者 // Meeting模块 - 发言者
@ -656,87 +661,87 @@ const Map<String, String> isIS = {
'enabled': 'Virkt', 'enabled': 'Virkt',
'disabled': 'Óvirkt', 'disabled': 'Óvirkt',
'myVoitransDevice': 'Mitt VOITRANS tæki', 'myVoitransDevice': 'Mitt VOITRANS tæki',
'helpAndFeedback': 'Help & Feedback', 'helpAndFeedback': 'Hjálp og endurgjöf',
'aboutVoitrans': 'About VOITRANS', 'aboutVoitrans': 'Um VOITRANS',
'meetingDays': 'Days', 'meetingDays': 'Dagar',
'meetingHours': 'Hours', 'meetingHours': 'Klukkustundir',
'voitransAiMember': 'Voitrans AI Member', 'voitransAiMember': 'Voitrans AI meðlimur',
'unlockStarterMember': 'Unlock Starter Member', 'unlockStarterMember': 'Opna byrjendaáskrift',
'bindDeviceToActivate': 'Tengdu Voitrans tæki til að virkja Starter-aðild', 'bindDeviceToActivate': 'Tengdu Voitrans tæki til að virkja Starter-aðild',
'unlockNow': 'Unlock Now', 'unlockNow': 'Opna núna',
// Meeting模块 - 会员与升级 // Meeting模块 - 会员与升级
'comparison': 'Comparison', 'comparison': 'Samanburður',
'detailedInfo': 'Detailed Information', 'detailedInfo': 'Nákvæmar upplýsingar',
'monthlyTranscriptionTime': 'Monthly Transcription Time', 'monthlyTranscriptionTime': 'Mánaðarlegur umritunartími',
'unlimited': 'Unlimited', 'unlimited': 'Ótakmarkaður',
'professionalTemplates': 'Professional Templates', 'professionalTemplates': 'Fagleg sniðmát',
'limited': 'Limited', 'limited': 'Takmarkaður',
'fullTemplates': 'Full Templates', 'fullTemplates': 'Öll sniðmát',
'professionalTerms': 'Professional Terms', 'professionalTerms': 'Fagleg hugtök',
'customTemplates': 'Custom Templates', 'customTemplates': 'Sérsniðin sniðmát',
'visualMindMap': 'Visual Mind Map', 'visualMindMap': 'Sjónrænt hugakort',
'speakerIdentification': 'Speaker Identification', 'speakerIdentification': 'Auðkenning ræðumanns',
'aiVoiceEnhancement': 'AI Voice Enhancement', 'aiVoiceEnhancement': 'AI hjóðbæting',
'audioImport': 'Audio Import', 'audioImport': 'Hjóðinnflutningur',
'multipleExportFormats': 'Multiple Export Formats', 'multipleExportFormats': 'Margir útflutningssnið',
'professionalSummaryTemplates': 'Professional Summary Templates', 'professionalSummaryTemplates': 'Fagleg samantektarsniðmát',
'professionalTemplateDesc': 'professionalTemplateDesc':
'Professional template design to improve your work efficiency. Customized according to industry needs.', 'Fagleg sniðmátshönnun til að bæta vinnusemi þina. Sérsniðin að îförfum iðnaðarins.',
'customTemplateDesc': 'customTemplateDesc':
'You can customize summary prompts according to your needs and use them to generate the required summaries.', 'Þú getur sérsniðið samantektarfyrirspurnir að þinum îförfum og notað þær til að búa til nauðsynlegar samantektir.',
'askAiDesc': 'askAiDesc':
'Dregur á skynsamlegan hátt dýpri upplýsingar úr upptökum og býr til gagnatöflur, lykilniðurstöður umræðu, verkefnalista, skýrslupósta og annað sniðað efni með einum smelli.', 'Dregur á skynsamlegan hátt dýpri upplýsingar úr upptökum og býr til gagnatöflur, lykilniðurstöður umræðu, verkefnalista, skýrslupósta og annað sniðað efni með einum smelli.',
'visualMindMapDesc': 'visualMindMapDesc':
'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', 'Umfram samantektir – skipulagaðu og sýnigerðu lykilatriði með hugakortum til að skilja heildartæki betur.',
'templateCommunityDesc': 'templateCommunityDesc':
'Discover, share, and get inspiration from the template library created by users.', 'Uppgötvaðu, deildu og fáðu innblástur frá sniðmátasafni sem notendur búa til.',
'speakerIdentificationDesc': 'speakerIdentificationDesc':
'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', 'Hjóðumritun mun styðja auðkenningu ræðumanna, endurskapa fundarefni eða símasamtalsefni á náttúrulegan hátt. Samantektin verður nákvæmri.',
'privateCloudSyncDesc': 'privateCloudSyncDesc':
'Upptökur og uppskriftir verða geymdar örugglega á sértækum skýjaþjónum, með fullri dulkóðun við upp- og niðurhal til að tryggja persónuvernd og öryggi.', 'Upptökur og uppskriftir verða geymdar örugglega á sértækum skýjaþjónum, með fullri dulkóðun við upp- og niðurhal til að tryggja persónuvernd og öryggi.',
'aiVoiceEnhancementDesc': 'aiVoiceEnhancementDesc':
'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', 'AI hjóðbæting styður margar stillingar fyrir hjóðminnkun, eyðir bakgrunnsáreiti á snjöllum hátt, eykur skirlægi röddanna og bætir gæði hjóðspilunar.',
'audioImportDesc': 'audioImportDesc':
'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', 'Flytja auðveldlega inn hjóðskrár frá staðbundnæm eða þrirðja aðila forritum, sæ sem raðdmænnisatriðum, Google Drive o.fl.',
'multipleExportFormatsDesc': 'multipleExportFormatsDesc':
'Flyttu út hljóðupptökur, uppskriftartexta og samantektir í ýmsum sniðum (TXT, PDF, JPEG) eftir þörfum.', 'Flyttu út hljóðupptökur, uppskriftartexta og samantektir í ýmsum sniðum (TXT, PDF, JPEG) eftir þörfum.',
'upgradeMembership': 'Upgrade Your Membership', 'upgradeMembership': 'Uppfæra áskrift þina',
'yearlySubscription': 'Yearly Subscription', 'yearlySubscription': 'Árleg áskrift',
'monthlySubscription': 'Monthly Subscription', 'monthlySubscription': 'Mánaðarleg áskrift',
'proMonthly': 'Pro ¥60/month', 'proMonthly': 'Pro ¥60/mánuð',
'proMonthlyDesc': 'proMonthlyDesc':
'7-day free trial, then ¥800/year. Cancel anytime before trial ends.', '7 daga ókeypis prufutímabil, síðan ¥800/ár. Hætta má hvenær sem er áður en prufutímabilinu lýkur.',
'sevenDayTrial': '7-day Free Trial', 'sevenDayTrial': '7 daga ókeypis prufutímabil',
'unlimitedMonthly': 'Unlimited ¥120/month', 'unlimitedMonthly': 'Unlimited ¥120/mánuð',
'unlimitedMonthlyDesc': 'unlimitedMonthlyDesc':
'7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', '7 daga ókeypis prufutímabil, síðan ¥1600/ár. Hætta má hvenær sem er áður en prufutímabilinu lýkur.',
'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'trialNote':
'*Ókeypis prufutímabil í 7 daga, síðan gjaldgengur árlega, hætta má hvenær sem er.',
'proPrice': 'Pro ¥120', 'proPrice': 'Pro ¥120',
'proMonthlyPrice': '¥120/month', 'proMonthlyPrice': '¥120/mánuð',
'subscribe': 'Subscribe', 'subscribe': 'Gerast áskrifandi',
'unlimitedPrice': 'Unlimited ¥198', 'unlimitedPrice': 'Unlimited ¥198',
'unlimitedMonthlyPrice': '¥198/month', 'unlimitedMonthlyPrice': '¥198/mánuð',
'upgradeNote': 'upgradeNote':
'*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', '*Eftir uppfærslu áskriftar verða þeim dögum sem eftir eru af upprunalegri áskrift sjálf kræft reiknuð og endurgreidd á greiðslureikning þinn',
'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'buyMoreTranscriptionTime': 'Kaupa meira umritunartíma',
'sixThousandMinutes': '6,000 minutes', 'sixThousandMinutes': '6.000 mínúur',
'threeThousandMinutes': '3,000 minutes', 'threeThousandMinutes': '3.000 mínúur',
'sixHundredMinutes': '600 minutes', 'sixHundredMinutes': '600 mínúur',
'oneHundredTwentyMinutes': '120 minutes', 'oneHundredTwentyMinutes': '120 mínúur',
'validityPeriod': '*Validity Period: ', 'validityPeriod': '*Gildistímabil: ',
'validityNote': 'validityNote': 'Virkúst strax eftir kaup, gilt í 2 ár eftir virkjun.',
'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Kaupa',
'purchase': 'Purchase',
// Meeting模块 - 录音语言 // Meeting模块 - 录音语言
'recordLanguage': 'Upptökutungumál', 'recordLanguage': 'Upptökutungumál',
'cantonese': 'Cantonese', 'cantonese': 'Kantóníska',
'sichuan': 'Sichuan Dialect', 'sichuan': 'Sichuan-mál',
'shanghai': 'Shanghai Dialect', 'shanghai': 'Sjangháí-mál',
// Meeting模块 - 错误提示 // Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Unknown Language', 'meetingUnknownLanguage': 'Óîkkt tungumál',
'analysisFailed': 'Greining mistókst, reyndu aftur síðar', 'analysisFailed': 'Greining mistókst, reyndu aftur síðar',
'transcriptionFailed': 'Umritun mistókst, reyndu aftur síðar', 'transcriptionFailed': 'Umritun mistókst, reyndu aftur síðar',
'summaryFailed': 'Samantekt mistókst, reyndu aftur síðar', 'summaryFailed': 'Samantekt mistókst, reyndu aftur síðar',
@ -814,7 +819,7 @@ const Map<String, String> isIS = {
"deviceTypeClassicBluetoothHeadset": "Klassísk Bluetooth heyrnartól", "deviceTypeClassicBluetoothHeadset": "Klassísk Bluetooth heyrnartól",
"deviceTypeBleBluetoothHeadset": "BLE Bluetooth heyrnartól", "deviceTypeBleBluetoothHeadset": "BLE Bluetooth heyrnartól",
"deviceTypeSmartVoiceRecorder": "Snjall raddupptökutæki", "deviceTypeSmartVoiceRecorder": "Snjall raddupptökutæki",
"deviceTypeSmartEye": "Smart Glasses", "deviceTypeSmartEye": 'Snjallgleraugun',
"unbind": "Losa bindingu", "unbind": "Losa bindingu",
"noDevicesBound": "Engin tæki hafa verið tengd enn", "noDevicesBound": "Engin tæki hafa verið tengd enn",
"pleaseBindDeviceFirst": "Tengdu fyrst tæki til að stjórna", "pleaseBindDeviceFirst": "Tengdu fyrst tæki til að stjórna",
@ -991,7 +996,7 @@ const Map<String, String> isIS = {
"thursday": "Fim", "thursday": "Fim",
"friday": "Fös", "friday": "Fös",
"saturday": "Lau", "saturday": "Lau",
"sunday": "Sun", "sunday": 'Sun',
// Agent模块 - 天气描述 // Agent模块 - 天气描述
"sunny": "Sólskin", "sunny": "Sólskin",
@ -1092,9 +1097,9 @@ const Map<String, String> isIS = {
"processingFailed": "Vinnsla mistókst", "processingFailed": "Vinnsla mistókst",
"imageProcessingOrTranslationFailed": "imageProcessingOrTranslationFailed":
"Myndvinnsla eða þýðing mistókst. Reyndu aftur.\nVilla: {error}", "Myndvinnsla eða þýðing mistókst. Reyndu aftur.\nVilla: {error}",
"imageTooLarge": "Image size exceeds 4MB limit", "imageTooLarge": 'Myndstærð fer yfir 4 MB takmörkun',
"imageTooLargeHint": "imageTooLargeHint":
"Image size exceeds 4MB. Reduce quality or dimensions and retry", 'Myndstærð fer yfir 4 MB. Minnkaðu gæði eða stærð og reyndu aftur',
"emptyTranslationResult": "Myndþýðingar-API skilaði tómri niðurstöðu", "emptyTranslationResult": "Myndþýðingar-API skilaði tómri niðurstöðu",
"imageTranslationFailedTryLater": "imageTranslationFailedTryLater":
"Myndþýðing mistókst. Netvandamál eða takmörk á beiðnum. Reyndu síðar", "Myndþýðing mistókst. Netvandamál eða takmörk á beiðnum. Reyndu síðar",
@ -1104,11 +1109,11 @@ const Map<String, String> isIS = {
"cameraPermissionRequired": "Myndaheimild þarf til að taka myndir", "cameraPermissionRequired": "Myndaheimild þarf til að taka myndir",
"photoAlbumPermissionRequired": "Myndaalbúmsheimild þarf til að velja myndir", "photoAlbumPermissionRequired": "Myndaalbúmsheimild þarf til að velja myndir",
"translationDetails": "Þýðingarupplýsingar", "translationDetails": "Þýðingarupplýsingar",
"originalImage": "Original Image", "originalImage": 'Upprunaleg mynd',
"sourceLanguage": "Source Language", "sourceLanguage": 'Upprunatungumál',
"targetLanguage": "Target Language", "targetLanguage": 'Marktungumál',
"translationTime": "Þýðingartími", "translationTime": "Þýðingartími",
"shareInDevelopment": "Sharing feature under development", "shareInDevelopment": 'Deilieiginleiki í þróun',
// 翻译模块 - 录音文件 // 翻译模块 - 录音文件
"translateAudioFiles": "Þýða hljóðskrár", "translateAudioFiles": "Þýða hljóðskrár",
@ -1160,8 +1165,8 @@ const Map<String, String> isIS = {
'deleteAccount': 'Eyða reikningi', 'deleteAccount': 'Eyða reikningi',
'deleteAccountTips': 'deleteAccountTips':
'Ertu viss um að þú viljir eyða reikningnum þínum varanlega? Ekki er hægt að afturkalla þessa aðgerð.', 'Ertu viss um að þú viljir eyða reikningnum þínum varanlega? Ekki er hægt að afturkalla þessa aðgerð.',
'clean': 'Clear Cache', 'clean': 'Hreinsa skyndiminni',
'cleanTips': 'Are you sure you want to clear personal cache?', 'cleanTips': 'Ertu viss um að þú viljir hreinsa persónulegt skyndiminni?',
'networkConnectionFailed': 'networkConnectionFailed':
'Netkerfistenging mistókst, vinsamlegast athugaðu netkerfisstillingar og reyndu aftur', 'Netkerfistenging mistókst, vinsamlegast athugaðu netkerfisstillingar og reyndu aftur',
'serverTemporarilyUnavailable': 'serverTemporarilyUnavailable':
@ -1229,7 +1234,7 @@ const Map<String, String> isIS = {
'phonePermissionDesc': 'Notað fyrir símtalsaðgerð', 'phonePermissionDesc': 'Notað fyrir símtalsaðgerð',
'smsPermissionDesc': 'Notað fyrir SMS sendingaraðgerð', 'smsPermissionDesc': 'Notað fyrir SMS sendingaraðgerð',
'alarmPermissionDesc': 'alarmPermissionDesc':
'Used to set exact alarms to ensure reminders trigger on time', 'Notað til að setja nákvæmar viðvaranir til að tryggja að áminningar birtist á réttum tíma',
'calendarWritePermissionDesc': 'calendarWritePermissionDesc':
'Notað til að búa til dagbókarviðburði og áminningar', 'Notað til að búa til dagbókarviðburði og áminningar',
'calendarFullAccessPermissionDesc': 'calendarFullAccessPermissionDesc':
@ -1268,7 +1273,7 @@ const Map<String, String> isIS = {
'bluetoothConnectPermissionDesc': 'Notað til að tengjast Bluetooth-tækjum', 'bluetoothConnectPermissionDesc': 'Notað til að tengjast Bluetooth-tækjum',
'bluetoothConnectPermissionDetailDesc': 'bluetoothConnectPermissionDetailDesc':
'Tenging við Bluetooth-tæki krefst Bluetooth-tengingarheimildar', 'Tenging við Bluetooth-tæki krefst Bluetooth-tengingarheimildar',
'notificationPermissionDesc': 'Used for sending notification messages', 'notificationPermissionDesc': 'Notað til að senda tilkynningarskilaboð',
'notificationPermissionDetailDesc': 'notificationPermissionDetailDesc':
'Forritið þarf tilkynningaheimild til að senda þér mikilvægar viðvaranir og skilaboð', 'Forritið þarf tilkynningaheimild til að senda þér mikilvægar viðvaranir og skilaboð',
'appNeedsPermissionForFullFunction': 'appNeedsPermissionForFullFunction':
@ -1583,14 +1588,14 @@ const Map<String, String> isIS = {
"南非": "Suður-Afríka", "南非": "Suður-Afríka",
"沙特阿拉伯": "Sádi-Arabía", "沙特阿拉伯": "Sádi-Arabía",
"土耳其": "Tyrkland", "土耳其": "Tyrkland",
"日本": "Japan", "日本": 'Japan',
"韩国": "Suður-Kórea", "韩国": "Suður-Kórea",
"新加坡": "Singapúr", "新加坡": "Singapúr",
"马来西亚": "Malasía", "马来西亚": "Malasía",
"泰国": "Taíland", "泰国": "Taíland",
"越南": "Víetnam", "越南": "Víetnam",
"印度": "Indland", "印度": "Indland",
"巴基斯坦": "Pakistan", "巴基斯坦": 'Pakistan',
"菲律宾": "Filippseyjar", "菲律宾": "Filippseyjar",
"印度尼西亚": "Indónesía", "印度尼西亚": "Indónesía",
"阿联酋": "Sameinuðu arabísku furstadæmin", "阿联酋": "Sameinuðu arabísku furstadæmin",
@ -1615,7 +1620,7 @@ const Map<String, String> isIS = {
"挪威": "Noregur", "挪威": "Noregur",
"波兰": "Pólland", "波兰": "Pólland",
"秘鲁": "Perú", "秘鲁": "Perú",
"智利": "Chile", "智利": 'Síle',
"哥伦比亚": "Kólumbía", "哥伦比亚": "Kólumbía",
"委内瑞拉": "Venesúela", "委内瑞拉": "Venesúela",
"葡萄牙": "Portúgal", "葡萄牙": "Portúgal",
@ -1623,7 +1628,7 @@ const Map<String, String> isIS = {
"爱尔兰": "Írland", "爱尔兰": "Írland",
"冰岛": "Ísland", "冰岛": "Ísland",
"阿尔巴尼亚": "Albanía", "阿尔巴尼亚": "Albanía",
"马耳他": "Malta", "马耳他": 'Malta',
"塞浦路斯": "Kýpur", "塞浦路斯": "Kýpur",
"芬兰": "Finnland", "芬兰": "Finnland",
"保加利亚": "Búlgaría", "保加利亚": "Búlgaría",
@ -1637,11 +1642,11 @@ const Map<String, String> isIS = {
"捷克": "Tékkland", "捷克": "Tékkland",
"斯洛伐克": "Slóvakía", "斯洛伐克": "Slóvakía",
"危地马拉": "Gvatemala", "危地马拉": "Gvatemala",
"萨尔瓦多": "El Salvador", "萨尔瓦多": 'El Salvador',
"洪都拉斯": "Hondúras", "洪都拉斯": "Hondúras",
"尼加拉瓜": "Níkaragva", "尼加拉瓜": "Níkaragva",
"哥斯达黎加": "Kosta Ríka", "哥斯达黎加": "Kosta Ríka",
"巴拿马": "Panama", "巴拿马": 'Panama',
"海地": "Haítí", "海地": "Haítí",
"玻利维亚": "Bólivía", "玻利维亚": "Bólivía",
"厄瓜多尔": "Ekvador", "厄瓜多尔": "Ekvador",
@ -1668,23 +1673,23 @@ const Map<String, String> isIS = {
"阿富汗": "Afganistan", "阿富汗": "Afganistan",
"斯里兰卡": "Srí Lanka", "斯里兰卡": "Srí Lanka",
"缅甸": "Mjanmar", "缅甸": "Mjanmar",
"尼泊尔": "Nepal", "尼泊尔": 'Nepal',
"蒙古": "Mongólía", "蒙古": "Mongólía",
"柬埔寨": "Kambódía", "柬埔寨": "Kambódía",
"老挝": "Laos", "老挝": 'Laos',
"文莱": "Brúnei", "文莱": "Brúnei",
"东帝汶": "Austur-Tímor", "东帝汶": "Austur-Tímor",
"斐济": "Fídjí", "斐济": "Fídjí",
"所罗门群岛": "Salómonseyjar", "所罗门群岛": "Salómonseyjar",
"刚果民主共和国": "Democratic Republic of the Congo", "刚果民主共和国": 'Lýðveldlýðrið Kongó',
"安哥拉": "Angola", "安哥拉": 'Angóla',
"苏丹": "Sudan", "苏丹": 'Súdam',
"马尔代夫": "Maldives", "马尔代夫": 'Maldíveyjur',
"不丹": "Bhutan", "不丹": 'Bútan',
"摩纳哥": "Monaco", "摩纳哥": 'Mónakó',
"圣马力诺": "San Marino", "圣马力诺": 'San Marínó',
"牙买加": "Jamaica", "牙买加": 'Jamaíka',
"巴哈马": "Bahamas", "巴哈马": 'Bahamaeyjar',
"巴布亚新几内亚": "Papua New Guinea", "巴布亚新几内亚": 'Papúa Njá Gínea',
"萨摩亚": "Samoa", "萨摩亚": 'Samóa',
}; };

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

@ -30,7 +30,7 @@ const Map<String, String> itIT = {
"sloganInfo": "Esperto vocale AI · Sempre e ovunque", "sloganInfo": "Esperto vocale AI · Sempre e ovunque",
// 底部导航 // 底部导航
"home": "Home", "home": 'Home',
"explore": "Esplora", "explore": "Esplora",
"settings": "Impostazioni", "settings": "Impostazioni",
@ -49,7 +49,7 @@ const Map<String, String> itIT = {
"russian": "Russo", "russian": "Russo",
"vietnamese": "Vietnamita", "vietnamese": "Vietnamita",
"italian": "Italiano", "italian": "Italiano",
"hindi": "Hindi", "hindi": 'Hindi',
"indonesian": "Indonesiano", "indonesian": "Indonesiano",
"thai": "Tailandese", "thai": "Tailandese",
"malay": "Malese", "malay": "Malese",
@ -371,9 +371,9 @@ const Map<String, String> itIT = {
'Le funzionalità dipendono dalle autorizzazioni del dispositivo, dalla disponibilità del servizio e dalle condizioni di rete.', 'Le funzionalità dipendono dalle autorizzazioni del dispositivo, dalla disponibilità del servizio e dalle condizioni di rete.',
// 商品模块 - 翻译商品页 // 商品模块 - 翻译商品页
'realtimeTranscription': 'Real-time Transcription', 'realtimeTranscription': 'Trascrizione in tempo reale',
'sceneLexicon': 'Scenario Glossary', 'sceneLexicon': 'Glossario per scenario',
'subtitleDisplay': 'Subtitles', 'subtitleDisplay': 'Sottotitoli',
'transHeaderDesc1': 'transHeaderDesc1':
'Interpretazione simultanea e traduzione di testo in tempo reale, con voce a bassa latenza.', 'Interpretazione simultanea e traduzione di testo in tempo reale, con voce a bassa latenza.',
'transHeaderDesc2': 'Adatto a viaggi, affari, discorsi e insegnamento.', 'transHeaderDesc2': 'Adatto a viaggi, affari, discorsi e insegnamento.',
@ -392,7 +392,7 @@ const Map<String, String> itIT = {
// 商品模块 - 会议商品页 // 商品模块 - 会议商品页
'meetingRecording': 'Registrazione riunione', 'meetingRecording': 'Registrazione riunione',
'transcriptionAndSummary': 'Transcription & Summary', 'transcriptionAndSummary': 'Trascrizione e riepilogo',
'keywordSearch': 'Ricerca per parole chiave', 'keywordSearch': 'Ricerca per parole chiave',
'collaborationSharing': 'Collaborazione e condivisione', 'collaborationSharing': 'Collaborazione e condivisione',
'meetingHeaderDesc1': 'meetingHeaderDesc1':
@ -427,18 +427,18 @@ const Map<String, String> itIT = {
'I benefici effettivi dipendono dai dettagli del pacchetto e possono cambiare con le versioni.', 'I benefici effettivi dipendono dai dettagli del pacchetto e possono cambiare con le versioni.',
// 商品模块 - 商品名称与描述 // 商品模块 - 商品名称与描述
'ai_001_name': 'AI Basic 100', 'ai_001_name': 'AI Base 100',
'ai_002_name': 'AI Basic 500', 'ai_002_name': 'AI Base 500',
'ai_003_name': 'AI Basic 1000', 'ai_003_name': 'AI Base 1000',
'meet_001_name': 'Meeting Basic 100', 'meet_001_name': 'Riunione Base 100',
'meet_002_name': 'Meeting Basic 500', 'meet_002_name': 'Riunione Base 500',
'meet_003_name': 'Meeting Basic 1000', 'meet_003_name': 'Riunione Base 1000',
'trans_001_name': 'Traduzione Base 100', 'trans_001_name': 'Traduzione Base 100',
'trans_002_name': 'Traduzione Base 500', 'trans_002_name': 'Traduzione Base 500',
'trans_003_name': 'Traduzione Base 1000', 'trans_003_name': 'Traduzione Base 1000',
'ai_001_desc': 'Includes 100 uses. Access core AI features.', 'ai_001_desc': 'Include 100 utilizzi. Accesso alle funzionalità AI principali.',
'ai_002_desc': 'Includes 500 uses. Access core AI features.', 'ai_002_desc': 'Include 500 utilizzi. Accesso alle funzionalità AI principali.',
'ai_003_desc': 'Includes 1000 uses. Access core AI features.', 'ai_003_desc': 'Include 1000 utilizzi. Accesso alle funzionalità AI principali.',
'meet_001_desc': 'Include 100 registrazioni/trascrizioni di riunioni.', 'meet_001_desc': 'Include 100 registrazioni/trascrizioni di riunioni.',
'meet_002_desc': 'Include 500 registrazioni/trascrizioni di riunioni.', 'meet_002_desc': 'Include 500 registrazioni/trascrizioni di riunioni.',
'meet_003_desc': 'Include 1000 registrazioni/trascrizioni di riunioni.', 'meet_003_desc': 'Include 1000 registrazioni/trascrizioni di riunioni.',
@ -447,32 +447,32 @@ const Map<String, String> itIT = {
'trans_003_desc': 'Include 1000 traduzioni (voce/testo).', 'trans_003_desc': 'Include 1000 traduzioni (voce/testo).',
// 商品模块 - 页脚 // 商品模块 - 页脚
'appNameProvider': 'App: VoiTrans · Provided by: VoiTrans', 'appNameProvider': 'App: VoiTrans · Fornita da: VoiTrans',
'iapCustomerServiceQQLabel': 'IAP customer service QQ: @qq', 'iapCustomerServiceQQLabel': 'Servizio clienti IAP QQ: @qq',
'copyrightVoitrans': '© 2025 Voitrans Technologies', 'copyrightVoitrans': '© 2025 Voitrans Technologies',
// 新手引导 // 新手引导
'skip': "Salta", 'skip': "Salta",
'next': 'Next', "next": "Avanti",
'sayLilyHint': "Say \"Lily Lily\" to the mic", "sayLilyHint": "Di’ alla mic: Lily Lily",
'imHere': "I’m here~", "imHere": "Eccomi~",
'guideWelcomeWakeAI': "Welcome to Voitrans! First, wake your AI “Lily”.", "guideWelcomeWakeAI": "Benvenuto in Voitrans! Prima, sveglia la tua AI Lily.",
'aiReplyCompleted': "Lily has finished the reply!", "aiReplyCompleted": "Lily ha finito di rispondere!",
'aiThinking': "Lily is thinking…", "aiThinking": "Lily sta pensando...",
'guideAwakenSuccess': "Great! Lily is awake—ask it to help.", "guideAwakenSuccess": "Ottimo! Lily e’ sveglia, chiedi il suo aiuto.",
'confirmInput': "Confirm Input", "confirmInput": "Conferma inserimento",
'guideClickSendPrefix': "Tap send, ", "guideClickSendPrefix": "Tocca invia, ",
'guideWeatherStart': "Tell Lily: “What’s the weather today?”", "guideWeatherStart": "Di’ a Lily: Che tempo fa oggi?",
'guideWeatherInput': "What’s the weather today?", "guideWeatherInput": "Che tempo fa oggi?",
'guideWeatherSend': "Lily will report the weather in real time", "guideWeatherSend": "Lily riportera’ il meteo in tempo reale",
'guideWeatherEnd': "Lily can report weather live—try other commands", "guideWeatherEnd": "Lily puo’ riportare il meteo in diretta, prova altri comandi",
'guideMusicStart': "Tell Lily: “Play some rock music”", "guideMusicStart": "Di’ a Lily: Metti della musica rock",
'guideMusicInput': "Play some rock music", "guideMusicInput": "Metti della musica rock",
'guideMusicSend': "Lily will find music for you", "guideMusicSend": "Lily trovera’ della musica per te",
'guideMusicEnd': "Lily found music—try other commands", "guideMusicEnd": "Lily ha trovato la musica, prova altri comandi",
'guideNavStart': "Tell Lily: “Navigate to Shenzhen Airport”", "guideNavStart": "Di’ a Lily: Naviga verso l’aeroporto di Shenzhen",
'guideNavInput': "Navigate to Shenzhen Airport", "guideNavInput": "Naviga verso l’aeroporto di Shenzhen",
'guideNavSend': "Lily will plan the route", "guideNavSend": "Lily pianifichera’ il percorso",
'guideNavEnd': "Navigazione impostata: prova altri comandi", 'guideNavEnd': "Navigazione impostata: prova altri comandi",
'guideMeetingStart': 'guideMeetingStart':
"Di' a Lily: “Crea un promemoria riunione per domani alle 15”", "Di' a Lily: “Crea un promemoria riunione per domani alle 15”",
@ -735,10 +735,10 @@ const Map<String, String> itIT = {
'upgradeNote': 'upgradeNote':
"Dopo l'upgrade dell'abbonamento, i giorni rimanenti dell'abbonamento originale verranno calcolati automaticamente e rimborsati sul tuo conto di pagamento", "Dopo l'upgrade dell'abbonamento, i giorni rimanenti dell'abbonamento originale verranno calcolati automaticamente e rimborsati sul tuo conto di pagamento",
'buyMoreTranscriptionTime': 'Acquista altro tempo di trascrizione', 'buyMoreTranscriptionTime': 'Acquista altro tempo di trascrizione',
'sixThousandMinutes': '6,000 minutes', 'sixThousandMinutes': '6.000 minuti',
'threeThousandMinutes': '3,000 minutes', 'threeThousandMinutes': '3.000 minuti',
'sixHundredMinutes': '600 minutes', 'sixHundredMinutes': '600 minuti',
'oneHundredTwentyMinutes': '120 minutes', 'oneHundredTwentyMinutes': '120 minuti',
'validityPeriod': '*Periodo di validità: ', 'validityPeriod': '*Periodo di validità: ',
'validityNote': 'validityNote':
"Attivato immediatamente dopo l'acquisto, valido per 2 anni dopo l'attivazione.", "Attivato immediatamente dopo l'acquisto, valido per 2 anni dopo l'attivazione.",
@ -846,7 +846,7 @@ const Map<String, String> itIT = {
// Agent模块 - 主界面 // Agent模块 - 主界面
"Lily": "Lily", "Lily": "Lily",
"clearChatHistory": "Cancella cronologia chat", "clearChatHistory": "Cancella cronologia chat",
"online": "Online", "online": 'Online',
"ttsSpeed": "Velocità della voce", "ttsSpeed": "Velocità della voce",
"ttsSpeedDefaultHint": "Predefinito +25%", "ttsSpeedDefaultHint": "Predefinito +25%",
"inputMessage": "Inserisci messaggio...", "inputMessage": "Inserisci messaggio...",
@ -1175,8 +1175,8 @@ const Map<String, String> itIT = {
// 个人资料模块 // 个人资料模块
"editProfile": "Modifica informazioni personali", "editProfile": "Modifica informazioni personali",
"avatar": "Avatar", "avatar": 'Avatar',
"nickname": "Nickname", "nickname": 'Soprannome',
"save": "Salva", "save": "Salva",
"about": "Informazioni", "about": "Informazioni",
"enterNickname": "Inserisci un nickname", "enterNickname": "Inserisci un nickname",
@ -1187,8 +1187,8 @@ const Map<String, String> itIT = {
'deleteAccount': 'Elimina account', 'deleteAccount': 'Elimina account',
'deleteAccountTips': 'deleteAccountTips':
'Sei sicuro di voler eliminare permanentemente il tuo account? Questa azione non può essere annullata.', 'Sei sicuro di voler eliminare permanentemente il tuo account? Questa azione non può essere annullata.',
'clean': 'Clear Cache', 'clean': 'Svuota cache',
'cleanTips': 'Are you sure you want to clear personal cache?', 'cleanTips': 'Sei sicuro di voler cancellare la cache personale?',
'networkConnectionFailed': 'networkConnectionFailed':
'Connessione di rete fallita, controlla le impostazioni di rete e riprova', 'Connessione di rete fallita, controlla le impostazioni di rete e riprova',
'serverTemporarilyUnavailable': 'serverTemporarilyUnavailable':
@ -1599,23 +1599,23 @@ const Map<String, String> itIT = {
"泰语": "Tailandese", "泰语": "Tailandese",
"越南语": "Vietnamita", "越南语": "Vietnamita",
"印尼语": "Indonesiano", "印尼语": "Indonesiano",
"印地语": "Hindi", "印地语": 'Hindi',
"土耳其语": "Turco", "土耳其语": "Turco",
"马来语": "Malese", "马来语": "Malese",
"孟加拉语": "Bengalese", "孟加拉语": "Bengalese",
"泰米尔语": "Tamil", "泰米尔语": 'Tamil',
"泰卢固语": "Telugu", "泰卢固语": 'Telugu',
"马拉提语": "Marathi", "马拉提语": 'Marathi',
"乌尔都语": "Urdu", "乌尔都语": 'Urdu',
"波斯语": "Persiano", "波斯语": "Persiano",
"斯瓦希里语": "Swahili", "斯瓦希里语": 'Swahili',
// 国家列表 // 国家列表
"邮箱": "E-mail", "邮箱": "E-mail",
"中国": "Cina", "中国": "Cina",
"美国": "Stati Uniti", "美国": "Stati Uniti",
"加拿大": "Canada", "加拿大": 'Canada',
"俄罗斯": "Russia", "俄罗斯": 'Russia',
"英国": "Regno Unito", "英国": "Regno Unito",
"德国": "Germania", "德国": "Germania",
"意大利": "Italia", "意大利": "Italia",
@ -1626,19 +1626,19 @@ const Map<String, String> itIT = {
"土耳其": "Turchia", "土耳其": "Turchia",
"日本": "Giappone", "日本": "Giappone",
"韩国": "Corea del Sud", "韩国": "Corea del Sud",
"新加坡": "Singapore", "新加坡": 'Singapore',
"马来西亚": "Malesia", "马来西亚": "Malesia",
"泰国": "Tailandia", "泰国": "Tailandia",
"越南": "Vietnam", "越南": 'Vietnam',
"印度": "India", "印度": 'India',
"巴基斯坦": "Pakistan", "巴基斯坦": 'Pakistan',
"菲律宾": "Filippine", "菲律宾": "Filippine",
"印度尼西亚": "Indonesia", "印度尼西亚": 'Indonesia',
"阿联酋": "Emirati Arabi Uniti", "阿联酋": "Emirati Arabi Uniti",
"墨西哥": "Messico", "墨西哥": "Messico",
"巴西": "Brasile", "巴西": "Brasile",
"阿根廷": "Argentina", "阿根廷": 'Argentina',
"澳大利亚": "Australia", "澳大利亚": 'Australia',
"新西兰": "Nuova Zelanda", "新西兰": "Nuova Zelanda",
"中国香港": "Hong Kong (Cina)", "中国香港": "Hong Kong (Cina)",
"中国澳门": "Macao (Cina)", "中国澳门": "Macao (Cina)",
@ -1648,84 +1648,84 @@ const Map<String, String> itIT = {
"荷兰": "Paesi Bassi", "荷兰": "Paesi Bassi",
"比利时": "Belgio", "比利时": "Belgio",
"匈牙利": "Ungheria", "匈牙利": "Ungheria",
"罗马尼亚": "Romania", "罗马尼亚": 'Romania',
"瑞士": "Svizzera", "瑞士": "Svizzera",
"奥地利": "Austria", "奥地利": 'Austria',
"丹麦": "Danimarca", "丹麦": "Danimarca",
"瑞典": "Svezia", "瑞典": "Svezia",
"挪威": "Norvegia", "挪威": "Norvegia",
"波兰": "Polonia", "波兰": "Polonia",
"秘鲁": "Perù", "秘鲁": "Perù",
"智利": "Cile", "智利": "Cile",
"哥伦比亚": "Colombia", "哥伦比亚": 'Colombia',
"委内瑞拉": "Venezuela", "委内瑞拉": 'Venezuela',
"葡萄牙": "Portogallo", "葡萄牙": "Portogallo",
"卢森堡": "Lussemburgo", "卢森堡": "Lussemburgo",
"爱尔兰": "Irlanda", "爱尔兰": "Irlanda",
"冰岛": "Islanda", "冰岛": "Islanda",
"阿尔巴尼亚": "Albania", "阿尔巴尼亚": 'Albania',
"马耳他": "Malta", "马耳他": 'Malta',
"塞浦路斯": "Cipro", "塞浦路斯": "Cipro",
"芬兰": "Finlandia", "芬兰": "Finlandia",
"保加利亚": "Bulgaria", "保加利亚": 'Bulgaria',
"立陶宛": "Lituania", "立陶宛": "Lituania",
"拉脱维亚": "Lettonia", "拉脱维亚": "Lettonia",
"爱沙尼亚": "Estonia", "爱沙尼亚": 'Estonia',
"乌克兰": "Ucraina", "乌克兰": "Ucraina",
"塞尔维亚": "Serbia", "塞尔维亚": 'Serbia',
"克罗地亚": "Croazia", "克罗地亚": "Croazia",
"斯洛文尼亚": "Slovenia", "斯洛文尼亚": 'Slovenia',
"捷克": "Repubblica Ceca", "捷克": "Repubblica Ceca",
"斯洛伐克": "Slovacchia", "斯洛伐克": "Slovacchia",
"危地马拉": "Guatemala", "危地马拉": 'Guatemala',
"萨尔瓦多": "El Salvador", "萨尔瓦多": 'El Salvador',
"洪都拉斯": "Honduras", "洪都拉斯": 'Honduras',
"尼加拉瓜": "Nicaragua", "尼加拉瓜": 'Nicaragua',
"哥斯达黎加": "Costa Rica", "哥斯达黎加": 'Costa Rica',
"巴拿马": "Panama", "巴拿马": 'Panama',
"海地": "Haiti", "海地": 'Haiti',
"玻利维亚": "Bolivia", "玻利维亚": 'Bolivia',
"厄瓜多尔": "Ecuador", "厄瓜多尔": 'Ecuador',
"巴拉圭": "Paraguay", "巴拉圭": 'Paraguay',
"乌拉圭": "Uruguay", "乌拉圭": 'Uruguay',
"摩洛哥": "Marocco", "摩洛哥": "Marocco",
"阿尔及利亚": "Algeria", "阿尔及利亚": 'Algeria',
"突尼斯": "Tunisia", "突尼斯": 'Tunisia',
"尼日利亚": "Nigeria", "尼日利亚": 'Nigeria',
"加纳": "Ghana", "加纳": 'Ghana',
"埃塞俄比亚": "Etiopia", "埃塞俄比亚": "Etiopia",
"肯尼亚": "Kenya", "肯尼亚": 'Kenya',
"坦桑尼亚": "Tanzania", "坦桑尼亚": 'Tanzania',
"乌干达": "Uganda", "乌干达": 'Uganda',
"孟加拉国": "Bangladesh", "孟加拉国": 'Bangladesh',
"以色列": "Israele", "以色列": "Israele",
"黎巴嫩": "Libano", "黎巴嫩": "Libano",
"约旦": "Giordania", "约旦": "Giordania",
"伊拉克": "Iraq", "伊拉克": 'Iraq',
"科威特": "Kuwait", "科威特": 'Kuwait',
"巴林": "Bahrain", "巴林": 'Bahrain',
"卡塔尔": "Qatar", "卡塔尔": 'Qatar',
"阿曼": "Oman", "阿曼": 'Oman',
"阿富汗": "Afghanistan", "阿富汗": 'Afghanistan',
"斯里兰卡": "Sri Lanka", "斯里兰卡": 'Sri Lanka',
"缅甸": "Myanmar", "缅甸": 'Myanmar',
"尼泊尔": "Nepal", "尼泊尔": 'Nepal',
"蒙古": "Mongolia", "蒙古": 'Mongolia',
"柬埔寨": "Cambogia", "柬埔寨": "Cambogia",
"老挝": "Laos", "老挝": 'Laos',
"文莱": "Brunei", "文莱": 'Brunei',
"东帝汶": "Timor Est", "东帝汶": "Timor Est",
"斐济": "Figi", "斐济": "Figi",
"所罗门群岛": "Isole Salomone", "所罗门群岛": "Isole Salomone",
"刚果民主共和国": "Democratic Republic of the Congo", "刚果民主共和国": 'Repubblica Democratica del Congo',
"安哥拉": "Angola", "安哥拉": 'Angola',
"苏丹": "Sudan", "苏丹": 'Sudan',
"马尔代夫": "Maldives", "马尔代夫": 'Maldive',
"不丹": "Bhutan", "不丹": 'Bhutan',
"摩纳哥": "Monaco", "摩纳哥": 'Monaco',
"圣马力诺": "San Marino", "圣马力诺": 'San Marino',
"牙买加": "Jamaica", "牙买加": 'Giamaica',
"巴哈马": "Bahamas", "巴哈马": 'Bahamas',
"巴布亚新几内亚": "Papua New Guinea", "巴布亚新几内亚": 'Papua Nuova Guinea',
"萨摩亚": "Samoa", "萨摩亚": 'Samoa',
}; };

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

@ -6,7 +6,7 @@ const Map<String, String> jaJP = {
'cancel': 'キャンセル', 'cancel': 'キャンセル',
'retry': '再試行', 'retry': '再試行',
'error': 'エラー', 'error': 'エラー',
'success': '成功', 'success': '成功', // 成功
'connected': '接続済み', 'connected': '接続済み',
'connecting': '接続中...', 'connecting': '接続中...',
'connectionFailure': '接続失敗', 'connectionFailure': '接続失敗',
@ -223,8 +223,8 @@ const Map<String, String> jaJP = {
"totalCharacters": "総文字数", "totalCharacters": "総文字数",
"apiCallStats": "API呼び出し統計", "apiCallStats": "API呼び出し統計",
"translationApi": "翻訳API", "translationApi": "翻訳API",
"asr": "ASR", "asr": "音声認識(ASR)",
"tts": "TTS", "tts": "音声合成(TTS)",
"dataVolumeStats": "データ量統計", "dataVolumeStats": "データ量統計",
"sourceTextCharacters": "原文文字数", "sourceTextCharacters": "原文文字数",
"ttsTextCharacters": "TTS文字数", "ttsTextCharacters": "TTS文字数",
@ -385,12 +385,12 @@ const Map<String, String> jaJP = {
'vipDisclaimer': '実際の特典はパッケージの詳細により異なり、バージョンアップにより変更される場合があります。', 'vipDisclaimer': '実際の特典はパッケージの詳細により異なり、バージョンアップにより変更される場合があります。',
// 商品模块 - 商品名称与描述 // 商品模块 - 商品名称与描述
'ai_001_name': 'AI Basic 100', 'ai_001_name': 'AI ベーシック 100',
'ai_002_name': 'AI Basic 500', 'ai_002_name': 'AI ベーシック 500',
'ai_003_name': 'AI Basic 1000', 'ai_003_name': 'AI ベーシック 1000',
'meet_001_name': 'Meeting Basic 100', 'meet_001_name': '会議ベーシック 100',
'meet_002_name': 'Meeting Basic 500', 'meet_002_name': '会議ベーシック 500',
'meet_003_name': 'Meeting Basic 1000', 'meet_003_name': '会議ベーシック 1000',
'trans_001_name': '翻訳ベーシック 100', 'trans_001_name': '翻訳ベーシック 100',
'trans_002_name': '翻訳ベーシック 500', 'trans_002_name': '翻訳ベーシック 500',
'trans_003_name': '翻訳ベーシック 1000', 'trans_003_name': '翻訳ベーシック 1000',
@ -405,8 +405,8 @@ const Map<String, String> jaJP = {
'trans_003_desc': '翻訳(音声/テキスト)を1000回分含みます。', 'trans_003_desc': '翻訳(音声/テキスト)を1000回分含みます。',
// 商品模块 - 页脚 // 商品模块 - 页脚
'appNameProvider': 'App: VoiTrans · Provided by: VoiTrans', 'appNameProvider': 'アプリ名:VoiTrans · 提供元:VoiTrans',
'iapCustomerServiceQQLabel': 'IAP customer service QQ: @qq', 'iapCustomerServiceQQLabel': 'IAPカスタマーサービス QQ: @qq',
'copyrightVoitrans': '© 2025 Voitrans Technologies', 'copyrightVoitrans': '© 2025 Voitrans Technologies',
// 新手引导 // 新手引导
@ -546,7 +546,7 @@ const Map<String, String> jaJP = {
'inputDescHint': '説明を入力してください', 'inputDescHint': '説明を入力してください',
'custom': 'カスタム', 'custom': 'カスタム',
'pleaseEnter': '入力してください', 'pleaseEnter': '入力してください',
'viewAll': 'View All', 'viewAll': 'すべて表示',
'recordingLanguage': '録音言語', 'recordingLanguage': '録音言語',
'chineseSimplified': '中国語(簡体字)', 'chineseSimplified': '中国語(簡体字)',
'meetingGenerateNow': '今すぐ生成', 'meetingGenerateNow': '今すぐ生成',
@ -575,7 +575,7 @@ const Map<String, String> jaJP = {
'askAI': 'AIに質問 ...', 'askAI': 'AIに質問 ...',
'askAIPrompt': '今日は何をお手伝いできますか?', 'askAIPrompt': '今日は何をお手伝いできますか?',
'continueAsk': '続けて質問', 'continueAsk': '続けて質問',
'todoList': 'To-Do List', 'todoList': 'To-Doリスト',
'extractConclusion': '要約を抽出', 'extractConclusion': '要約を抽出',
'generateKeyIndicators': '重要指標を生成', 'generateKeyIndicators': '重要指標を生成',
@ -612,7 +612,7 @@ const Map<String, String> jaJP = {
'templateCommunity': 'テンプレートコミュニティ', 'templateCommunity': 'テンプレートコミュニティ',
'comingSoon': '近日公開', 'comingSoon': '近日公開',
'integration': '連携', 'integration': '連携',
'voitransPrivateCloud': 'VOITRANS PRIVATE CLOUD', 'voitransPrivateCloud': 'VOITRANS プライベートクラウド',
'enabled': '有効', 'enabled': '有効',
'disabled': '無効', 'disabled': '無効',
'myVoitransDevice': '私のVOITRANSデバイス', 'myVoitransDevice': '私のVOITRANSデバイス',
@ -620,8 +620,8 @@ const Map<String, String> jaJP = {
'aboutVoitrans': 'VOITRANSについて', 'aboutVoitrans': 'VOITRANSについて',
'meetingDays': '日', 'meetingDays': '日',
'meetingHours': '時間', 'meetingHours': '時間',
'voitransAiMember': 'Voitrans AI Member', 'voitransAiMember': 'Voitrans AI会員',
'unlockStarterMember': 'Unlock Starter Member', 'unlockStarterMember': 'スターター会員を解除',
'bindDeviceToActivate': 'Voitransデバイスを紐付けてStarter会員を有効化', 'bindDeviceToActivate': 'Voitransデバイスを紐付けてStarter会員を有効化',
'unlockNow': '今すぐ解除', 'unlockNow': '今すぐ解除',
@ -661,24 +661,23 @@ const Map<String, String> jaJP = {
'upgradeMembership': '会員をアップグレード', 'upgradeMembership': '会員をアップグレード',
'yearlySubscription': '年次サブスクリプション', 'yearlySubscription': '年次サブスクリプション',
'monthlySubscription': '月次サブスクリプション', 'monthlySubscription': '月次サブスクリプション',
'proMonthly': 'Pro ¥60/month', 'proMonthly': 'Pro ¥60/月',
'proMonthlyDesc': 'proMonthlyDesc': '7日間無料トライアル、その後¥800/年。トライアル終了前にいつでもキャンセル可能。',
'7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'sevenDayTrial': '7日間無料トライアル',
'sevenDayTrial': '7日無料試用版', 'unlimitedMonthly': '無制限 ¥120/月',
'unlimitedMonthly': '無制限 ¥120/month', 'unlimitedMonthlyDesc': '7日間無料トライアル、その後¥1600/年。トライアル終了前にいつでもキャンセル可能。',
'unlimitedMonthlyDesc': '7日無料試用版、続き ¥1600/year. 試用版終了前にいつでもキャンセルできます。', 'trialNote': '*7日間無料トライアル、その後¥1600/年。トライアル終了前にいつでもキャンセル可能。',
'trialNote': '*7日無料試用版、続き ¥1600/year. 試用版終了前にいつでもキャンセルできます。', 'proPrice': 'プロ ¥120',
'proPrice': 'Pro ¥120', 'proMonthlyPrice': '¥120/月',
'proMonthlyPrice': '¥120/month',
'subscribe': 'サブスクリプションを購入', 'subscribe': 'サブスクリプションを購入',
'unlimitedPrice': 'Unlimited ¥198', 'unlimitedPrice': '無制限 ¥198',
'unlimitedMonthlyPrice': '¥198/month', 'unlimitedMonthlyPrice': '¥198/月',
'upgradeNote': '*会員をアップグレードすると、元のサブスクリプションの残り日数が自動的に計算され、支払いアカウントに返金されます。', 'upgradeNote': '*会員をアップグレードすると、元のサブスクリプションの残り日数が自動的に計算され、支払いアカウントに返金されます。',
'buyMoreTranscriptionTime': '文字起こし時間を追加購入', 'buyMoreTranscriptionTime': '文字起こし時間を追加購入',
'sixThousandMinutes': '6,000 minutes', 'sixThousandMinutes': '6,000分',
'threeThousandMinutes': '3,000 minutes', 'threeThousandMinutes': '3,000分',
'sixHundredMinutes': '600 minutes', 'sixHundredMinutes': '600分',
'oneHundredTwentyMinutes': '120 minutes', 'oneHundredTwentyMinutes': '120分',
'validityPeriod': '*有効期間: ', 'validityPeriod': '*有効期間: ',
'validityNote': '購入後すぐに有効になり、アクティベーション後2年間有効です。', 'validityNote': '購入後すぐに有効になり、アクティベーション後2年間有効です。',
'purchase': '購入', 'purchase': '購入',
@ -880,7 +879,7 @@ const Map<String, String> jaJP = {
"driving": "運転", "driving": "運転",
"walking": "徒歩", "walking": "徒歩",
"bicycling": "自転車", "bicycling": "自転車",
"tsransit": "Transit", "tsransit": "乗り換え",
// Agent模块 - 导航选择 // Agent模块 - 导航选择
'selectNavigationApp': 'ナビアプリを選択', 'selectNavigationApp': 'ナビアプリを選択',
@ -1003,9 +1002,9 @@ const Map<String, String> jaJP = {
"maxSize": "最大サイズ", "maxSize": "最大サイズ",
"close": "閉じる", "close": "閉じる",
"setImageQuality": "画像品質を設定", "setImageQuality": "画像品質を設定",
"currentQuality": "Current quality: @value%", "currentQuality": "現在の品質: @value%",
"setMaxSize": "最大サイズを設定", "setMaxSize": "最大サイズを設定",
"currentMaxSize": "Current: @pxpx", "currentMaxSize": "現在: @pxpx",
"waitingForAction": "操作待ち", "waitingForAction": "操作待ち",
"pleaseSelectImageToStart": "開始する画像を選択してください", "pleaseSelectImageToStart": "開始する画像を選択してください",
"chooseImage": "画像を選択", "chooseImage": "画像を選択",
@ -1018,7 +1017,7 @@ const Map<String, String> jaJP = {
"savingRecord": "記録を保存中", "savingRecord": "記録を保存中",
"savingTranslationResult": "翻訳結果を保存中...", "savingTranslationResult": "翻訳結果を保存中...",
"translationCompleted": "翻訳完了", "translationCompleted": "翻訳完了",
"allStepsCompleted": "All steps completed", "allStepsCompleted": "すべてのステップが完了しました",
"processingFailed": "処理に失敗しました", "processingFailed": "処理に失敗しました",
"imageProcessingOrTranslationFailed": "imageProcessingOrTranslationFailed":
"画像処理または翻訳に失敗しました。再試行してください。\nエラー: {error}", "画像処理または翻訳に失敗しました。再試行してください。\nエラー: {error}",
@ -1085,8 +1084,8 @@ const Map<String, String> jaJP = {
"logoutTips": "現在のアカウントからログアウトしてもよろしいですか?", "logoutTips": "現在のアカウントからログアウトしてもよろしいですか?",
'deleteAccount': 'アカウント削除', 'deleteAccount': 'アカウント削除',
'deleteAccountTips': 'アカウントを永続的に削除してもよろしいですか?この操作は元に戻せません。', 'deleteAccountTips': 'アカウントを永続的に削除してもよろしいですか?この操作は元に戻せません。',
'clean': 'Clear Cache', 'clean': 'キャッシュをクリア',
'cleanTips': 'Are you sure you want to clear personal cache?', 'cleanTips': '個人キャッシュをクリアしてもよろしいですか?',
'networkConnectionFailed': 'ネットワーク接続に失敗しました。ネットワーク設定を確認して再試行してください', 'networkConnectionFailed': 'ネットワーク接続に失敗しました。ネットワーク設定を確認して再試行してください',
'serverTemporarilyUnavailable': 'サーバーが一時的に利用できません。後でもう一度お試しください', 'serverTemporarilyUnavailable': 'サーバーが一時的に利用できません。後でもう一度お試しください',
'loginExpiredPleaseRelogin': 'ログインが期限切れです。再度ログインしてください', 'loginExpiredPleaseRelogin': 'ログインが期限切れです。再度ログインしてください',
@ -1202,7 +1201,7 @@ const Map<String, String> jaJP = {
'マイク権限が永続的に拒否されています。この機能を継続して利用するには、アプリ設定でマイク権限を手動で有効にしてください。', 'マイク権限が永続的に拒否されています。この機能を継続して利用するには、アプリ設定でマイク権限を手動で有効にしてください。',
'storagePermissionPermanentDenial': 'storagePermissionPermanentDenial':
'ストレージ権限が永続的に拒否されています。この機能を継続して利用するには、アプリ設定でストレージ権限を手動で有効にしてください。', 'ストレージ権限が永続的に拒否されています。この機能を継続して利用するには、アプリ設定でストレージ権限を手動で有効にしてください。',
'permissionUtilNeed': 'Need ', 'permissionUtilNeed': '必要:',
'permissionUtilPermission': ' 権限', 'permissionUtilPermission': ' 権限',
'permissionUtilRestricted': ' 権限が制限されています', 'permissionUtilRestricted': ' 権限が制限されています',
'permissionUtilRestrictedMessage': 'permissionUtilRestrictedMessage':

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

@ -384,12 +384,12 @@ const Map<String, String> koKR = {
'vipDisclaimer': '실제 혜택은 패키지 세부사항에 따라 달라지며 버전에 따라 변경될 수 있습니다.', 'vipDisclaimer': '실제 혜택은 패키지 세부사항에 따라 달라지며 버전에 따라 변경될 수 있습니다.',
// 商品模块 - 商品名称与描述 // 商品模块 - 商品名称与描述
'ai_001_name': 'AI Basic 100', 'ai_001_name': 'AI 기본 100',
'ai_002_name': 'AI Basic 500', 'ai_002_name': 'AI 기본 500',
'ai_003_name': 'AI Basic 1000', 'ai_003_name': 'AI 기본 1000',
'meet_001_name': 'Meeting Basic 100', 'meet_001_name': '회의 기본 100',
'meet_002_name': 'Meeting Basic 500', 'meet_002_name': '회의 기본 500',
'meet_003_name': 'Meeting Basic 1000', 'meet_003_name': '회의 기본 1000',
'trans_001_name': '번역 기본 100', 'trans_001_name': '번역 기본 100',
'trans_002_name': '번역 기본 500', 'trans_002_name': '번역 기본 500',
'trans_003_name': '번역 기본 1000', 'trans_003_name': '번역 기본 1000',
@ -404,8 +404,8 @@ const Map<String, String> koKR = {
'trans_003_desc': '번역 1000회 포함(음성/텍스트).', 'trans_003_desc': '번역 1000회 포함(음성/텍스트).',
// 商品模块 - 页脚 // 商品模块 - 页脚
'appNameProvider': 'App: VoiTrans · Provided by: VoiTrans', 'appNameProvider': '앱: VoiTrans · 제공: VoiTrans',
'iapCustomerServiceQQLabel': 'IAP customer service QQ: @qq', 'iapCustomerServiceQQLabel': 'IAP 고객 서비스 QQ: @qq',
'copyrightVoitrans': '© 2025 Voitrans Technologies', 'copyrightVoitrans': '© 2025 Voitrans Technologies',
// 新手引导 // 新手引导

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

@ -386,21 +386,21 @@ const Map<String, String> ltLT = {
// 商品模块 - 会议商品页 // 商品模块 - 会议商品页
'meetingRecording': 'Susitikimų įrašymas', 'meetingRecording': 'Susitikimų įrašymas',
'transcriptionAndSummary': 'Transcription & Summary', 'transcriptionAndSummary': 'Transkripcija ir santrauka',
'keywordSearch': 'Keyword Search', 'keywordSearch': 'Raktažodžių paieška',
'collaborationSharing': 'Collaboration & Sharing', 'collaborationSharing': 'Bendradarbiavimas ir dalijimasis',
'meetingHeaderDesc1': 'meetingHeaderDesc1':
'Garso įrašymas, transkripcija, paieška pagal raktinius žodžius ir automatinė santrauka didesniam susitikimų efektyvumui.', 'Garso įrašymas, transkripcija, paieška pagal raktinius žodžius ir automatinė santrauka didesniam susitikimų efektyvumui.',
'meetingHeaderDesc2': 'meetingHeaderDesc2':
'Suitable for business meetings, class notes, and interview minutes.', 'Tinka verslo susitikimams, pamokų užrašams ir pokalbių protokolams.',
'meetingAutoRecording': 'Automatinis įrašymas ir segmentavimas', 'meetingAutoRecording': 'Automatinis įrašymas ir segmentavimas',
'meetingSpeakerTagging': 'Speaker labeling', 'meetingSpeakerTagging': 'Kalbėtojų žymėjimas',
'meetingLongAudioTranscription': 'Long audio transcription', 'meetingLongAudioTranscription': 'Ilgo garso transkripcija',
'meetingKeyPointSummary': 'Key point extraction', 'meetingKeyPointSummary': 'Pagrindinių taškų ištraukimas',
'meetingTopicNameSearch': 'Search by topic/name', 'meetingTopicNameSearch': 'Paieška pagal temą / vardą',
'meetingTimelineJump': 'Timeline jump', 'meetingTimelineJump': 'Šuolis laiko juostoje',
'meetingExportSummary': 'Export minutes', 'meetingExportSummary': 'Eksportuoti protokolą',
'meetingMultiPlatformShare': 'Share across platforms', 'meetingMultiPlatformShare': 'Dalintis keliose platformose',
'meetingDisclaimer': 'meetingDisclaimer':
'Naudokite tyloje; kokybė priklauso nuo mikrofono ir tinklo.', 'Naudokite tyloje; kokybė priklauso nuo mikrofono ir tinklo.',
@ -418,7 +418,7 @@ const Map<String, String> ltLT = {
'earlyAccessNewFeatures': 'Ankstyva prieiga prie naujų funkcijų', 'earlyAccessNewFeatures': 'Ankstyva prieiga prie naujų funkcijų',
'crossDeviceSync': 'Sinchronizacija tarp įrenginių', 'crossDeviceSync': 'Sinchronizacija tarp įrenginių',
'vipDisclaimer': 'vipDisclaimer':
'Actual benefits depend on the package details and may change with versions.', 'Tikrosios naudos priklauso nuo paketo detalių ir gali keistis su versijomis.',
// 商品模块 - 商品名称与描述 // 商品模块 - 商品名称与描述
'ai_001_name': 'AI bazinis 100', 'ai_001_name': 'AI bazinis 100',
@ -441,8 +441,8 @@ const Map<String, String> ltLT = {
'trans_003_desc': 'Apima 1000 vertimų (balsas/tekstas).', 'trans_003_desc': 'Apima 1000 vertimų (balsas/tekstas).',
// 商品模块 - 页脚 // 商品模块 - 页脚
'appNameProvider': 'App: VoiTrans · Provided by: VoiTrans', 'appNameProvider': 'Programa: VoiTrans · Teikia: VoiTrans',
'iapCustomerServiceQQLabel': 'IAP customer service QQ: @qq', 'iapCustomerServiceQQLabel': 'IAP klientų aptarnavimo QQ: @qq',
'copyrightVoitrans': '© 2025 Voitrans Technologies', 'copyrightVoitrans': '© 2025 Voitrans Technologies',
// 新手引导 // 新手引导
@ -470,19 +470,18 @@ const Map<String, String> ltLT = {
'guideNavInput': 'Nukreipk į Šendženo oro uostą', 'guideNavInput': 'Nukreipk į Šendženo oro uostą',
'guideNavSend': 'Lily suplanuos maršrutą', 'guideNavSend': 'Lily suplanuos maršrutą',
'guideNavEnd': 'Navigacija nustatyta — išbandykite kitas komandas', 'guideNavEnd': 'Navigacija nustatyta — išbandykite kitas komandas',
'guideMeetingStart': "guideMeetingStart": "Pasakykite Lily: Sukurk susitikimo priminima rytoj 15:00",
'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', "guideMeetingInput": "Sukurk susitikimo priminima rytoj 15:00",
'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', "guideMeetingSend": "Lily sukurs susitikimo priminima",
'guideMeetingSend': 'Lily will create a meeting reminder', "guideMeetingEnd": "Priminimas sukurtas - išbandykite kitas komandas",
'guideMeetingEnd': 'Reminder created—try other commands', "guidePhoneStart": "Pasakykite Lily: Paskambink mamai",
'guidePhoneStart': 'Tell Lily: “Call Mom”', "guidePhoneInput": "Paskambink mamai",
'guidePhoneInput': 'Call Mom', "guidePhoneSend": "Lily paskambins",
'guidePhoneSend': 'Lily will make the call', "guidePhoneEnd": "Skambutis atliktas - išbandykite kitas komandas",
'guidePhoneEnd': 'Call placed—try other commands', "guideSmsStart": "Pasakykite Lily: Parašyk tėčiui žinutę: Grįšiu pietauti",
'guideSmsStart': 'Tell Lily: “Send Dad a text: I’ll be home for dinner”', "guideSmsInput": "Parašyk tėčiui: Grįšiu pietauti",
'guideSmsInput': 'Text Dad: I’ll be home for dinner', "guideSmsSend": "Lily išsiųs žinutę",
'guideSmsSend': 'Lily will send the message', "guideSmsEnd": "Žinutė išsiųsta - balso valdymas patogus",
'guideSmsEnd': 'Message sent—voice control is convenient',
// Meeting模块 - 首页与导航 // Meeting模块 - 首页与导航
"startMeeting": "Pradėti susitikimą", "startMeeting": "Pradėti susitikimą",

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

@ -715,27 +715,27 @@ const Map<String, String> lvLV = {
'upgradeMembership': 'Jaunināt dalību', 'upgradeMembership': 'Jaunināt dalību',
'yearlySubscription': 'Gada abonements', 'yearlySubscription': 'Gada abonements',
'monthlySubscription': 'Mēneša abonements', 'monthlySubscription': 'Mēneša abonements',
'proMonthly': 'Pro ¥60/month', 'proMonthly': 'Pro ¥60/mēnesī',
'proMonthlyDesc': 'proMonthlyDesc':
'7 dienu bezmaksas izmēģinājums, pēc tam ¥800/gadā. Atceliet jebkurā laikā pirms izmēģinājuma beigām.', '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', 'sevenDayTrial': '7 dienu bezmaksas izmēģinājums',
'unlimitedMonthly': 'Unlimited ¥120/month', 'unlimitedMonthly': 'Unlimited ¥120/mēnesī',
'unlimitedMonthlyDesc': 'unlimitedMonthlyDesc':
'7 dienu bezmaksas izmēģinājums, pēc tam ¥1600/gadā. Atceliet jebkurā laikā pirms izmēģinājuma beigām.', '7 dienu bezmaksas izmēģinājums, pēc tam ¥1600/gadā. Atceliet jebkurā laikā pirms izmēģinājuma beigām.',
'trialNote': 'trialNote':
'*Bezmaksas izmēģinājums 7 dienas, pēc tam rēķins reizi gadā; var atcelt jebkurā laikā.', '*Bezmaksas izmēģinājums 7 dienas, pēc tam rēķins reizi gadā; var atcelt jebkurā laikā.',
'proPrice': 'Pro ¥120', 'proPrice': 'Pro ¥120',
'proMonthlyPrice': '¥120/month', 'proMonthlyPrice': '¥120/mēnesī',
'subscribe': 'Abonēt', 'subscribe': 'Abonēt',
'unlimitedPrice': 'Unlimited ¥198', 'unlimitedPrice': 'Unlimited ¥198',
'unlimitedMonthlyPrice': '¥198/month', 'unlimitedMonthlyPrice': '¥198/mēnesī',
'upgradeNote': 'upgradeNote':
'*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ā', '*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', 'buyMoreTranscriptionTime': 'Pirkt vairāk transkripcijas laika',
'sixThousandMinutes': '6,000 minutes', 'sixThousandMinutes': '6 000 minūtes',
'threeThousandMinutes': '3,000 minutes', 'threeThousandMinutes': '3 000 minūtes',
'sixHundredMinutes': '600 minutes', 'sixHundredMinutes': '600 minūtes',
'oneHundredTwentyMinutes': '120 minutes', 'oneHundredTwentyMinutes': '120 minūtes',
'validityPeriod': '*Derīguma termiņš: ', 'validityPeriod': '*Derīguma termiņš: ',
'validityNote': 'validityNote':
'Aktivizējas uzreiz pēc iegādes, derīgs 2 gadus pēc aktivizēšanas.', 'Aktivizējas uzreiz pēc iegādes, derīgs 2 gadus pēc aktivizēšanas.',
@ -930,11 +930,11 @@ const Map<String, String> lvLV = {
'generatedByAi': 'Ģenerējis AI', 'generatedByAi': 'Ģenerējis AI',
// Agent模块 - 工具调用 // Agent模块 - 工具调用
'toolCall': 'Tool Call', 'toolCall': 'Rīka izsaukums',
'noResult': 'No Result', 'noResult': 'Nav rezultātu',
'noToolCallContentToCopy': 'No tool call content to copy', 'noToolCallContentToCopy': 'Nav rīka izsaukuma satura, ko kopēt',
'toolCallDetails': 'Tool Call Details:', 'toolCallDetails': 'Rīka izsaukuma detaļas:',
'toolCallContentCopied': 'Tool call content copied to clipboard', 'toolCallContentCopied': 'Rīka izsaukuma saturs nokopēts starpliktuvē',
// Agent模块 - 音乐卡片 // Agent模块 - 音乐卡片
'recommendedMusic': 'Šeit ir dažas ieteicamās dziesmas:', 'recommendedMusic': 'Šeit ir dažas ieteicamās dziesmas:',
@ -1110,9 +1110,9 @@ const Map<String, String> lvLV = {
"processingFailed": "Apstrāde neizdevās", "processingFailed": "Apstrāde neizdevās",
"imageProcessingOrTranslationFailed": "imageProcessingOrTranslationFailed":
"Attēla apstrāde vai tulkošana neizdevās. Lūdzu, mēģiniet vēlreiz.\nKļūda: {error}", "Attēla apstrāde vai tulkošana neizdevās. Lūdzu, mēģiniet vēlreiz.\nKļūda: {error}",
"imageTooLarge": "Image size exceeds 4MB limit", "imageTooLarge": "Attēla izmērs pārsniedz 4 MB ierobežojumu",
"imageTooLargeHint": "imageTooLargeHint":
"Image size exceeds 4MB. Reduce quality or dimensions and retry", "Attēla izmērs pārsniedz 4 MB. Samaziniet kvalitāti vai izmērus un mēģiniet vēlreiz",
"emptyTranslationResult": "Attēlu tulkošanas API atgrieza tukšu rezultātu", "emptyTranslationResult": "Attēlu tulkošanas API atgrieza tukšu rezultātu",
"imageTranslationFailedTryLater": "imageTranslationFailedTryLater":
"Attēla tulkošana neizdevās. Tīkla problēma vai ātruma ierobežojums. Lūdzu, mēģiniet vēlāk", "Attēla tulkošana neizdevās. Tīkla problēma vai ātruma ierobežojums. Lūdzu, mēģiniet vēlāk",
@ -1181,8 +1181,8 @@ const Map<String, String> lvLV = {
'deleteAccount': 'Dzēst kontu', 'deleteAccount': 'Dzēst kontu',
'deleteAccountTips': 'deleteAccountTips':
'Vai esat pārliecināts, ka vēlaties neatgriezeniski dzēst savu kontu? Šī darbība nav atgriezeniska.', 'Vai esat pārliecināts, ka vēlaties neatgriezeniski dzēst savu kontu? Šī darbība nav atgriezeniska.',
'clean': 'Clear Cache', 'clean': 'Notīrīt kešatmiņu',
'cleanTips': 'Are you sure you want to clear personal cache?', 'cleanTips': 'Vai esat pārliecināts, ka vēlaties notīrīt personīgo kešatmiņu?',
'networkConnectionFailed': 'networkConnectionFailed':
'Tīkla savienojuma kļūda, lūdzu, pārbaudiet tīkla iestatījumus un mēģiniet vēlreiz', 'Tīkla savienojuma kļūda, lūdzu, pārbaudiet tīkla iestatījumus un mēģiniet vēlreiz',
'serverTemporarilyUnavailable': 'serverTemporarilyUnavailable':
@ -1519,8 +1519,8 @@ const Map<String, String> lvLV = {
'Nevar iegūt ierīces informāciju, lūdzu, pārbaudiet ierīces savienojumu', 'Nevar iegūt ierīces informāciju, lūdzu, pārbaudiet ierīces savienojumu',
'otaCannotGetProductInfoWithName': 'otaCannotGetProductInfoWithName':
'Nevar iegūt produkta informāciju, ierīces nosaukums: @deviceName', 'Nevar iegūt produkta informāciju, ierīces nosaukums: @deviceName',
'otaCannotGetBatteryInfo': 'Cannot get valid battery info', 'otaCannotGetBatteryInfo': 'Nevar iegūt derīgu baterijas informāciju',
'otaLowBattery': 'Low Battery', 'otaLowBattery': 'Zems baterijas līmenis',
'otaSingleBatteryLow': 'otaSingleBatteryLow':
'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', 'Ierīces baterija ir pārāk zema programmaparatūras jaunināšanai\nPrasība: baterijai jābūt virs 20%\nPašlaik: @ear @battery%\nLūdzu, uzlādējiet un mēģiniet vēlreiz',
'otaDoubleBatteryLow': 'otaDoubleBatteryLow':
@ -1538,8 +1538,8 @@ const Map<String, String> lvLV = {
'otaDownloadFailed': 'Lejupielāde neizdevās', 'otaDownloadFailed': 'Lejupielāde neizdevās',
'otaPreparingConnection': 'Sagatavo ierīces savienojumu...', 'otaPreparingConnection': 'Sagatavo ierīces savienojumu...',
'otaConnectingDevice': 'Savienojas ar ierīci...', 'otaConnectingDevice': 'Savienojas ar ierīci...',
'otaUpgradeStarted': 'OTA upgrade started...', 'otaUpgradeStarted': 'OTA jaunināšana sākta...',
'otaUpgradeProgressWithPercent': 'Upgrade progress: @percent%', 'otaUpgradeProgressWithPercent': 'Jaunināšanas gaita: @percent%',
'otaUpgradeSuccessComplete': 'Jaunināšana pabeigta veiksmīgi', 'otaUpgradeSuccessComplete': 'Jaunināšana pabeigta veiksmīgi',
'otaUpgradeFailedWithCode': 'Jaunināšana neizdevās, kļūdas kods: @code', 'otaUpgradeFailedWithCode': 'Jaunināšana neizdevās, kļūdas kods: @code',
'otaUpgradeFailedTitle': 'Jaunināšana neizdevās', 'otaUpgradeFailedTitle': 'Jaunināšana neizdevās',
@ -1703,15 +1703,15 @@ const Map<String, String> lvLV = {
"东帝汶": "Austrumtimora", "东帝汶": "Austrumtimora",
"斐济": "Fidži", "斐济": "Fidži",
"所罗门群岛": "Zālamana Salas", "所罗门群岛": "Zālamana Salas",
"刚果民主共和国": "Democratic Republic of the Congo", "刚果民主共和国": "Kongo Demokrātiskā Republika",
"安哥拉": "Angola", "安哥拉": "Angola",
"苏丹": "Sudan", "苏丹": "Sudāna",
"马尔代夫": "Maldives", "马尔代夫": "Maldīvija",
"不丹": "Bhutan", "不丹": "Butāna",
"摩纳哥": "Monaco", "摩纳哥": "Monako",
"圣马力诺": "San Marino", "圣马力诺": "Sanmarīno",
"牙买加": "Jamaica", "牙买加": "Jamaika",
"巴哈马": "Bahamas", "巴哈马": "Bahamu salas",
"巴布亚新几内亚": "Papua New Guinea", "巴布亚新几内亚": "Papua Jaungvineja",
"萨摩亚": "Samoa", "萨摩亚": "Samoa",
}; };

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

@ -218,54 +218,54 @@ const Map<String, String> msMY = {
"scene": "Senario", "scene": "Senario",
// 用量统计模块 // 用量统计模块
"aiChat": "AI Chat", "aiChat": "Sembang AI",
"translationStats": "Statistik Terjemahan", "translationStats": "Statistik Terjemahan",
"meetingStats": "Meeting Statistics", "meetingStats": "Statistik Mesyuarat",
"today": "Today", "today": "Hari Ini",
"thisWeek": "This Week", "thisWeek": "Minggu Ini",
"thisMonth": "This Month", "thisMonth": "Bulan Ini",
"history": "History", "history": "Sejarah",
"currentSessionStats": "Current Session Stats", "currentSessionStats": "Statistik Sesi Semasa",
"translationCount": "Bilangan Terjemahan", "translationCount": "Bilangan Terjemahan",
"sessionDuration": "Session Duration", "sessionDuration": "Tempoh Sesi",
"characters": "Characters", "characters": "Aksara",
"recordingDuration": "Tempoh Rakaman", "recordingDuration": "Tempoh Rakaman",
"totalApiCalls": "Total API Calls", "totalApiCalls": "Jumlah Panggilan API",
"sessionCount": "Session Count", "sessionCount": "Bilangan Sesi",
"totalCharacters": "Total Characters", "totalCharacters": "Jumlah Aksara",
"apiCallStats": "API Call Stats", "apiCallStats": "Statistik Panggilan API",
"translationApi": "API Terjemahan", "translationApi": "API Terjemahan",
"asr": "ASR", "asr": "ASR",
"tts": "TTS", "tts": "TTS",
"dataVolumeStats": "Data Volume Stats", "dataVolumeStats": "Statistik Jumlah Data",
"sourceTextCharacters": "Source Text Characters", "sourceTextCharacters": "Aksara Teks Sumber",
"ttsTextCharacters": "TTS Text Characters", "ttsTextCharacters": "Aksara Teks TTS",
"effectiveAudioDuration": "Effective Audio Duration", "effectiveAudioDuration": "Tempoh Audio Berkesan",
"totalSessionDuration": "Total Session Duration", "totalSessionDuration": "Jumlah Tempoh Sesi",
"costStats": "Cost Stats", "costStats": "Statistik Kos",
"estimatedCost": "Estimated Cost", "estimatedCost": "Anggaran Kos",
"dailyCostThreshold": "Daily Cost Threshold", "dailyCostThreshold": "Had Kos Harian",
"monthlyCostThreshold": "Monthly Cost Threshold", "monthlyCostThreshold": "Had Kos Bulanan",
"usageBehaviorStats": "Usage Behavior Stats", "usageBehaviorStats": "Statistik Tingkah Laku Penggunaan",
"mostUsedLanguagePair": "Most-used language pair", "mostUsedLanguagePair": "Pasangan bahasa paling kerap digunakan",
"mostUsedMode": "Most-used mode", "mostUsedMode": "Mod paling kerap digunakan",
"asrApiCalls": "ASR Calls", "asrApiCalls": "Panggilan ASR",
"totalAudioDuration": "Total Audio Duration", "totalAudioDuration": "Jumlah Tempoh Audio",
"audioFileSize": "Audio File Size", "audioFileSize": "Saiz Fail Audio",
"transcriptBytes": "Transcript Bytes", "transcriptBytes": "Bait Transkrip",
"loadFailed": "Gagal Memuat", "loadFailed": "Gagal Memuat",
"statsLoadFailedTryLater": "Statistik gagal dimuat. Sila cuba lagi kemudian.", "statsLoadFailedTryLater": "Statistik gagal dimuat. Sila cuba lagi kemudian.",
"cleanupComplete": "Cleanup Complete", "cleanupComplete": "Pembersihan Selesai",
"cleanedOldData": "Cleaned data older than 90 days", "cleanedOldData": "Data lebih 90 hari telah dibersihkan",
"exportFeature": "Export Feature", "exportFeature": "Ciri Eksport",
"exportInDevelopment": "Data export is under development", "exportInDevelopment": "Eksport data sedang dalam pembangunan",
// 商品模块 - 通用 // 商品模块 - 通用
'availablePackages': 'Available Packages', 'availablePackages': 'Pakej Tersedia',
'remainingQuota': 'Remaining Quota', 'remainingQuota': 'Kuota Baki',
'totalQuota': 'Total Quota', 'totalQuota': 'Jumlah Kuota',
'remaining': 'Remaining', 'remaining': 'Baki',
'featureDescription': 'Feature Description', 'featureDescription': 'Penerangan Ciri',
'paymentSuccess': 'Pembayaran berjaya', 'paymentSuccess': 'Pembayaran berjaya',
'paymentFailed': 'Pembayaran gagal', 'paymentFailed': 'Pembayaran gagal',
'gotIt': 'Faham', 'gotIt': 'Faham',
@ -332,101 +332,101 @@ const Map<String, String> msMY = {
'Keahlian AI telah tamat tempoh, sila pergi ke halaman pembaharuan keahlian untuk memperbaharui.', 'Keahlian AI telah tamat tempoh, sila pergi ke halaman pembaharuan keahlian untuk memperbaharui.',
// 商品模块 - AI商品页 // 商品模块 - AI商品页
'musicAndRecommendation': 'Music & Recommendation', 'musicAndRecommendation': 'Muzik & Cadangan',
'navigationAndRoutes': 'Navigation & Routes', 'navigationAndRoutes': 'Navigasi & Laluan',
'nearbySearch': 'Nearby Search', 'nearbySearch': 'Carian Berdekatan',
'newsInformation': 'News', 'newsInformation': 'Berita',
'communicationAssistant': 'Communication Assistant', 'communicationAssistant': 'Pembantu Komunikasi',
'aiHeaderDesc1': 'aiHeaderDesc1':
'Longer conversation quota, more tool calls, extended context length.', 'Kuota perbualan lebih panjang, lebih banyak panggilan alat, panjang konteks diperluas.',
'aiHeaderDesc2': 'aiHeaderDesc2':
'Suitable for agent Q&A, summarization, analysis, and task execution.', 'Sesuai untuk soal jawab ejen, ringkasan, analisis, dan pelaksanaan tugas.',
'musicSearchPlaybackControl': 'Music library search and playback control', 'musicSearchPlaybackControl': 'Carian pustaka muzik dan kawalan main balik',
'smartPlaylistAndSimilarRecommendations': 'smartPlaylistAndSimilarRecommendations':
'Smart playlist and similar song recommendations', 'Senarai main pintar dan cadangan lagu serupa',
'routePlanningAndCongestionAvoidance': 'routePlanningAndCongestionAvoidance':
'Route planning and congestion avoidance', 'Perancangan laluan dan pengelakan kesesakan',
'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'voiceBroadcastAndWaypoints': 'Siaran suara dan tetapan titik laluan',
'realTimeWeatherForecast': 'Real-time weather and forecast', 'realTimeWeatherForecast': 'Cuaca masa nyata dan ramalan',
'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', 'clothingAdviceAndTravelReminders': 'Nasihat pakaian dan peringatan perjalanan',
'poiSearchFoodGasParking': 'POI search: dining / gas / parking', 'poiSearchFoodGasParking': 'Carian POI: restoran / stesen minyak / tempat letak kereta',
'ratingsHoursAndDirectRoutes': 'Ratings, business hours, and direct routing', 'ratingsHoursAndDirectRoutes': 'Penilaian, waktu perniagaan, dan penghalaan terus',
'hotNewsAndTopicOverview': 'Hot news and topic overview', 'hotNewsAndTopicOverview': 'Berita hangat dan gambaran topik',
'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'longArticleSummariesAndKeyPoints': 'Ringkasan artikel panjang dan perkara utama',
'helpCallAndSMS': 'Help with calls and SMS', 'helpCallAndSMS': 'Bantuan panggilan dan SMS',
'templatedMessagesAndScheduleReminders': 'templatedMessagesAndScheduleReminders':
'Template messages and schedule reminders', 'Mesej templat dan peringatan jadual',
'aiDisclaimer': 'aiDisclaimer':
'Ciri bergantung pada kebenaran peranti, ketersediaan perkhidmatan, dan keadaan rangkaian.', 'Ciri bergantung pada kebenaran peranti, ketersediaan perkhidmatan, dan keadaan rangkaian.',
// 商品模块 - 翻译商品页 // 商品模块 - 翻译商品页
'realtimeTranscription': 'Real-time Transcription', 'realtimeTranscription': 'Transkripsi Masa Nyata',
'sceneLexicon': 'Scenario Glossary', 'sceneLexicon': 'Glosari Senario',
'subtitleDisplay': 'Subtitles', 'subtitleDisplay': 'Sari Kata',
'transHeaderDesc1': 'transHeaderDesc1':
'Pentafsiran serentak masa nyata dan terjemahan teks dengan suara kependaman rendah.', 'Pentafsiran serentak masa nyata dan terjemahan teks dengan suara kependaman rendah.',
'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'transHeaderDesc2': 'Sesuai untuk perjalanan, perniagaan, ucapan, dan pengajaran.',
'translateZhEn': 'Terjemahan Cina-Inggeris', 'translateZhEn': 'Terjemahan Cina-Inggeris',
'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'lowLatencyVoiceBroadcast': 'Siaran suara kependaman rendah',
'multiLangTextTranslation': 'Terjemahan teks berbilang bahasa', 'multiLangTextTranslation': 'Terjemahan teks berbilang bahasa',
'termOptimizationContextPreserve': 'termOptimizationContextPreserve':
'Terminology optimization and context preservation', 'Pengoptimuman istilah dan pemeliharaan konteks',
'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'lexiconTourBusinessLife': 'Leksikon pelancongan/perniagaan/kehidupan',
'personalVocabularyMemory': 'Personal vocabulary memory', 'personalVocabularyMemory': 'Memori perbendaharaan kata peribadi',
'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'conversationSubtitleLargeText': 'Sari kata perbualan / Mod teks besar',
'colorHighContrast': 'High color contrast', 'colorHighContrast': 'Kontras warna tinggi',
'transDisclaimer': 'transDisclaimer':
'Prestasi terjemahan bergantung pada mikrofon, kependaman rangkaian, dan bunyi persekitaran.', 'Prestasi terjemahan bergantung pada mikrofon, kependaman rangkaian, dan bunyi persekitaran.',
// 商品模块 - 会议商品页 // 商品模块 - 会议商品页
'meetingRecording': 'Rakaman Mesyuarat', 'meetingRecording': 'Rakaman Mesyuarat',
'transcriptionAndSummary': 'Transcription & Summary', 'transcriptionAndSummary': 'Transkripsi & Ringkasan',
'keywordSearch': 'Keyword Search', 'keywordSearch': 'Carian Kata Kunci',
'collaborationSharing': 'Collaboration & Sharing', 'collaborationSharing': 'Kerjasama & Perkongsian',
'meetingHeaderDesc1': 'meetingHeaderDesc1':
'Rakaman audio, transkripsi, carian kata kunci, dan ringkasan automatik untuk meningkatkan kecekapan mesyuarat.', 'Rakaman audio, transkripsi, carian kata kunci, dan ringkasan automatik untuk meningkatkan kecekapan mesyuarat.',
'meetingHeaderDesc2': 'meetingHeaderDesc2':
'Suitable for business meetings, class notes, and interview minutes.', 'Sesuai untuk mesyuarat perniagaan, nota kelas, dan minit temu duga.',
'meetingAutoRecording': 'Rakaman automatik dan segmentasi', 'meetingAutoRecording': 'Rakaman automatik dan segmentasi',
'meetingSpeakerTagging': 'Speaker labeling', 'meetingSpeakerTagging': 'Pelabelan penutur',
'meetingLongAudioTranscription': 'Long audio transcription', 'meetingLongAudioTranscription': 'Transkripsi audio panjang',
'meetingKeyPointSummary': 'Key point extraction', 'meetingKeyPointSummary': 'Pengekstrakan perkara utama',
'meetingTopicNameSearch': 'Search by topic/name', 'meetingTopicNameSearch': 'Carian mengikut topik/nama',
'meetingTimelineJump': 'Timeline jump', 'meetingTimelineJump': 'Lompat garis masa',
'meetingExportSummary': 'Export minutes', 'meetingExportSummary': 'Eksport minit',
'meetingMultiPlatformShare': 'Share across platforms', 'meetingMultiPlatformShare': 'Kongsi merentas platform',
'meetingDisclaimer': 'meetingDisclaimer':
'Gunakan di persekitaran yang senyap; prestasi bergantung pada mikrofon dan rangkaian.', 'Gunakan di persekitaran yang senyap; prestasi bergantung pada mikrofon dan rangkaian.',
// 商品模块 - VIP会员页 // 商品模块 - VIP会员页
'benefitsOverview': 'Benefits overview', 'benefitsOverview': 'Gambaran keseluruhan manfaat',
'higherQuota': 'Higher usage quota', 'higherQuota': 'Kuota penggunaan lebih tinggi',
'lowerUnitPrice': 'Lower unit price', 'lowerUnitPrice': 'Harga unit lebih rendah',
'priorityService': 'Priority service', 'priorityService': 'Perkhidmatan keutamaan',
'exclusiveSupportChannel': 'Dedicated support channel', 'exclusiveSupportChannel': 'Saluran sokongan khusus',
'fastResponse': 'Fast issue response', 'fastResponse': 'Respons isu pantas',
'eventsAndDiscounts': 'Events and discounts', 'eventsAndDiscounts': 'Acara dan diskaun',
'memberExclusiveEvents': 'Member-exclusive events', 'memberExclusiveEvents': 'Acara eksklusif ahli',
'longTermDiscountPlan': 'Long-term discount plan', 'longTermDiscountPlan': 'Pelan diskaun jangka panjang',
'generalPrivileges': 'General privileges', 'generalPrivileges': 'Keistimewaan am',
'earlyAccessNewFeatures': 'Early access to new features', 'earlyAccessNewFeatures': 'Akses awal ciri baharu',
'crossDeviceSync': 'Penyegerakan merentas peranti', 'crossDeviceSync': 'Penyegerakan merentas peranti',
'vipDisclaimer': 'vipDisclaimer':
'Actual benefits depend on the package details and may change with versions.', 'Manfaat sebenar bergantung pada butiran pakej dan mungkin berubah mengikut versi.',
// 商品模块 - 商品名称与描述 // 商品模块 - 商品名称与描述
'ai_001_name': 'AI Basic 100', 'ai_001_name': 'AI Asas 100',
'ai_002_name': 'AI Basic 500', 'ai_002_name': 'AI Asas 500',
'ai_003_name': 'AI Basic 1000', 'ai_003_name': 'AI Asas 1000',
'meet_001_name': 'Meeting Basic 100', 'meet_001_name': 'Mesyuarat Asas 100',
'meet_002_name': 'Meeting Basic 500', 'meet_002_name': 'Mesyuarat Asas 500',
'meet_003_name': 'Meeting Basic 1000', 'meet_003_name': 'Mesyuarat Asas 1000',
'trans_001_name': 'Terjemahan Asas 100', 'trans_001_name': 'Terjemahan Asas 100',
'trans_002_name': 'Terjemahan Asas 500', 'trans_002_name': 'Terjemahan Asas 500',
'trans_003_name': 'Terjemahan Asas 1000', 'trans_003_name': 'Terjemahan Asas 1000',
'ai_001_desc': 'Includes 100 uses. Access core AI features.', 'ai_001_desc': 'Termasuk 100 penggunaan. Akses ciri AI teras.',
'ai_002_desc': 'Includes 500 uses. Access core AI features.', 'ai_002_desc': 'Termasuk 500 penggunaan. Akses ciri AI teras.',
'ai_003_desc': 'Includes 1000 uses. Access core AI features.', 'ai_003_desc': 'Termasuk 1000 penggunaan. Akses ciri AI teras.',
'meet_001_desc': 'Termasuk 100 rakaman/transkripsi mesyuarat.', 'meet_001_desc': 'Termasuk 100 rakaman/transkripsi mesyuarat.',
'meet_002_desc': 'Termasuk 500 rakaman/transkripsi mesyuarat.', 'meet_002_desc': 'Termasuk 500 rakaman/transkripsi mesyuarat.',
'meet_003_desc': 'Termasuk 1000 rakaman/transkripsi mesyuarat.', 'meet_003_desc': 'Termasuk 1000 rakaman/transkripsi mesyuarat.',
@ -435,46 +435,46 @@ const Map<String, String> msMY = {
'trans_003_desc': 'Termasuk 1000 terjemahan (suara/teks).', 'trans_003_desc': 'Termasuk 1000 terjemahan (suara/teks).',
// 商品模块 - 页脚 // 商品模块 - 页脚
'appNameProvider': 'App: VoiTrans · Provided by: VoiTrans', 'appNameProvider': 'Aplikasi: VoiTrans · Disediakan oleh: VoiTrans',
'iapCustomerServiceQQLabel': 'IAP customer service QQ: @qq', 'iapCustomerServiceQQLabel': 'Perkhidmatan pelanggan IAP QQ: @qq',
'copyrightVoitrans': '© 2025 Voitrans Technologies', 'copyrightVoitrans': '© 2025 Voitrans Technologies',
// 新手引导 // 新手引导
'skip': "Langkau", 'skip': "Langkau",
'next': 'Next', 'next': 'Seterusnya',
'sayLilyHint': 'Say "Lily Lily" to the mic', 'sayLilyHint': 'Sebut "Lily Lily" ke mikrofon',
'imHere': 'I’m here~', 'imHere': 'Saya di sini~',
'guideWelcomeWakeAI': 'Welcome to Voitrans! First, wake your AI “Lily”.', 'guideWelcomeWakeAI': 'Selamat datang ke Voitrans! Pertama, bangunkan AI anda “Lily”.',
'aiReplyCompleted': 'Lily has finished the reply!', 'aiReplyCompleted': 'Lily telah selesai membalas!',
'aiThinking': 'Lily is thinking…', 'aiThinking': 'Lily sedang berfikir…',
'guideAwakenSuccess': 'Great! Lily is awake—ask it to help.', 'guideAwakenSuccess': 'Bagus! Lily sudah bangun—minta ia membantu.',
'confirmInput': 'Confirm Input', 'confirmInput': 'Sahkan Input',
'guideClickSendPrefix': 'Tap send, ', 'guideClickSendPrefix': 'Ketik hantar, ',
'guideWeatherStart': 'Tell Lily: “What’s the weather today?”', 'guideWeatherStart': 'Beritahu Lily: “Bagaimana cuaca hari ini?”',
'guideWeatherInput': 'What’s the weather today?', 'guideWeatherInput': 'Bagaimana cuaca hari ini?',
'guideWeatherSend': 'Lily will report the weather in real time', 'guideWeatherSend': 'Lily akan melaporkan cuaca secara masa nyata',
'guideWeatherEnd': 'Lily can report weather live—try other commands', 'guideWeatherEnd': 'Lily boleh melaporkan cuaca langsung—cuba arahan lain',
'guideMusicStart': 'Tell Lily: “Play some rock music”', 'guideMusicStart': 'Beritahu Lily: “Mainkan muzik rock”',
'guideMusicInput': 'Play some rock music', 'guideMusicInput': 'Mainkan muzik rock',
'guideMusicSend': 'Lily will find music for you', 'guideMusicSend': 'Lily akan mencari muzik untuk anda',
'guideMusicEnd': 'Lily found music—try other commands', 'guideMusicEnd': 'Lily telah menemui muzik—cuba arahan lain',
'guideNavStart': 'Tell Lily: “Navigate to Shenzhen Airport”', 'guideNavStart': 'Beritahu Lily: “Navigasi ke Lapangan Terbang Shenzhen”',
'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavInput': 'Navigasi ke Lapangan Terbang Shenzhen',
'guideNavSend': 'Lily will plan the route', 'guideNavSend': 'Lily akan merancang laluan',
'guideNavEnd': 'Navigation set—try other commands', 'guideNavEnd': 'Navigasi ditetapkan—cuba arahan lain',
'guideMeetingStart': 'guideMeetingStart':
'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'Beritahu Lily: “Buat peringatan mesyuarat untuk pukul 3 petang esok”',
'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingInput': 'Buat peringatan mesyuarat untuk pukul 3 petang esok',
'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingSend': 'Lily akan membuat peringatan mesyuarat',
'guideMeetingEnd': 'Reminder created—try other commands', 'guideMeetingEnd': 'Peringatan dicipta—cuba arahan lain',
'guidePhoneStart': 'Tell Lily: “Call Mom”', 'guidePhoneStart': 'Beritahu Lily: “Hubungi Ibu”',
'guidePhoneInput': 'Call Mom', 'guidePhoneInput': 'Hubungi Ibu',
'guidePhoneSend': 'Lily will make the call', 'guidePhoneSend': 'Lily akan membuat panggilan',
'guidePhoneEnd': 'Call placed—try other commands', 'guidePhoneEnd': 'Panggilan dibuat—cuba arahan lain',
'guideSmsStart': 'Tell Lily: “Send Dad a text: I’ll be home for dinner”', 'guideSmsStart': 'Beritahu Lily: “Hantar mesej kepada Ayah: Saya akan pulang untuk makan malam”',
'guideSmsInput': 'Text Dad: I’ll be home for dinner', 'guideSmsInput': 'Mesej Ayah: Saya akan pulang untuk makan malam',
'guideSmsSend': 'Lily will send the message', 'guideSmsSend': 'Lily akan menghantar mesej',
'guideSmsEnd': 'Message sent—voice control is convenient', 'guideSmsEnd': 'Mesej dihantar—kawalan suara sangat mudah',
// Meeting模块 - 首页与导航 // Meeting模块 - 首页与导航
"startMeeting": "Mula Mesyuarat", "startMeeting": "Mula Mesyuarat",
@ -503,9 +503,9 @@ const Map<String, String> msMY = {
'aiPenNotFound': 'Peranti AI PEN tidak ditemui', 'aiPenNotFound': 'Peranti AI PEN tidak ditemui',
'connectedToAiPen': 'Disambungkan ke peranti AI PEN', 'connectedToAiPen': 'Disambungkan ke peranti AI PEN',
'checkingNewFiles': 'Menyemak fail baharu untuk diimport', 'checkingNewFiles': 'Menyemak fail baharu untuk diimport',
'startingWifi': 'Starting Wi-Fi...', 'startingWifi': 'Memulakan Wi-Fi...',
'newFilesDetected': 'New files detected, preparing to import', 'newFilesDetected': 'Fail baharu dikesan, bersedia untuk import',
'noNewFiles': 'No new files to import', 'noNewFiles': 'Tiada fail baharu untuk diimport',
'connectingWifi': 'Menyambung ke Wi‑Fi...', 'connectingWifi': 'Menyambung ke Wi‑Fi...',
'wifiConnected': 'Wi‑Fi berjaya disambungkan', 'wifiConnected': 'Wi‑Fi berjaya disambungkan',
'downloadingFiles': 'Memuat turun fail...', 'downloadingFiles': 'Memuat turun fail...',
@ -543,33 +543,33 @@ const Map<String, String> msMY = {
'Untuk memaparkan bar rakaman terapung (pemasa/jeda/sambung) semasa merakam, kami memerlukan kebenaran overlay.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 'Untuk memaparkan bar rakaman terapung (pemasa/jeda/sambung) semasa merakam, kami memerlukan kebenaran overlay.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。
'overlayPermissionOpenSettingsFailed': 'overlayPermissionOpenSettingsFailed':
'Tidak dapat membuka tetapan sistem secara automatik. Sila buka Tetapan dan dayakan kebenaran overlay secara manual.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'Tidak dapat membuka tetapan sistem secara automatik. Sila buka Tetapan dan dayakan kebenaran overlay secara manual.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。
'transcribing': 'Transcribing...', 'transcribing': 'Sedang mentranskripsi...',
'summarizing': 'Summarizing...', 'summarizing': 'Sedang meringkaskan...',
'analyzing': 'Analyzing...', 'analyzing': 'Sedang menganalisis...',
'summaryComplete': 'Summary Complete', 'summaryComplete': 'Ringkasan Selesai',
'generate': 'Generate', 'generate': 'Jana',
'overview': 'Overview', 'overview': 'Gambaran Keseluruhan',
'transcription': 'Transcription', 'transcription': 'Transkripsi',
'summary': 'Summary', 'summary': 'Ringkasan',
'mindMap': 'Mind Map', 'mindMap': 'Peta Minda',
'editSpeaker': 'Edit', 'editSpeaker': 'Sunting',
'nameSpeaker': 'Name Speaker', 'nameSpeaker': 'Namakan Penutur',
// Meeting模块 - 转写与总结 // Meeting模块 - 转写与总结
'reSummarize': 'Re-summarize', 'reSummarize': 'Ringkaskan Semula',
'dateAndTime': 'Date & Time', 'dateAndTime': 'Tarikh & Masa',
'location': 'Location', 'location': 'Lokasi',
'attendees': 'Attendees', 'attendees': 'Peserta',
'inputLocation': 'Enter Location', 'inputLocation': 'Masukkan Lokasi',
'inputAttendees': 'Enter Attendees', 'inputAttendees': 'Masukkan Peserta',
// Meeting模块 - 模版与生成 // Meeting模块 - 模版与生成
'selectSummaryTemplate': 'Select Summary Template', 'selectSummaryTemplate': 'Pilih Templat Ringkasan',
'useThisTemplate': 'Use This Template', 'useThisTemplate': 'Gunakan Templat Ini',
'lastUsed': 'Last Used', 'lastUsed': 'Terakhir Digunakan',
'create': 'Cipta', 'create': 'Cipta',
'templateDetails': 'Butiran Templat', 'templateDetails': 'Butiran Templat',
'tag': 'Tag', 'tag': 'Teg',
'description': 'Penerangan', 'description': 'Penerangan',
'template': 'Templat', 'template': 'Templat',
'deleteTemplate': 'Padam Templat', 'deleteTemplate': 'Padam Templat',
@ -585,121 +585,121 @@ const Map<String, String> msMY = {
'pleaseEnter': 'Sila masukkan', 'pleaseEnter': 'Sila masukkan',
'viewAll': 'Lihat semua', 'viewAll': 'Lihat semua',
'recordingLanguage': 'Bahasa Rakaman', 'recordingLanguage': 'Bahasa Rakaman',
'chineseSimplified': 'Chinese Mandarin (Simplified)', 'chineseSimplified': 'Mandarin Cina (Ringkas)',
'meetingGenerateNow': 'Jana Sekarang', 'meetingGenerateNow': 'Jana Sekarang',
'keyEventsAnalyzed': 'Menganalisis {count} peristiwa utama.', 'keyEventsAnalyzed': 'Menganalisis {count} peristiwa utama.',
'aiAnalysisDesc': 'aiAnalysisDesc':
'Analisis AI mengenal pasti peristiwa utama dalam rakaman, membolehkan anda memilih peristiwa penting untuk penjanaan AI.', 'Analisis AI mengenal pasti peristiwa utama dalam rakaman, membolehkan anda memilih peristiwa penting untuk penjanaan AI.',
// Meeting模块 - 文件操作 // Meeting模块 - 文件操作
'importing': 'Importing...', 'importing': 'Mengimport...',
'batchImporting': 'Batch importing...', 'batchImporting': 'Import kelompok...',
'importingLocalRecordings': 'Mengimport rakaman tempatan...', 'importingLocalRecordings': 'Mengimport rakaman tempatan...',
'importFailed': 'Import fail gagal: {filePath}, ralat: {error}', 'importFailed': 'Import fail gagal: {filePath}, ralat: {error}',
'importSuccess': 'Berjaya mengimport {count} rakaman tempatan', 'importSuccess': 'Berjaya mengimport {count} rakaman tempatan',
'importError': 'Import gagal: {error}', 'importError': 'Import gagal: {error}',
'pleaseSelectAudioFile': 'Sila pilih fail audio', 'pleaseSelectAudioFile': 'Sila pilih fail audio',
'shareAudio': 'Share Meeting Audio', 'shareAudio': 'Kongsi Audio Mesyuarat',
'shareComplete': 'Share complete!', 'shareComplete': 'Perkongsian selesai!',
'shareFailed': 'Perkongsian gagal: {error}', 'shareFailed': 'Perkongsian gagal: {error}',
'fileProcessingFailed': 'Pemprosesan fail gagal: {filePath}, ralat: {error}', 'fileProcessingFailed': 'Pemprosesan fail gagal: {filePath}, ralat: {error}',
// Meeting模块 - 思维导图 // Meeting模块 - 思维导图
'saveMindMap': 'Simpan Peta Minda', 'saveMindMap': 'Simpan Peta Minda',
'shareMindMap': 'Share Mind Map', 'shareMindMap': 'Kongsi Peta Minda',
'shareSuccess': 'Perkongsian Berjaya', 'shareSuccess': 'Perkongsian Berjaya',
// Meeting模块 - AI问答 // Meeting模块 - AI问答
'askAI': 'Ask AI ...', 'askAI': 'Tanya AI ...',
'askAIPrompt': 'What can I help you with today?', 'askAIPrompt': 'Apa yang boleh saya bantu anda hari ini?',
'continueAsk': 'Continue Asking', 'continueAsk': 'Teruskan Bertanya',
'todoList': 'To-Do List', 'todoList': 'Senarai Tugasan',
'extractConclusion': 'Extract Conclusion', 'extractConclusion': 'Ekstrak Kesimpulan',
'generateKeyIndicators': 'Generate Key Indicators', 'generateKeyIndicators': 'Jana Penunjuk Utama',
// Meeting模块 - 分享与导出 // Meeting模块 - 分享与导出
'shareLink': 'Share Link', 'shareLink': 'Kongsi Pautan',
'copyTranscript': 'Copy Transcript', 'copyTranscript': 'Salin Transkrip',
'copySummary': 'Copy Summary', 'copySummary': 'Salin Ringkasan',
'exportAudio': 'Export Audio', 'exportAudio': 'Eksport Audio',
'exportTranscript': 'Export Transcript', 'exportTranscript': 'Eksport Transkrip',
'shareMeetingAudio': 'Share Meeting Audio', 'shareMeetingAudio': 'Kongsi Audio Mesyuarat',
'exportSummary': 'Export Summary', 'exportSummary': 'Eksport Ringkasan',
'exportAs': 'Export As', 'exportAs': 'Eksport Sebagai',
'exportingPDF': 'Exporting PDF...', 'exportingPDF': 'Mengeksport PDF...',
'export': 'Eksport', 'export': 'Eksport',
// Meeting模块 - 发言者 // Meeting模块 - 发言者
'applyToAllParagraphs': 'Guna pada semua perenggan penutur ini', 'applyToAllParagraphs': 'Guna pada semua perenggan penutur ini',
'summaryWillBeUpdatedAutomatically': 'summaryWillBeUpdatedAutomatically':
'Ringkasan akan dikemas kini secara automatik berdasarkan templat', 'Ringkasan akan dikemas kini secara automatik berdasarkan templat',
'nameCurrentSpeaker': 'Name Current Speaker', 'nameCurrentSpeaker': 'Namakan Penutur Semasa',
'recentlyUsedNames': 'Recently Used Names', 'recentlyUsedNames': 'Nama Terkini Digunakan',
'applyToCurrentParagraph': 'Apply to Current Paragraph', 'applyToCurrentParagraph': 'Guna pada Perenggan Semasa',
'totalTime': 'Total Time', 'totalTime': 'Jumlah Masa',
'summarySpeakerWillBeUpdatedAutomatically': 'summarySpeakerWillBeUpdatedAutomatically':
'Summary speakers will be updated automatically', 'Penutur ringkasan akan dikemas kini secara automatik',
// Meeting模块 - 云端同步 // Meeting模块 - 云端同步
'syncToCloud': 'Sync to Cloud', 'syncToCloud': 'Segerak ke Awan',
'syncToCloudTip': 'syncToCloudTip':
'Segerakkan rakaman anda ke awan secara automatik; anda boleh memainkan, mengurus dan berkongsi rakaman melalui VOITRANS APP atau VOITRANS Web (web.voitrans.com).', 'Segerakkan rakaman anda ke awan secara automatik; anda boleh memainkan, mengurus dan berkongsi rakaman melalui VOITRANS APP atau VOITRANS Web (web.voitrans.com).',
'syncToVoitransApp': 'Sync VOITRANS APP', 'syncToVoitransApp': 'Segerak VOITRANS APP',
'transcriptionRecord': 'Rekod Transkripsi', 'transcriptionRecord': 'Rekod Transkripsi',
// Meeting模块 - 我的页面 // Meeting模块 - 我的页面
'transcriptionRecords': 'Rekod Transkripsi', 'transcriptionRecords': 'Rekod Transkripsi',
'templateCommunity': 'Template Community', 'templateCommunity': 'Komuniti Templat',
'comingSoon': 'Coming Soon', 'comingSoon': 'Akan Datang',
'integration': 'Integration', 'integration': 'Integrasi',
'voitransPrivateCloud': 'VOITRANS PRIVATE CLOUD', 'voitransPrivateCloud': 'VOITRANS AWAN PERIBADI',
'enabled': 'Diaktifkan', 'enabled': 'Diaktifkan',
'disabled': 'Dilumpuhkan', 'disabled': 'Dilumpuhkan',
'myVoitransDevice': 'Peranti VOITRANS Saya', 'myVoitransDevice': 'Peranti VOITRANS Saya',
'helpAndFeedback': 'Help & Feedback', 'helpAndFeedback': 'Bantuan & Maklum Balas',
'aboutVoitrans': 'About VOITRANS', 'aboutVoitrans': 'Mengenai VOITRANS',
'meetingDays': 'Days', 'meetingDays': 'Hari',
'meetingHours': 'Hours', 'meetingHours': 'Jam',
'voitransAiMember': 'Voitrans AI Member', 'voitransAiMember': 'Ahli AI Voitrans',
'unlockStarterMember': 'Unlock Starter Member', 'unlockStarterMember': 'Buka Kunci Ahli Permulaan',
'bindDeviceToActivate': 'bindDeviceToActivate':
'Ikat peranti Voitrans untuk mengaktifkan keahlian Starter', 'Ikat peranti Voitrans untuk mengaktifkan keahlian Starter',
'unlockNow': 'Unlock Now', 'unlockNow': 'Buka Kunci Sekarang',
// Meeting模块 - 会员与升级 // Meeting模块 - 会员与升级
'comparison': 'Comparison', 'comparison': 'Perbandingan',
'detailedInfo': 'Detailed Information', 'detailedInfo': 'Maklumat Terperinci',
'monthlyTranscriptionTime': 'Monthly Transcription Time', 'monthlyTranscriptionTime': 'Masa Transkripsi Bulanan',
'unlimited': 'Unlimited', 'unlimited': 'Tanpa Had',
'professionalTemplates': 'Professional Templates', 'professionalTemplates': 'Templat Profesional',
'limited': 'Limited', 'limited': 'Terhad',
'fullTemplates': 'Full Templates', 'fullTemplates': 'Templat Penuh',
'professionalTerms': 'Professional Terms', 'professionalTerms': 'Istilah Profesional',
'customTemplates': 'Custom Templates', 'customTemplates': 'Templat Tersuai',
'visualMindMap': 'Visual Mind Map', 'visualMindMap': 'Peta Minda Visual',
'speakerIdentification': 'Speaker Identification', 'speakerIdentification': 'Pengenalan Penutur',
'aiVoiceEnhancement': 'AI Voice Enhancement', 'aiVoiceEnhancement': 'Peningkatan Suara AI',
'audioImport': 'Audio Import', 'audioImport': 'Import Audio',
'multipleExportFormats': 'Multiple Export Formats', 'multipleExportFormats': 'Pelbagai Format Eksport',
'professionalSummaryTemplates': 'Professional Summary Templates', 'professionalSummaryTemplates': 'Templat Ringkasan Profesional',
'professionalTemplateDesc': 'professionalTemplateDesc':
'Professional template design to improve your work efficiency. Customized according to industry needs.', 'Reka bentuk templat profesional untuk meningkatkan kecekapan kerja anda. Disesuaikan mengikut keperluan industri.',
'customTemplateDesc': 'customTemplateDesc':
'You can customize summary prompts according to your needs and use them to generate the required summaries.', 'Anda boleh menyesuaikan gesaan ringkasan mengikut keperluan anda dan menggunakannya untuk menjana ringkasan yang diperlukan.',
'askAiDesc': 'askAiDesc':
'Ekstrak maklumat lebih mendalam daripada rakaman secara pintar; jana jadual data, kesimpulan perbincangan utama, senarai tugasan, e-mel laporan dan kandungan berformat lain dengan satu klik.', 'Ekstrak maklumat lebih mendalam daripada rakaman secara pintar; jana jadual data, kesimpulan perbincangan utama, senarai tugasan, e-mel laporan dan kandungan berformat lain dengan satu klik.',
'visualMindMapDesc': 'visualMindMapDesc':
'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', 'Melebihi ringkasan - susun dan visualisasikan perkara utama dengan peta minda untuk pemahaman teks penuh yang lebih berkesan.',
'templateCommunityDesc': 'templateCommunityDesc':
'Discover, share, and get inspiration from the template library created by users.', 'Temui, kongsi, dan dapatkan inspirasi daripada pustaka templat yang dicipta oleh pengguna.',
'speakerIdentificationDesc': 'speakerIdentificationDesc':
'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', 'Transkripsi audio akan menyokong pengenalan penutur, memulihkan kandungan mesyuarat atau panggilan telefon dengan lebih intuitif. Pada masa yang sama, ringkasan akan lebih tepat.',
'privateCloudSyncDesc': 'privateCloudSyncDesc':
'Rakaman dan transkripsi anda akan disimpan dengan selamat pada pelayan awan khusus, dengan penyulitan penuh semasa muat naik dan muat turun untuk memastikan privasi dan keselamatan.', 'Rakaman dan transkripsi anda akan disimpan dengan selamat pada pelayan awan khusus, dengan penyulitan penuh semasa muat naik dan muat turun untuk memastikan privasi dan keselamatan.',
'aiVoiceEnhancementDesc': 'aiVoiceEnhancementDesc':
'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', 'Peningkatan suara AI menyokong pelbagai tetapan pengurangan bunyi bising, menghapuskan bunyi latar secara pintar, meningkatkan kejelasan suara, dan meningkatkan kualiti main balik audio.',
'audioImportDesc': 'audioImportDesc':
'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', 'Import fail audio dengan mudah dari aplikasi tempatan atau pihak ketiga, seperti memo suara, Google Drive, dll.',
'multipleExportFormatsDesc': 'multipleExportFormatsDesc':
'Eksport rakaman audio, teks transkripsi dan ringkasan anda dalam pelbagai format (TXT, PDF, JPEG) mengikut keperluan.', 'Eksport rakaman audio, teks transkripsi dan ringkasan anda dalam pelbagai format (TXT, PDF, JPEG) mengikut keperluan.',
'upgradeMembership': 'Naik taraf keahlian', 'upgradeMembership': 'Naik taraf keahlian',
@ -819,12 +819,12 @@ const Map<String, String> msMY = {
"unbind": "Nyahikat", "unbind": "Nyahikat",
"noDevicesBound": "Belum ada peranti diikat", "noDevicesBound": "Belum ada peranti diikat",
"pleaseBindDeviceFirst": "Sila ikat peranti dahulu untuk diurus", "pleaseBindDeviceFirst": "Sila ikat peranti dahulu untuk diurus",
"noMacAddress": "No MAC Address", "noMacAddress": "Tiada Alamat MAC",
"licenseCode": "License Code", "licenseCode": "Kod Lesen",
"confirmUnbind": "Confirm Unbind", "confirmUnbind": "Sahkan Nyahikat",
"confirmUnbindMessage": "confirmUnbindMessage":
"Adakah anda pasti mahu nyahikat peranti \"{deviceName}\"?", "Adakah anda pasti mahu nyahikat peranti \"{deviceName}\"?",
"confirmUnbindAction": "Confirm Unbind", "confirmUnbindAction": "Sahkan Nyahikat",
// Agent模块 - 主界面 // Agent模块 - 主界面
"Lily": "Lily", "Lily": "Lily",
@ -915,11 +915,11 @@ const Map<String, String> msMY = {
'generatedByAi': 'Dihasilkan oleh AI', 'generatedByAi': 'Dihasilkan oleh AI',
// Agent模块 - 工具调用 // Agent模块 - 工具调用
'toolCall': 'Tool Call', 'toolCall': 'Panggilan Alat',
'noResult': 'No Result', 'noResult': 'Tiada Keputusan',
'noToolCallContentToCopy': 'No tool call content to copy', 'noToolCallContentToCopy': 'Tiada kandungan panggilan alat untuk disalin',
'toolCallDetails': 'Tool Call Details:', 'toolCallDetails': 'Butiran Panggilan Alat:',
'toolCallContentCopied': 'Tool call content copied to clipboard', 'toolCallContentCopied': 'Kandungan panggilan alat telah disalin ke papan keratan',
// Agent模块 - 音乐卡片 // Agent模块 - 音乐卡片
'recommendedMusic': 'Berikut adalah beberapa muzik yang disyorkan:', 'recommendedMusic': 'Berikut adalah beberapa muzik yang disyorkan:',
@ -961,7 +961,7 @@ const Map<String, String> msMY = {
'pleaseInstallAmapApp': 'Sila pasang aplikasi Amap dahulu', 'pleaseInstallAmapApp': 'Sila pasang aplikasi Amap dahulu',
'pleaseInstallBaiduMapApp': 'Sila pasang aplikasi Baidu Maps dahulu', 'pleaseInstallBaiduMapApp': 'Sila pasang aplikasi Baidu Maps dahulu',
'appleMapStartFailed': 'Apple Maps gagal dimulakan', 'appleMapStartFailed': 'Apple Maps gagal dimulakan',
'appleMapUnavailable': 'Apple Maps unavailable', 'appleMapUnavailable': 'Apple Maps tidak tersedia',
'openAppleMapError': 'Ralat membuka Apple Maps', 'openAppleMapError': 'Ralat membuka Apple Maps',
// Agent模块 - 天气卡片 // Agent模块 - 天气卡片
@ -1072,13 +1072,13 @@ const Map<String, String> msMY = {
"translatedImageLoadFailed": "Gagal memuatkan imej terjemahan", "translatedImageLoadFailed": "Gagal memuatkan imej terjemahan",
"pleaseSelectImage": "Sila pilih imej", "pleaseSelectImage": "Sila pilih imej",
"imageLoadFailed": "Imej gagal dimuatkan", "imageLoadFailed": "Imej gagal dimuatkan",
"imageQuality": "Image Quality", "imageQuality": "Kualiti Imej",
"maxSize": "Max Size", "maxSize": "Saiz Maksimum",
"close": "Close", "close": "Tutup",
"setImageQuality": "Set Image Quality", "setImageQuality": "Tetapkan Kualiti Imej",
"currentQuality": "Current quality: @value%", "currentQuality": "Kualiti semasa: @value%",
"setMaxSize": "Set Max Size", "setMaxSize": "Tetapkan Saiz Maksimum",
"currentMaxSize": "Current: @pxpx", "currentMaxSize": "Semasa: @pxpx",
"waitingForAction": "Menunggu tindakan", "waitingForAction": "Menunggu tindakan",
"pleaseSelectImageToStart": "Sila pilih imej untuk mula", "pleaseSelectImageToStart": "Sila pilih imej untuk mula",
"chooseImage": "Pilih Imej", "chooseImage": "Pilih Imej",
@ -1095,9 +1095,9 @@ const Map<String, String> msMY = {
"processingFailed": "Pemprosesan Gagal", "processingFailed": "Pemprosesan Gagal",
"imageProcessingOrTranslationFailed": "imageProcessingOrTranslationFailed":
"Pemprosesan imej atau terjemahan gagal. Sila cuba lagi.\nRalat: {error}", "Pemprosesan imej atau terjemahan gagal. Sila cuba lagi.\nRalat: {error}",
"imageTooLarge": "Image size exceeds 4MB limit", "imageTooLarge": "Saiz imej melebihi had 4MB",
"imageTooLargeHint": "imageTooLargeHint":
"Image size exceeds 4MB. Reduce quality or dimensions and retry", "Saiz imej melebihi 4MB. Kurangkan kualiti atau dimensi dan cuba lagi",
"emptyTranslationResult": "API terjemahan imej mengembalikan hasil kosong", "emptyTranslationResult": "API terjemahan imej mengembalikan hasil kosong",
"imageTranslationFailedTryLater": "imageTranslationFailedTryLater":
"Terjemahan imej gagal. Masalah rangkaian atau had kadar. Sila cuba kemudian", "Terjemahan imej gagal. Masalah rangkaian atau had kadar. Sila cuba kemudian",
@ -1109,11 +1109,11 @@ const Map<String, String> msMY = {
"photoAlbumPermissionRequired": "photoAlbumPermissionRequired":
"Kebenaran album foto diperlukan untuk memilih imej", "Kebenaran album foto diperlukan untuk memilih imej",
"translationDetails": "Butiran Terjemahan", "translationDetails": "Butiran Terjemahan",
"originalImage": "Original Image", "originalImage": "Imej Asal",
"sourceLanguage": "Source Language", "sourceLanguage": "Bahasa Sumber",
"targetLanguage": "Target Language", "targetLanguage": "Bahasa Sasaran",
"translationTime": "Masa Terjemahan", "translationTime": "Masa Terjemahan",
"shareInDevelopment": "Sharing feature under development", "shareInDevelopment": "Ciri perkongsian sedang dalam pembangunan",
// 翻译模块 - 录音文件 // 翻译模块 - 录音文件
"translateAudioFiles": "Terjemah Fail Audio", "translateAudioFiles": "Terjemah Fail Audio",
@ -1152,7 +1152,7 @@ const Map<String, String> msMY = {
// 个人资料模块 // 个人资料模块
"editProfile": "Sunting Maklumat Peribadi", "editProfile": "Sunting Maklumat Peribadi",
"avatar": "Avatar", "avatar": 'Avatar',
"nickname": "Nama Samaran", "nickname": "Nama Samaran",
"save": "Simpan", "save": "Simpan",
"about": "Mengenai", "about": "Mengenai",
@ -1164,8 +1164,8 @@ const Map<String, String> msMY = {
'deleteAccount': 'Padam Akaun', 'deleteAccount': 'Padam Akaun',
'deleteAccountTips': 'deleteAccountTips':
'Adakah anda pasti mahu memadam akaun anda secara kekal? Tindakan ini tidak boleh dibatalkan', 'Adakah anda pasti mahu memadam akaun anda secara kekal? Tindakan ini tidak boleh dibatalkan',
'clean': 'Clear Cache', 'clean': 'Kosongkan Cache',
'cleanTips': 'Are you sure you want to clear personal cache?', 'cleanTips': 'Adakah anda pasti mahu mengosongkan cache peribadi?',
'networkConnectionFailed': 'networkConnectionFailed':
'Sambungan rangkaian gagal, sila semak tetapan rangkaian anda dan cuba lagi', 'Sambungan rangkaian gagal, sila semak tetapan rangkaian anda dan cuba lagi',
'serverTemporarilyUnavailable': 'serverTemporarilyUnavailable':
@ -1208,7 +1208,7 @@ const Map<String, String> msMY = {
'Perkhidmatan Akaun telah dimulakan', // AccountService 已初始化 'Perkhidmatan Akaun telah dimulakan', // AccountService 已初始化
// 权限模块 // 权限模块
'meetingStoragePermission': 'Storage', 'meetingStoragePermission': 'Storan',
'meetingStoragePermissionExplanation': 'meetingStoragePermissionExplanation':
'Kami memerlukan kebenaran storan supaya anda boleh memilih dan memuat naik fail audio.', 'Kami memerlukan kebenaran storan supaya anda boleh memilih dan memuat naik fail audio.',
'meetingStoragePermissionPermanentDenial': 'meetingStoragePermissionPermanentDenial':
@ -1224,9 +1224,9 @@ const Map<String, String> msMY = {
'locationPermissions': 'Kebenaran Lokasi', 'locationPermissions': 'Kebenaran Lokasi',
'phone': 'Telefon', 'phone': 'Telefon',
'sms': 'SMS', 'sms': 'SMS',
'contacts': 'Contacts', 'contacts': 'Kenalan',
'notification': 'Notification', 'notification': 'Pemberitahuan',
'alarm': 'Alarm', 'alarm': 'Penggera',
'calendarWrite': 'Tulis Kalendar', 'calendarWrite': 'Tulis Kalendar',
'calendarFullAccess': 'Akses Penuh Kalendar', 'calendarFullAccess': 'Akses Penuh Kalendar',
'locationInfo': 'Maklumat Lokasi', 'locationInfo': 'Maklumat Lokasi',
@ -1273,7 +1273,7 @@ const Map<String, String> msMY = {
'Digunakan untuk menyambung ke peranti Bluetooth', 'Digunakan untuk menyambung ke peranti Bluetooth',
'bluetoothConnectPermissionDetailDesc': 'bluetoothConnectPermissionDetailDesc':
'Menyambung ke peranti Bluetooth memerlukan kebenaran sambung Bluetooth', 'Menyambung ke peranti Bluetooth memerlukan kebenaran sambung Bluetooth',
'notificationPermissionDesc': 'Used for sending notification messages', 'notificationPermissionDesc': 'Digunakan untuk menghantar mesej pemberitahuan',
'notificationPermissionDetailDesc': 'notificationPermissionDetailDesc':
'Aplikasi memerlukan kebenaran notifikasi untuk menghantar amaran dan mesej penting kepada anda', 'Aplikasi memerlukan kebenaran notifikasi untuk menghantar amaran dan mesej penting kepada anda',
'appNeedsPermissionForFullFunction': 'appNeedsPermissionForFullFunction':
@ -1281,7 +1281,7 @@ const Map<String, String> msMY = {
'permanentDenialText': 'permanentDenialText':
'Anda telah menafikan kebenaran {permission} secara kekal, sila pergi ke tetapan aplikasi untuk mendayakannya', 'Anda telah menafikan kebenaran {permission} secara kekal, sila pergi ke tetapan aplikasi untuk mendayakannya',
'goToSettings': 'Pergi ke Tetapan', 'goToSettings': 'Pergi ke Tetapan',
'bluetoothScan': 'Bluetooth Scan', 'bluetoothScan': 'Imbasan Bluetooth',
'bluetoothConnect': 'Sambung Bluetooth', 'bluetoothConnect': 'Sambung Bluetooth',
'bluetoothScanExplanation': 'bluetoothScanExplanation':
'Aplikasi memerlukan kebenaran imbas Bluetooth untuk mengimbas peranti Bluetooth berdekatan.', 'Aplikasi memerlukan kebenaran imbas Bluetooth untuk mengimbas peranti Bluetooth berdekatan.',
@ -1295,8 +1295,8 @@ const Map<String, String> msMY = {
'Kebenaran sambung Bluetooth telah ditolak secara kekal, sila pergi ke tetapan untuk mendayakannya secara manual.', 'Kebenaran sambung Bluetooth telah ditolak secara kekal, sila pergi ke tetapan untuk mendayakannya secara manual.',
'locationPermanentDenial': 'locationPermanentDenial':
'Kebenaran lokasi telah ditolak secara kekal, sila pergi ke tetapan untuk mendayakannya secara manual.', 'Kebenaran lokasi telah ditolak secara kekal, sila pergi ke tetapan untuk mendayakannya secara manual.',
'notificationPermission': 'Notification', 'notificationPermission': 'Pemberitahuan',
'locationPermission': 'Location', 'locationPermission': 'Lokasi',
'notificationPermissionExplanation': 'notificationPermissionExplanation':
'Kebenaran notifikasi diperlukan untuk memaparkan status main balik muzik.', 'Kebenaran notifikasi diperlukan untuk memaparkan status main balik muzik.',
'locationPermissionExplanation': 'locationPermissionExplanation':
@ -1305,7 +1305,7 @@ const Map<String, String> msMY = {
'Anda telah menafikan kebenaran notifikasi secara kekal, sila pergi ke tetapan untuk mendayakannya.', 'Anda telah menafikan kebenaran notifikasi secara kekal, sila pergi ke tetapan untuk mendayakannya.',
'locationPermissionPermanentDenial': 'locationPermissionPermanentDenial':
'Anda telah menafikan kebenaran lokasi secara kekal, sila pergi ke tetapan untuk mendayakannya.', 'Anda telah menafikan kebenaran lokasi secara kekal, sila pergi ke tetapan untuk mendayakannya.',
'storagePermission': 'Storage', 'storagePermission': 'Storan',
'microphonePermissionExplanation': 'microphonePermissionExplanation':
'Kami memerlukan kebenaran mikrofon untuk merakam kandungan audio.', 'Kami memerlukan kebenaran mikrofon untuk merakam kandungan audio.',
'storagePermissionExplanation': 'storagePermissionExplanation':
@ -1576,11 +1576,11 @@ const Map<String, String> msMY = {
// 国家列表 // 国家列表
"邮箱": "E-mel", "邮箱": "E-mel",
"中国": "China", "中国": 'China',
"美国": "Amerika Syarikat", "美国": "Amerika Syarikat",
"加拿大": "Kanada", "加拿大": "Kanada",
"俄罗斯": "Rusia", "俄罗斯": "Rusia",
"英国": "United Kingdom", "英国": 'United Kingdom',
"德国": "Jerman", "德国": "Jerman",
"意大利": "Itali", "意大利": "Itali",
"法国": "Perancis", "法国": "Perancis",
@ -1591,105 +1591,105 @@ const Map<String, String> msMY = {
"日本": "Jepun", "日本": "Jepun",
"韩国": "Korea Selatan", "韩国": "Korea Selatan",
"新加坡": "Singapura", "新加坡": "Singapura",
"马来西亚": "Malaysia", "马来西亚": 'Malaysia',
"泰国": "Thailand", "泰国": 'Thailand',
"越南": "Vietnam", "越南": 'Vietnam',
"印度": "India", "印度": 'India',
"巴基斯坦": "Pakistan", "巴基斯坦": 'Pakistan',
"菲律宾": "Filipina", "菲律宾": "Filipina",
"印度尼西亚": "Indonesia", "印度尼西亚": 'Indonesia',
"阿联酋": "Emiriah Arab Bersatu", "阿联酋": "Emiriah Arab Bersatu",
"墨西哥": "Mexico", "墨西哥": "Meksiko",
"巴西": "Brazil", "巴西": 'Brazil',
"阿根廷": "Argentina", "阿根廷": 'Argentina',
"澳大利亚": "Australia", "澳大利亚": 'Australia',
"新西兰": "New Zealand", "新西兰": 'New Zealand',
"中国香港": "Hong Kong (China)", "中国香港": "Hong Kong (China)",
"中国澳门": "Macau (China)", "中国澳门": "Macau (China)",
"中国台湾": "Taiwan (China)", "中国台湾": "Taiwan (China)",
"埃及": "Mesir", "埃及": "Mesir",
"希腊": "Greece", "希腊": "Yunani",
"荷兰": "Belanda", "荷兰": "Belanda",
"比利时": "Belgium", "比利时": 'Belgium',
"匈牙利": "Hungary", "匈牙利": 'Hungary',
"罗马尼亚": "Romania", "罗马尼亚": 'Romania',
"瑞士": "Switzerland", "瑞士": 'Switzerland',
"奥地利": "Austria", "奥地利": 'Austria',
"丹麦": "Denmark", "丹麦": 'Denmark',
"瑞典": "Sweden", "瑞典": 'Sweden',
"挪威": "Norway", "挪威": "Norway",
"波兰": "Poland", "波兰": 'Poland',
"秘鲁": "Peru", "秘鲁": 'Peru',
"智利": "Chile", "智利": 'Chile',
"哥伦比亚": "Colombia", "哥伦比亚": "Kolombia",
"委内瑞拉": "Venezuela", "委内瑞拉": 'Venezuela',
"葡萄牙": "Portugal", "葡萄牙": 'Portugal',
"卢森堡": "Luxembourg", "卢森堡": 'Luxembourg',
"爱尔兰": "Ireland", "爱尔兰": 'Ireland',
"冰岛": "Iceland", "冰岛": 'Iceland',
"阿尔巴尼亚": "Albania", "阿尔巴尼亚": 'Albania',
"马耳他": "Malta", "马耳他": 'Malta',
"塞浦路斯": "Cyprus", "塞浦路斯": 'Cyprus',
"芬兰": "Finland", "芬兰": 'Finland',
"保加利亚": "Bulgaria", "保加利亚": 'Bulgaria',
"立陶宛": "Lithuania", "立陶宛": 'Lithuania',
"拉脱维亚": "Latvia", "拉脱维亚": 'Latvia',
"爱沙尼亚": "Estonia", "爱沙尼亚": 'Estonia',
"乌克兰": "Ukraine", "乌克兰": 'Ukraine',
"塞尔维亚": "Serbia", "塞尔维亚": 'Serbia',
"克罗地亚": "Croatia", "克罗地亚": 'Croatia',
"斯洛文尼亚": "Slovenia", "斯洛文尼亚": 'Slovenia',
"捷克": "Republik Czech", "捷克": "Republik Czech",
"斯洛伐克": "Slovakia", "斯洛伐克": 'Slovakia',
"危地马拉": "Guatemala", "危地马拉": 'Guatemala',
"萨尔瓦多": "El Salvador", "萨尔瓦多": 'El Salvador',
"洪都拉斯": "Honduras", "洪都拉斯": 'Honduras',
"尼加拉瓜": "Nicaragua", "尼加拉瓜": 'Nicaragua',
"哥斯达黎加": "Costa Rica", "哥斯达黎加": 'Costa Rica',
"巴拿马": "Panama", "巴拿马": 'Panama',
"海地": "Haiti", "海地": 'Haiti',
"玻利维亚": "Bolivia", "玻利维亚": 'Bolivia',
"厄瓜多尔": "Ecuador", "厄瓜多尔": 'Ecuador',
"巴拉圭": "Paraguay", "巴拉圭": 'Paraguay',
"乌拉圭": "Uruguay", "乌拉圭": 'Uruguay',
"摩洛哥": "Morocco", "摩洛哥": "Maghribi",
"阿尔及利亚": "Algeria", "阿尔及利亚": 'Algeria',
"突尼斯": "Tunisia", "突尼斯": 'Tunisia',
"尼日利亚": "Nigeria", "尼日利亚": 'Nigeria',
"加纳": "Ghana", "加纳": 'Ghana',
"埃塞俄比亚": "Ethiopia", "埃塞俄比亚": "Habsyah",
"肯尼亚": "Kenya", "肯尼亚": 'Kenya',
"坦桑尼亚": "Tanzania", "坦桑尼亚": 'Tanzania',
"乌干达": "Uganda", "乌干达": 'Uganda',
"孟加拉国": "Bangladesh", "孟加拉国": 'Bangladesh',
"以色列": "Israel", "以色列": 'Israel',
"黎巴嫩": "Lebanon", "黎巴嫩": "Lubnan",
"约旦": "Jordan", "约旦": 'Jordan',
"伊拉克": "Iraq", "伊拉克": 'Iraq',
"科威特": "Kuwait", "科威特": 'Kuwait',
"巴林": "Bahrain", "巴林": 'Bahrain',
"卡塔尔": "Qatar", "卡塔尔": 'Qatar',
"阿曼": "Oman", "阿曼": 'Oman',
"阿富汗": "Afghanistan", "阿富汗": 'Afghanistan',
"斯里兰卡": "Sri Lanka", "斯里兰卡": 'Sri Lanka',
"缅甸": "Myanmar", "缅甸": 'Myanmar',
"尼泊尔": "Nepal", "尼泊尔": 'Nepal',
"蒙古": "Mongolia", "蒙古": 'Mongolia',
"柬埔寨": "Cambodia", "柬埔寨": "Kemboja",
"老挝": "Laos", "老挝": 'Laos',
"文莱": "Brunei", "文莱": 'Brunei',
"东帝汶": "Timor-Leste", "东帝汶": "Timor-Leste",
"斐济": "Fiji", "斐济": 'Fiji',
"所罗门群岛": "Solomon Islands", "所罗门群岛": "Kepulauan Solomon",
"刚果民主共和国": "Democratic Republic of the Congo", "刚果民主共和国": "Republik Demokratik Congo",
"安哥拉": "Angola", "安哥拉": 'Angola',
"苏丹": "Sudan", "苏丹": 'Sudan',
"马尔代夫": "Maldives", "马尔代夫": 'Maldives',
"不丹": "Bhutan", "不丹": 'Bhutan',
"摩纳哥": "Monaco", "摩纳哥": 'Monaco',
"圣马力诺": "San Marino", "圣马力诺": 'San Marino',
"牙买加": "Jamaica", "牙买加": 'Jamaica',
"巴哈马": "Bahamas", "巴哈马": 'Bahamas',
"巴布亚新几内亚": "Papua New Guinea", "巴布亚新几内亚": 'Papua New Guinea',
"萨摩亚": "Samoa", "萨摩亚": 'Samoa',
}; };

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

@ -19,11 +19,11 @@ const Map<String, String> nbNO = {
"unknownError": "Ukjent feil", "unknownError": "Ukjent feil",
"asrConnectionFailed": "asrConnectionFailed":
"Tilkobling til talegjenkjenningstjenesten mislyktes. Kontroller nettverket eller prøv igjen senere.", "Tilkobling til talegjenkjenningstjenesten mislyktes. Kontroller nettverket eller prøv igjen senere.",
"justNow": "Just now", "justNow": "Nettopp nå",
"minutesAgo": "@minutes minutes ago", "minutesAgo": "@minutes minutter siden",
"yesterday": "Yesterday", "yesterday": "I går",
"daysAgo": "@days days ago", "daysAgo": "@days dager siden",
"hoursAgo": "@hours hours ago", "hoursAgo": "@hours timer siden",
// 启动页 // 启动页
"slogan": "Kobler sammen verden, hinsides lyd", "slogan": "Kobler sammen verden, hinsides lyd",
@ -49,9 +49,9 @@ const Map<String, String> nbNO = {
"russian": "Russisk", "russian": "Russisk",
"vietnamese": "Vietnamesisk", "vietnamese": "Vietnamesisk",
"italian": "Italiensk", "italian": "Italiensk",
"hindi": "Hindi", "hindi": 'Hindi',
"indonesian": "Indonesisk", "indonesian": "Indonesisk",
"thai": "Thai", "thai": 'Thai',
"malay": "Malayisk", "malay": "Malayisk",
"turkish": "Tyrkisk", "turkish": "Tyrkisk",
"polish": "Polsk", "polish": "Polsk",
@ -119,7 +119,7 @@ const Map<String, String> nbNO = {
"reconnect": "Koble til på nytt", "reconnect": "Koble til på nytt",
"connectingDevice": "Kobler til enhet...", "connectingDevice": "Kobler til enhet...",
"connectedTo": "Tilkoblet", "connectedTo": "Tilkoblet",
"signal": "Signal", "signal": 'Signal',
"deviceId": "Enhets-ID", "deviceId": "Enhets-ID",
"firmwareVersion": "Firmware-versjon", "firmwareVersion": "Firmware-versjon",
"disconnectedDevice": "disconnectedDevice":
@ -256,10 +256,10 @@ const Map<String, String> nbNO = {
"transcriptBytes": "Transkripsjonsbyte", "transcriptBytes": "Transkripsjonsbyte",
"loadFailed": "Kunne ikke laste", "loadFailed": "Kunne ikke laste",
"statsLoadFailedTryLater": "Kunne ikke laste statistikk. Prøv igjen senere.", "statsLoadFailedTryLater": "Kunne ikke laste statistikk. Prøv igjen senere.",
"cleanupComplete": "Cleanup Complete", "cleanupComplete": "Opprydding fullført",
"cleanedOldData": "Cleaned data older than 90 days", "cleanedOldData": "Slettet data eldre enn 90 dager",
"exportFeature": "Export Feature", "exportFeature": "Eksportfunksjon",
"exportInDevelopment": "Data export is under development", "exportInDevelopment": "Dataeksport er under utvikling",
// 商品模块 - 通用 // 商品模块 - 通用
'availablePackages': 'Tilgjengelige pakker', 'availablePackages': 'Tilgjengelige pakker',
@ -331,101 +331,106 @@ const Map<String, String> nbNO = {
'AI-medlemskapet er utløpt. Gå til medlemskapets påfyllingsside for å fornye.', 'AI-medlemskapet er utløpt. Gå til medlemskapets påfyllingsside for å fornye.',
// 商品模块 - AI商品页 // 商品模块 - AI商品页
'musicAndRecommendation': 'Music & Recommendation', 'musicAndRecommendation': 'Musikk og anbefalinger',
'navigationAndRoutes': 'Navigation & Routes', 'navigationAndRoutes': 'Navigasjon og ruter',
'nearbySearch': 'Nearby Search', 'nearbySearch': 'Søk i nærheten',
'newsInformation': 'News', 'newsInformation': 'Nyheter',
'communicationAssistant': 'Communication Assistant', 'communicationAssistant': 'Kommunikasjonsassistent',
'aiHeaderDesc1': 'aiHeaderDesc1':
'Longer conversation quota, more tool calls, extended context length.', 'Lengre samtalekvoter, flere verktøykall og utvidet kontekstlengde.',
'aiHeaderDesc2': 'aiHeaderDesc2':
'Suitable for agent Q&A, summarization, analysis, and task execution.', 'Passer for agent-spørsmål, oppsummering, analyse og oppgaveutførelse.',
'musicSearchPlaybackControl': 'Music library search and playback control', 'musicSearchPlaybackControl': 'Søk i musikkbibliotek og avspillingskontroll',
'smartPlaylistAndSimilarRecommendations': 'smartPlaylistAndSimilarRecommendations':
'Smart playlist and similar song recommendations', 'Smart spilleliste og lignende låtanbefalinger',
'routePlanningAndCongestionAvoidance': 'routePlanningAndCongestionAvoidance':
'Route planning and congestion avoidance', 'Ruteplanlegging og unngåelse av trafikk',
'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'voiceBroadcastAndWaypoints': 'Talesending og veipunktsinnstillinger',
'realTimeWeatherForecast': 'Real-time weather and forecast', 'realTimeWeatherForecast': 'Sanntidsvær og værmelding',
'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', 'clothingAdviceAndTravelReminders': 'Klesråd og reisepåminnelser',
'poiSearchFoodGasParking': 'POI search: dining / gas / parking', 'poiSearchFoodGasParking': 'POI-søk: restaurant / bensin / parkering',
'ratingsHoursAndDirectRoutes': 'Ratings, business hours, and direct routing', 'ratingsHoursAndDirectRoutes': 'Vurderinger, åpningstider og direkteruter',
'hotNewsAndTopicOverview': 'Hot news and topic overview', 'hotNewsAndTopicOverview': 'Populære nyheter og temaoversikt',
'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'longArticleSummariesAndKeyPoints':
'helpCallAndSMS': 'Help with calls and SMS', 'Sammendrag av lange artikler og nøkkelpunkter',
'helpCallAndSMS': 'Hjelp med samtaler og SMS',
'templatedMessagesAndScheduleReminders': 'templatedMessagesAndScheduleReminders':
'Template messages and schedule reminders', 'Meldingsmaler og planlagte påminnelser',
'aiDisclaimer': 'aiDisclaimer':
'Funksjoner avhenger av enhetstillatelser, tjenestetilgjengelighet og nettverksforhold.', 'Funksjoner avhenger av enhetstillatelser, tjenestetilgjengelighet og nettverksforhold.',
// 商品模块 - 翻译商品页 // 商品模块 - 翻译商品页
'realtimeTranscription': 'Real-time Transcription', 'realtimeTranscription': 'Sanntidstranskripsjon',
'sceneLexicon': 'Scenario Glossary', 'sceneLexicon': 'Scenarieordliste',
'subtitleDisplay': 'Subtitles', 'subtitleDisplay': 'Undertekster',
'transHeaderDesc1': 'transHeaderDesc1':
'Sanntid simultantolking og tekstoversettelse med lav forsinkelse.', 'Sanntid simultantolking og tekstoversettelse med lav forsinkelse.',
'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'transHeaderDesc2':
'Passer for reise, forretninger, foredrag og undervisning.',
'translateZhEn': 'Kinesisk–engelsk oversettelse', 'translateZhEn': 'Kinesisk–engelsk oversettelse',
'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'lowLatencyVoiceBroadcast': 'Talesending med lav forsinkelse',
'multiLangTextTranslation': 'Flerspråklig tekstoversettelse', 'multiLangTextTranslation': 'Flerspråklig tekstoversettelse',
'termOptimizationContextPreserve': 'termOptimizationContextPreserve':
'Terminology optimization and context preservation', 'Terminologioptimalisering og bevaring av kontekst',
'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'lexiconTourBusinessLife': 'Reise-/Forretnings-/Livsstilsordlister',
'personalVocabularyMemory': 'Personal vocabulary memory', 'personalVocabularyMemory': 'Personlig ordforrådshukommelse',
'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'conversationSubtitleLargeText': 'Samtaleteksting / Stor-tekst-modus',
'colorHighContrast': 'High color contrast', 'colorHighContrast': 'Høy fargekontrast',
'transDisclaimer': 'transDisclaimer':
'Oversettelsesytelsen avhenger av mikrofon, nettverksforsinkelse og bakgrunnsstøy.', 'Oversettelsesytelsen avhenger av mikrofon, nettverksforsinkelse og bakgrunnsstøy.',
// 商品模块 - 会议商品页 // 商品模块 - 会议商品页
'meetingRecording': 'Møteopptak', 'meetingRecording': 'Møteopptak',
'transcriptionAndSummary': 'Transcription & Summary', 'transcriptionAndSummary': 'Transkripsjon og sammendrag',
'keywordSearch': 'Keyword Search', 'keywordSearch': 'Nøkkelordsøk',
'collaborationSharing': 'Collaboration & Sharing', 'collaborationSharing': 'Samarbeid og deling',
'meetingHeaderDesc1': 'meetingHeaderDesc1':
'Lydopptak, transkripsjon, nøkkelordsøk og automatisk oppsummering for å øke møteffektiviteten.', 'Lydopptak, transkripsjon, nøkkelordsøk og automatisk oppsummering for å øke møteffektiviteten.',
'meetingHeaderDesc2': 'meetingHeaderDesc2':
'Suitable for business meetings, class notes, and interview minutes.', 'Passer for forretningsmøter, klassenotater og intervjureferater.',
'meetingAutoRecording': 'Automatisk opptak og segmentering', 'meetingAutoRecording': 'Automatisk opptak og segmentering',
'meetingSpeakerTagging': 'Speaker labeling', 'meetingSpeakerTagging': 'Talermerkering',
'meetingLongAudioTranscription': 'Long audio transcription', 'meetingLongAudioTranscription': 'Lang lydtranskripsjon',
'meetingKeyPointSummary': 'Key point extraction', 'meetingKeyPointSummary': 'Uttrekking av nøkkelpunkter',
'meetingTopicNameSearch': 'Search by topic/name', 'meetingTopicNameSearch': 'Søk etter emne/navn',
'meetingTimelineJump': 'Timeline jump', 'meetingTimelineJump': 'Tidslinjesprang',
'meetingExportSummary': 'Export minutes', 'meetingExportSummary': 'Eksporter referat',
'meetingMultiPlatformShare': 'Share across platforms', 'meetingMultiPlatformShare': 'Del på tvers av plattformer',
'meetingDisclaimer': 'meetingDisclaimer':
'Bruk i rolige omgivelser; ytelsen avhenger av mikrofon og nettverk.', 'Bruk i rolige omgivelser; ytelsen avhenger av mikrofon og nettverk.',
// 商品模块 - VIP会员页 // 商品模块 - VIP会员页
'benefitsOverview': 'Benefits overview', 'benefitsOverview': 'Fordeler oversikt',
'higherQuota': 'Higher usage quota', 'higherQuota': 'Høyere brukskvote',
'lowerUnitPrice': 'Lower unit price', 'lowerUnitPrice': 'Lavere enhetspris',
'priorityService': 'Priority service', 'priorityService': 'Prioritert service',
'exclusiveSupportChannel': 'Dedicated support channel', 'exclusiveSupportChannel': 'Dedikert støttekanal',
'fastResponse': 'Fast issue response', 'fastResponse': 'Rask problemrespons',
'eventsAndDiscounts': 'Events and discounts', 'eventsAndDiscounts': 'Arrangementer og rabatter',
'memberExclusiveEvents': 'Member-exclusive events', 'memberExclusiveEvents': 'Eksklusive medlemsarrangementer',
'longTermDiscountPlan': 'Long-term discount plan', 'longTermDiscountPlan': 'Langsiktig rabattplan',
'generalPrivileges': 'General privileges', 'generalPrivileges': 'Generelle privilegier',
'earlyAccessNewFeatures': 'Early access to new features', 'earlyAccessNewFeatures': 'Tidlig tilgang til nye funksjoner',
'crossDeviceSync': 'Synkronisering på tvers av enheter', 'crossDeviceSync': 'Synkronisering på tvers av enheter',
'vipDisclaimer': 'vipDisclaimer':
'Actual benefits depend on the package details and may change with versions.', 'Faktiske fordeler avhenger av pakkedetaljene og kan endres med versjoner.',
// 商品模块 - 商品名称与描述 // 商品模块 - 商品名称与描述
'ai_001_name': 'AI Basic 100', 'ai_001_name': 'AI Basis 100',
'ai_002_name': 'AI Basic 500', 'ai_002_name': 'AI Basis 500',
'ai_003_name': 'AI Basic 1000', 'ai_003_name': 'AI Basis 1000',
'meet_001_name': 'Meeting Basic 100', 'meet_001_name': 'Møte Basis 100',
'meet_002_name': 'Meeting Basic 500', 'meet_002_name': 'Møte Basis 500',
'meet_003_name': 'Meeting Basic 1000', 'meet_003_name': 'Møte Basis 1000',
'trans_001_name': 'Oversettelse Basis 100', 'trans_001_name': 'Oversettelse Basis 100',
'trans_002_name': 'Oversettelse Basis 500', 'trans_002_name': 'Oversettelse Basis 500',
'trans_003_name': 'Oversettelse Basis 1000', 'trans_003_name': 'Oversettelse Basis 1000',
'ai_001_desc': 'Includes 100 uses. Access core AI features.', 'ai_001_desc':
'ai_002_desc': 'Includes 500 uses. Access core AI features.', 'Inkluderer 100 brukstilfeller. Tilgang til kjerne-AI-funksjoner.',
'ai_003_desc': 'Includes 1000 uses. Access core AI features.', 'ai_002_desc':
'Inkluderer 500 brukstilfeller. Tilgang til kjerne-AI-funksjoner.',
'ai_003_desc':
'Inkluderer 1000 brukstilfeller. Tilgang til kjerne-AI-funksjoner.',
'meet_001_desc': 'Inkluderer 100 møteopptak/transkripsjoner.', 'meet_001_desc': 'Inkluderer 100 møteopptak/transkripsjoner.',
'meet_002_desc': 'Inkluderer 500 møteopptak/transkripsjoner.', 'meet_002_desc': 'Inkluderer 500 møteopptak/transkripsjoner.',
'meet_003_desc': 'Inkluderer 1000 møteopptak/transkripsjoner.', 'meet_003_desc': 'Inkluderer 1000 møteopptak/transkripsjoner.',
@ -434,46 +439,48 @@ const Map<String, String> nbNO = {
'trans_003_desc': 'Inkluderer 1000 oversettelser (tale/tekst).', 'trans_003_desc': 'Inkluderer 1000 oversettelser (tale/tekst).',
// 商品模块 - 页脚 // 商品模块 - 页脚
'appNameProvider': 'App: VoiTrans · Provided by: VoiTrans', 'appNameProvider': 'App: VoiTrans · Levert av: VoiTrans',
'iapCustomerServiceQQLabel': 'IAP customer service QQ: @qq', 'iapCustomerServiceQQLabel': 'QQ for IAP-kundeservice: @qq',
'copyrightVoitrans': '© 2025 Voitrans Technologies', 'copyrightVoitrans': '© 2025 Voitrans Technologies',
// 新手引导 // 新手引导
'skip': "Hopp over", 'skip': 'Hopp over',
'next': 'Next', 'next': 'Neste',
'sayLilyHint': 'Say "Lily Lily" to the mic', 'sayLilyHint': 'Si "Lily Lily" til mikrofonen',
'imHere': 'I’m here~', 'imHere': 'Jeg er her~',
'guideWelcomeWakeAI': 'Welcome to Voitrans! First, wake your AI “Lily”.', 'guideWelcomeWakeAI':
'aiReplyCompleted': 'Lily has finished the reply!', 'Velkommen til Voitrans! Vekk AI-en din \u201cLily\u201d først.',
'aiThinking': 'Lily is thinking…', 'aiReplyCompleted': 'Lily har fullført svaret!',
'guideAwakenSuccess': 'Great! Lily is awake—ask it to help.', 'aiThinking': 'Lily tenker\u2026',
'confirmInput': 'Confirm Input', 'guideAwakenSuccess': 'Flott! Lily er v\u00e5ken\u2014be om hjelp.',
'guideClickSendPrefix': 'Tap send, ', 'confirmInput': 'Bekreft inndata',
'guideWeatherStart': 'Tell Lily: “What’s the weather today?”', 'guideClickSendPrefix': 'Trykk send, ',
'guideWeatherInput': 'What’s the weather today?', 'guideWeatherStart': 'Si til Lily: «Hvordan er været i dag?»',
'guideWeatherSend': 'Lily will report the weather in real time', 'guideWeatherInput': 'Hvordan er været i dag?',
'guideWeatherEnd': 'Lily can report weather live—try other commands', 'guideWeatherSend': 'Lily vil rapportere været i sanntid',
'guideMusicStart': 'Tell Lily: “Play some rock music”', 'guideWeatherEnd': 'Lily kan rapportere været live—prøv andre kommandoer',
'guideMusicInput': 'Play some rock music', 'guideMusicStart': 'Si til Lily: «Spill litt rockemusikk»',
'guideMusicSend': 'Lily will find music for you', 'guideMusicInput': 'Spill litt rockemusikk',
'guideMusicEnd': 'Lily found music—try other commands', 'guideMusicSend': 'Lily vil finne musikk for deg',
'guideNavStart': 'Tell Lily: “Navigate to Shenzhen Airport”', 'guideMusicEnd': 'Lily fant musikk—prøv andre kommandoer',
'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavStart': 'Si til Lily: «Naviger til Shenzhen Airport»',
'guideNavSend': 'Lily will plan the route', 'guideNavInput': 'Naviger til Shenzhen Airport',
'guideNavEnd': 'Navigation set—try other commands', 'guideNavSend': 'Lily vil planlegge ruten',
'guideNavEnd': 'Navigasjon satt—prøv andre kommandoer',
'guideMeetingStart': 'guideMeetingStart':
'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'Si til Lily: «Lag en møte-påminnelse for kl. 15 i morgen»',
'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingInput': 'Lag en møte-påminnelse for kl. 15 i morgen',
'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingSend': 'Lily vil lage en møte-påminnelse',
'guideMeetingEnd': 'Reminder created—try other commands', 'guideMeetingEnd': 'Påminnelse opprettet—prøv andre kommandoer',
'guidePhoneStart': 'Tell Lily: “Call Mom”', 'guidePhoneStart': 'Si til Lily: «Ring mamma»',
'guidePhoneInput': 'Call Mom', 'guidePhoneInput': 'Ring mamma',
'guidePhoneSend': 'Lily will make the call', 'guidePhoneSend': 'Lily vil ringe',
'guidePhoneEnd': 'Call placed—try other commands', 'guidePhoneEnd': 'Samtale startet—prøv andre kommandoer',
'guideSmsStart': 'Tell Lily: “Send Dad a text: I’ll be home for dinner”', 'guideSmsStart':
'guideSmsInput': 'Text Dad: I’ll be home for dinner', 'Si til Lily: «Send pappa en melding: Jeg kommer hjem til middag»',
'guideSmsSend': 'Lily will send the message', 'guideSmsInput': 'Melding til pappa: Jeg kommer hjem til middag',
'guideSmsEnd': 'Message sent—voice control is convenient', 'guideSmsSend': 'Lily vil sende meldingen',
'guideSmsEnd': 'Melding sendt—talestyring er praktisk',
// Meeting模块 - 首页与导航 // Meeting模块 - 首页与导航
"startMeeting": "Start møte", "startMeeting": "Start møte",
@ -488,7 +495,7 @@ const Map<String, String> nbNO = {
'aiSummary': 'AI-sammendrag', 'aiSummary': 'AI-sammendrag',
'meetingTranscript': 'Møtetranskripsjon', 'meetingTranscript': 'Møtetranskripsjon',
'files': 'Filer', 'files': 'Filer',
'mine': 'Mine', 'mine': 'Min',
'connect': 'Koble til', 'connect': 'Koble til',
'allFiles': 'Alle filer', 'allFiles': 'Alle filer',
'searchInAllFiles': 'Søk i alle filer', 'searchInAllFiles': 'Søk i alle filer',
@ -502,9 +509,9 @@ const Map<String, String> nbNO = {
'aiPenNotFound': 'AI PEN-enhet ble ikke funnet', 'aiPenNotFound': 'AI PEN-enhet ble ikke funnet',
'connectedToAiPen': 'Tilkoblet AI PEN-enhet', 'connectedToAiPen': 'Tilkoblet AI PEN-enhet',
'checkingNewFiles': 'Ser etter nye filer for import', 'checkingNewFiles': 'Ser etter nye filer for import',
'startingWifi': 'Starting Wi-Fi...', 'startingWifi': 'Starter Wi‑Fi...',
'newFilesDetected': 'New files detected, preparing to import', 'newFilesDetected': 'Nye filer funnet, forbereder import',
'noNewFiles': 'No new files to import', 'noNewFiles': 'Ingen nye filer å importere',
'connectingWifi': 'Kobler til Wi‑Fi...', 'connectingWifi': 'Kobler til Wi‑Fi...',
'wifiConnected': 'Wi‑Fi tilkoblet', 'wifiConnected': 'Wi‑Fi tilkoblet',
'downloadingFiles': 'Laster ned filer...', 'downloadingFiles': 'Laster ned filer...',
@ -518,7 +525,7 @@ const Map<String, String> nbNO = {
'liveRecording': 'Direkteopptak', 'liveRecording': 'Direkteopptak',
'audioVideoRecording': 'Lyd-/videoopptak', 'audioVideoRecording': 'Lyd-/videoopptak',
'callRecording': 'Samtaleopptak', 'callRecording': 'Samtaleopptak',
'importAudio': 'Import Audio', 'importAudio': 'Importer lyd',
'meetingRecordExitTitle': 'Avslutt opptak', // 退出录音 'meetingRecordExitTitle': 'Avslutt opptak', // 退出录音
'meetingRecordExitMessage': 'meetingRecordExitMessage':
'Velg hva du vil gjøre før du avslutter', // 请选择离开后的操作 'Velg hva du vil gjøre før du avslutter', // 请选择离开后的操作
@ -541,30 +548,30 @@ const Map<String, String> nbNO = {
'For å vise den flytende opptakslinjen (timer/pause/fortsett) under opptak, trenger vi tillatelse til å vises over andre apper.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 'For å vise den flytende opptakslinjen (timer/pause/fortsett) under opptak, trenger vi tillatelse til å vises over andre apper.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。
'overlayPermissionOpenSettingsFailed': 'overlayPermissionOpenSettingsFailed':
'Kan ikke åpne systeminnstillinger automatisk. Åpne Innstillinger og aktiver tillatelsen for å vises over andre apper manuelt.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'Kan ikke åpne systeminnstillinger automatisk. Åpne Innstillinger og aktiver tillatelsen for å vises over andre apper manuelt.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。
'transcribing': 'Transcribing...', 'transcribing': 'Transkriberer...',
'summarizing': 'Summarizing...', 'summarizing': 'Oppsummerer...',
'analyzing': 'Analyzing...', 'analyzing': 'Analyserer...',
'summaryComplete': 'Summary Complete', 'summaryComplete': 'Sammendrag fullført',
'generate': 'Generate', 'generate': 'Generer',
'overview': 'Overview', 'overview': 'Oversikt',
'transcription': 'Transcription', 'transcription': 'Transkripsjon',
'summary': 'Summary', 'summary': 'Sammendrag',
'mindMap': 'Mind Map', 'mindMap': 'Tankekart',
'editSpeaker': 'Edit', 'editSpeaker': 'Rediger',
'nameSpeaker': 'Name Speaker', 'nameSpeaker': 'Gi navn til taler',
// Meeting模块 - 转写与总结 // Meeting模块 - 转写与总结
'reSummarize': 'Re-summarize', 'reSummarize': 'Oppsummer på nytt',
'dateAndTime': 'Date & Time', 'dateAndTime': 'Dato og tid',
'location': 'Location', 'location': 'Sted',
'attendees': 'Attendees', 'attendees': 'Deltakere',
'inputLocation': 'Enter Location', 'inputLocation': 'Skriv inn sted',
'inputAttendees': 'Enter Attendees', 'inputAttendees': 'Skriv inn deltakere',
// Meeting模块 - 模版与生成 // Meeting模块 - 模版与生成
'selectSummaryTemplate': 'Select Summary Template', 'selectSummaryTemplate': 'Velg sammendragsmal',
'useThisTemplate': 'Use This Template', 'useThisTemplate': 'Bruk denne malen',
'lastUsed': 'Last Used', 'lastUsed': 'Sist brukt',
'create': 'Opprett', 'create': 'Opprett',
'templateDetails': 'Maldetaljer', 'templateDetails': 'Maldetaljer',
'tag': 'Merkelapp', 'tag': 'Merkelapp',
@ -581,24 +588,24 @@ const Map<String, String> nbNO = {
'inputDescHint': 'Vennligst skriv inn beskrivelse', 'inputDescHint': 'Vennligst skriv inn beskrivelse',
'custom': 'Tilpasset', 'custom': 'Tilpasset',
'pleaseEnter': 'Vennligst skriv inn', 'pleaseEnter': 'Vennligst skriv inn',
'viewAll': 'View All', 'viewAll': 'Vis alle',
'recordingLanguage': 'Opptaksspråk', 'recordingLanguage': 'Opptaksspråk',
'chineseSimplified': 'Chinese Mandarin (Simplified)', 'chineseSimplified': 'Kinesisk mandarin (forenklet)',
'meetingGenerateNow': 'Generate Now', 'meetingGenerateNow': 'Generer nå',
'keyEventsAnalyzed': 'Analyzed {count} key events.', 'keyEventsAnalyzed': 'Analyserte {count} nøkkelhendelser.',
'aiAnalysisDesc': 'aiAnalysisDesc':
'AI-analysen identifiserer nøkkelhendelser i opptak, slik at du kan velge viktige hendelser for AI-generering.', 'AI-analysen identifiserer nøkkelhendelser i opptak, slik at du kan velge viktige hendelser for AI-generering.',
// Meeting模块 - 文件操作 // Meeting模块 - 文件操作
'importing': 'Importing...', 'importing': 'Importerer...',
'batchImporting': 'Batch importing...', 'batchImporting': 'Batch-importerer...',
'importingLocalRecordings': 'Importerer lokale opptak...', 'importingLocalRecordings': 'Importerer lokale opptak...',
'importFailed': 'Import av fil mislyktes: {filePath}, feil: {error}', 'importFailed': 'Import av fil mislyktes: {filePath}, feil: {error}',
'importSuccess': 'Importerte {count} lokale opptak', 'importSuccess': 'Importerte {count} lokale opptak',
'importError': 'Import mislyktes: {error}', 'importError': 'Import mislyktes: {error}',
'pleaseSelectAudioFile': 'Velg en lydfil', 'pleaseSelectAudioFile': 'Velg en lydfil',
'shareAudio': 'Share Meeting Audio', 'shareAudio': 'Del møte-lyd',
'shareComplete': 'Share complete!', 'shareComplete': 'Deling fullført!',
'shareFailed': 'Deling mislyktes: {error}', 'shareFailed': 'Deling mislyktes: {error}',
'fileProcessingFailed': 'Filbehandling mislyktes: {filePath}, feil: {error}', 'fileProcessingFailed': 'Filbehandling mislyktes: {filePath}, feil: {error}',
@ -616,15 +623,15 @@ const Map<String, String> nbNO = {
'generateKeyIndicators': 'Generer nøkkelindikatorer', 'generateKeyIndicators': 'Generer nøkkelindikatorer',
// Meeting模块 - 分享与导出 // Meeting模块 - 分享与导出
'shareLink': 'Share Link', 'shareLink': 'Del lenke',
'copyTranscript': 'Copy Transcript', 'copyTranscript': 'Kopier transkripsjon',
'copySummary': 'Copy Summary', 'copySummary': 'Kopier sammendrag',
'exportAudio': 'Export Audio', 'exportAudio': 'Eksporter lyd',
'exportTranscript': 'Export Transcript', 'exportTranscript': 'Eksporter transkripsjon',
'shareMeetingAudio': 'Share Meeting Audio', 'shareMeetingAudio': 'Del møte-lyd',
'exportSummary': 'Export Summary', 'exportSummary': 'Eksporter sammendrag',
'exportAs': 'Export As', 'exportAs': 'Eksporter som',
'exportingPDF': 'Exporting PDF...', 'exportingPDF': 'Eksporterer PDF...',
'export': 'Eksporter', 'export': 'Eksporter',
// Meeting模块 - 发言者 // Meeting模块 - 发言者
@ -654,88 +661,89 @@ const Map<String, String> nbNO = {
'enabled': 'Aktivert', 'enabled': 'Aktivert',
'disabled': 'Deaktivert', 'disabled': 'Deaktivert',
'myVoitransDevice': 'Min VOITRANS-enhet', 'myVoitransDevice': 'Min VOITRANS-enhet',
'helpAndFeedback': 'Help & Feedback', 'helpAndFeedback': 'Hjelp og tilbakemelding',
'aboutVoitrans': 'About VOITRANS', 'aboutVoitrans': 'Om VOITRANS',
'meetingDays': 'Days', 'meetingDays': 'Dager',
'meetingHours': 'Hours', 'meetingHours': 'Timer',
'voitransAiMember': 'Voitrans AI Member', 'voitransAiMember': 'Voitrans AI-medlem',
'unlockStarterMember': 'Unlock Starter Member', 'unlockStarterMember': 'Lås opp Starter-medlemskap',
'bindDeviceToActivate': 'bindDeviceToActivate':
'Koble til Voitrans-enheten for å aktivere Starter-medlemskap', 'Koble til Voitrans-enheten for å aktivere Starter-medlemskap',
'unlockNow': 'Unlock Now', 'unlockNow': 'Lås opp nå',
// Meeting模块 - 会员与升级 // Meeting模块 - 会员与升级
'comparison': 'Comparison', 'comparison': 'Sammenligning',
'detailedInfo': 'Detailed Information', 'detailedInfo': 'Detaljert informasjon',
'monthlyTranscriptionTime': 'Monthly Transcription Time', 'monthlyTranscriptionTime': 'Månedlig transkripsjonstid',
'unlimited': 'Unlimited', 'unlimited': 'Ubegrenset',
'professionalTemplates': 'Professional Templates', 'professionalTemplates': 'Profesjonelle maler',
'limited': 'Limited', 'limited': 'Begrenset',
'fullTemplates': 'Full Templates', 'fullTemplates': 'Alle maler',
'professionalTerms': 'Professional Terms', 'professionalTerms': 'Fagterminologi',
'customTemplates': 'Custom Templates', 'customTemplates': 'Egendefinerte maler',
'visualMindMap': 'Visual Mind Map', 'visualMindMap': 'Visuelt tankekart',
'speakerIdentification': 'Speaker Identification', 'speakerIdentification': 'Taleridentifikasjon',
'aiVoiceEnhancement': 'AI Voice Enhancement', 'aiVoiceEnhancement': 'AI-stemmeforbedring',
'audioImport': 'Audio Import', 'audioImport': 'Lydimport',
'multipleExportFormats': 'Multiple Export Formats', 'multipleExportFormats': 'Flere eksportformater',
'professionalSummaryTemplates': 'Professional Summary Templates', 'professionalSummaryTemplates': 'Profesjonelle sammendragsmaler',
'professionalTemplateDesc': 'professionalTemplateDesc':
'Professional template design to improve your work efficiency. Customized according to industry needs.', 'Profesjonelle maler som forbedrer arbeidseffektiviteten. Tilpasset bransjens behov.',
'customTemplateDesc': 'customTemplateDesc':
'You can customize summary prompts according to your needs and use them to generate the required summaries.', 'Du kan tilpasse sammendrags‑promptene etter behov og bruke dem til å generere ønskede sammendrag.',
'askAiDesc': 'askAiDesc':
'Trekk intelligent ut dypere informasjon fra opptak, og generer datatabeller, nøkkelkonklusjoner, oppgavelister, rapport-e-poster og annet formatert innhold med ett klikk.', 'Trekk intelligent ut dypere informasjon fra opptak, og generer datatabeller, nøkkelkonklusjoner, oppgavelister, rapport-e-poster og annet formatert innhold med ett klikk.',
'visualMindMapDesc': 'visualMindMapDesc':
'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', 'Mer enn sammendrag: organiser og visualiser nøkkelpunkter med tankekart for bedre forståelse av hele teksten.',
'templateCommunityDesc': 'templateCommunityDesc':
'Discover, share, and get inspiration from the template library created by users.', 'Oppdag, del og finn inspirasjon i malbiblioteket laget av brukere.',
'speakerIdentificationDesc': 'speakerIdentificationDesc':
'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', 'Transkripsjon av lyd støtter taleridentifikasjon for å gjenskape innhold fra møter og telefonsamtaler mer intuitivt. Sammendraget blir samtidig mer presist.',
'privateCloudSyncDesc': 'privateCloudSyncDesc':
'Opptakene og transkripsjonene dine lagres sikkert på dedikerte skyservere, med full kryptering under opplasting og nedlasting for å sikre personvern og sikkerhet.', 'Opptakene og transkripsjonene dine lagres sikkert på dedikerte skyservere, med full kryptering under opplasting og nedlasting for å sikre personvern og sikkerhet.',
'aiVoiceEnhancementDesc': 'aiVoiceEnhancementDesc':
'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', 'AI-stemmeforbedring støtter flere innstillinger for støyreduksjon, fjerner bakgrunnsstøy intelligent, forbedrer stemmeklarhet og gir bedre lydkvalitet.',
'audioImportDesc': 'audioImportDesc':
'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', 'Importer enkelt lydfiler fra lokale eller tredjepartsapper, som taleopptak, Google Drive osv.',
'multipleExportFormatsDesc': 'multipleExportFormatsDesc':
'Eksporter lydopptak, transkripsjonstekst og sammendrag i ulike formater (TXT, PDF, JPEG) etter behov.', 'Eksporter lydopptak, transkripsjonstekst og sammendrag i ulike formater (TXT, PDF, JPEG) etter behov.',
'upgradeMembership': 'Upgrade Your Membership', 'upgradeMembership': 'Oppgrader medlemskapet',
'yearlySubscription': 'Yearly Subscription', 'yearlySubscription': 'Årlig abonnement',
'monthlySubscription': 'Monthly Subscription', 'monthlySubscription': 'Månedlig abonnement',
'proMonthly': 'Pro ¥60/month', 'proMonthly': 'Pro ¥60/mnd',
'proMonthlyDesc': 'proMonthlyDesc':
'7-day free trial, then ¥800/year. Cancel anytime before trial ends.', '7 dagers gratis prøveperiode, deretter ¥800/år. Avbryt når som helst før prøveperioden slutter.',
'sevenDayTrial': '7-day Free Trial', 'sevenDayTrial': '7 dagers gratis prøveperiode',
'unlimitedMonthly': 'Unlimited ¥120/month', 'unlimitedMonthly': 'Ubegrenset ¥120/mnd',
'unlimitedMonthlyDesc': 'unlimitedMonthlyDesc':
'7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', '7 dagers gratis prøveperiode, deretter ¥1600/år. Avbryt når som helst før prøveperioden slutter.',
'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'trialNote':
'*7 dagers gratis prøveperiode, deretter årlig betaling. Kan avbrytes når som helst.',
'proPrice': 'Pro ¥120', 'proPrice': 'Pro ¥120',
'proMonthlyPrice': '¥120/month', 'proMonthlyPrice': '¥120/mnd',
'subscribe': 'Subscribe', 'subscribe': 'Abonner',
'unlimitedPrice': 'Unlimited ¥198', 'unlimitedPrice': 'Unlimited ¥198',
'unlimitedMonthlyPrice': '¥198/month', 'unlimitedMonthlyPrice': '¥198/mnd',
'upgradeNote': 'upgradeNote':
'*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', '*Etter oppgradering av abonnementet blir gjenværende dager i det opprinnelige abonnementet automatisk beregnet og refundert til betalingskontoen din',
'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'buyMoreTranscriptionTime': 'Kjøp mer transkripsjonstid',
'sixThousandMinutes': '6,000 minutes', 'sixThousandMinutes': '6 000 minutter',
'threeThousandMinutes': '3,000 minutes', 'threeThousandMinutes': '3 000 minutter',
'sixHundredMinutes': '600 minutes', 'sixHundredMinutes': '600 minutter',
'oneHundredTwentyMinutes': '120 minutes', 'oneHundredTwentyMinutes': '120 minutter',
'validityPeriod': '*Validity Period: ', 'validityPeriod': '*Gyldighetsperiode: ',
'validityNote': 'validityNote':
'Activated immediately after purchase, valid for 2 years after activation.', 'Aktiveres umiddelbart etter kjøp og er gyldig i 2 år etter aktivering.',
'purchase': 'Purchase', 'purchase': 'Kjøp',
// Meeting模块 - 录音语言 // Meeting模块 - 录音语言
'recordLanguage': 'Opptaksspråk', 'recordLanguage': 'Opptaksspråk',
'cantonese': 'Cantonese', 'cantonese': 'Kantonesisk',
'sichuan': 'Sichuan Dialect', 'sichuan': 'Sichuan-dialekt',
'shanghai': 'Shanghai Dialect', 'shanghai': 'Shanghai-dialekt',
// Meeting模块 - 错误提示 // Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Unknown Language', 'meetingUnknownLanguage': 'Ukjent språk',
'analysisFailed': 'Analyse mislyktes, prøv igjen senere', 'analysisFailed': 'Analyse mislyktes, prøv igjen senere',
'transcriptionFailed': 'Transkribering mislyktes, prøv igjen senere', 'transcriptionFailed': 'Transkribering mislyktes, prøv igjen senere',
'summaryFailed': 'Sammendrag mislyktes, prøv igjen senere', 'summaryFailed': 'Sammendrag mislyktes, prøv igjen senere',
@ -814,7 +822,7 @@ const Map<String, String> nbNO = {
"deviceTypeClassicBluetoothHeadset": "Klassisk Bluetooth-headset", "deviceTypeClassicBluetoothHeadset": "Klassisk Bluetooth-headset",
"deviceTypeBleBluetoothHeadset": "BLE Bluetooth-headset", "deviceTypeBleBluetoothHeadset": "BLE Bluetooth-headset",
"deviceTypeSmartVoiceRecorder": "Smart stemmeopptaker", "deviceTypeSmartVoiceRecorder": "Smart stemmeopptaker",
"deviceTypeSmartEye": "Smart Glasses", "deviceTypeSmartEye": 'Smarte briller',
"unbind": "Fjern binding", "unbind": "Fjern binding",
"noDevicesBound": "Ingen enheter er koblet til ennå", "noDevicesBound": "Ingen enheter er koblet til ennå",
"pleaseBindDeviceFirst": "Koble til en enhet først for å administrere", "pleaseBindDeviceFirst": "Koble til en enhet først for å administrere",
@ -828,7 +836,7 @@ const Map<String, String> nbNO = {
// Agent模块 - 主界面 // Agent模块 - 主界面
"Lily": "Lily", "Lily": "Lily",
"clearChatHistory": "Tøm chat-historikk", "clearChatHistory": "Tøm chat-historikk",
"online": "Online", "online": 'Online',
"ttsSpeed": "Talefart", "ttsSpeed": "Talefart",
"ttsSpeedDefaultHint": "Standard +25 %", "ttsSpeedDefaultHint": "Standard +25 %",
"inputMessage": "Skriv melding...", "inputMessage": "Skriv melding...",
@ -1094,9 +1102,9 @@ const Map<String, String> nbNO = {
"processingFailed": "Behandling mislyktes", "processingFailed": "Behandling mislyktes",
"imageProcessingOrTranslationFailed": "imageProcessingOrTranslationFailed":
"Bildebehandling eller oversettelse mislyktes. Prøv igjen.\nFeil: {error}", "Bildebehandling eller oversettelse mislyktes. Prøv igjen.\nFeil: {error}",
"imageTooLarge": "Image size exceeds 4MB limit", "imageTooLarge": 'Bildestørrelsen overskrider 4 MB-grensen',
"imageTooLargeHint": "imageTooLargeHint":
"Image size exceeds 4MB. Reduce quality or dimensions and retry", 'Bildestørrelsen overskrider 4 MB. Reduser kvalitet eller dimensjoner og prøv på nytt',
"emptyTranslationResult": "emptyTranslationResult":
"Bildeoversettelses-API returnerte et tomt resultat", "Bildeoversettelses-API returnerte et tomt resultat",
"imageTranslationFailedTryLater": "imageTranslationFailedTryLater":
@ -1108,11 +1116,11 @@ const Map<String, String> nbNO = {
"photoAlbumPermissionRequired": "photoAlbumPermissionRequired":
"Fotoalbumtillatelse kreves for å velge bilder", "Fotoalbumtillatelse kreves for å velge bilder",
"translationDetails": "Oversettelsesdetaljer", "translationDetails": "Oversettelsesdetaljer",
"originalImage": "Original Image", "originalImage": 'Originalbilde',
"sourceLanguage": "Source Language", "sourceLanguage": 'Kildespråk',
"targetLanguage": "Target Language", "targetLanguage": 'Målspråk',
"translationTime": "Oversettelsestid", "translationTime": "Oversettelsestid",
"shareInDevelopment": "Sharing feature under development", "shareInDevelopment": 'Delingsfunksjonen er under utvikling',
// 翻译模块 - 录音文件 // 翻译模块 - 录音文件
"translateAudioFiles": "Oversett lydfiler", "translateAudioFiles": "Oversett lydfiler",
@ -1152,7 +1160,7 @@ const Map<String, String> nbNO = {
// 个人资料模块 // 个人资料模块
"editProfile": "Rediger personlig informasjon", "editProfile": "Rediger personlig informasjon",
"avatar": "Avatar", "avatar": 'Avatar',
"nickname": "Kallenavn", "nickname": "Kallenavn",
"save": "Lagre", "save": "Lagre",
"about": "Om", "about": "Om",
@ -1164,8 +1172,8 @@ const Map<String, String> nbNO = {
'deleteAccount': 'Slett konto', 'deleteAccount': 'Slett konto',
'deleteAccountTips': 'deleteAccountTips':
'Er du sikker på at du vil slette kontoen din permanent? Denne handlingen kan ikke angres.', 'Er du sikker på at du vil slette kontoen din permanent? Denne handlingen kan ikke angres.',
'clean': 'Clear Cache', 'clean': 'Tøm buffer',
'cleanTips': 'Are you sure you want to clear personal cache?', 'cleanTips': 'Er du sikker på at du vil slette personlig hurtigbuffer?',
'networkConnectionFailed': 'networkConnectionFailed':
'Nettverkstilkobling mislyktes, sjekk nettverksinnstillingene og prøv igjen', 'Nettverkstilkobling mislyktes, sjekk nettverksinnstillingene og prøv igjen',
'serverTemporarilyUnavailable': 'serverTemporarilyUnavailable':
@ -1231,7 +1239,7 @@ const Map<String, String> nbNO = {
'phonePermissionDesc': 'Brukes for å ringe', 'phonePermissionDesc': 'Brukes for å ringe',
'smsPermissionDesc': 'Brukes for å sende SMS', 'smsPermissionDesc': 'Brukes for å sende SMS',
'alarmPermissionDesc': 'alarmPermissionDesc':
'Used to set exact alarms to ensure reminders trigger on time', 'Brukes til å sette nøyaktige alarmer for å sikre at påminnelser utløses i tide',
'calendarWritePermissionDesc': 'calendarWritePermissionDesc':
'Brukes for å opprette kalenderhendelser og påminnelser', 'Brukes for å opprette kalenderhendelser og påminnelser',
'calendarFullAccessPermissionDesc': 'calendarFullAccessPermissionDesc':
@ -1269,7 +1277,7 @@ const Map<String, String> nbNO = {
'bluetoothConnectPermissionDesc': 'Brukes for å koble til Bluetooth-enheter', 'bluetoothConnectPermissionDesc': 'Brukes for å koble til Bluetooth-enheter',
'bluetoothConnectPermissionDetailDesc': 'bluetoothConnectPermissionDetailDesc':
'Tilkobling til Bluetooth-enheter krever Bluetooth-tilkoblingstillatelse', 'Tilkobling til Bluetooth-enheter krever Bluetooth-tilkoblingstillatelse',
'notificationPermissionDesc': 'Used for sending notification messages', 'notificationPermissionDesc': 'Brukes til å sende varslingsmeldinger',
'notificationPermissionDetailDesc': 'notificationPermissionDetailDesc':
'Appen trenger varslingstillatelse for å sende deg viktige varsler og meldinger', 'Appen trenger varslingstillatelse for å sende deg viktige varsler og meldinger',
'appNeedsPermissionForFullFunction': 'appNeedsPermissionForFullFunction':
@ -1346,7 +1354,7 @@ const Map<String, String> nbNO = {
// 配对模块 // 配对模块
"devicePairing": "Enhetsparing", "devicePairing": "Enhetsparing",
"connectYourDeepSoundHeadset": "Koble til ditt Voitrans-hodesett", "connectYourDeepSoundHeadset": "Koble til ditt Voitrans-hodesett",
"bind": "Bind", "bind": 'Koble til',
"authorizeBind": "Autoriser binding", "authorizeBind": "Autoriser binding",
"enterCode": "Vennligst skriv inn koden", "enterCode": "Vennligst skriv inn koden",
"autoInputCode": "Automatisk innsetting av kode", "autoInputCode": "Automatisk innsetting av kode",
@ -1554,25 +1562,25 @@ const Map<String, String> nbNO = {
"克罗地亚语": "Kroatisk", "克罗地亚语": "Kroatisk",
"加泰隆语": "Katalansk", "加泰隆语": "Katalansk",
"阿拉伯语": "Arabisk", "阿拉伯语": "Arabisk",
"泰语": "Thai", "泰语": 'Thai',
"越南语": "Vietnamesisk", "越南语": "Vietnamesisk",
"印尼语": "Indonesisk", "印尼语": "Indonesisk",
"印地语": "Hindi", "印地语": 'Hindi',
"土耳其语": "Tyrkisk", "土耳其语": "Tyrkisk",
"马来语": "Malayisk", "马来语": "Malayisk",
"孟加拉语": "Bengali", "孟加拉语": 'Bengali',
"泰米尔语": "Tamil", "泰米尔语": 'Tamil',
"泰卢固语": "Telugu", "泰卢固语": 'Telugu',
"马拉提语": "Marathi", "马拉提语": 'Marathi',
"乌尔都语": "Urdu", "乌尔都语": 'Urdu',
"波斯语": "Persisk", "波斯语": "Persisk",
"斯瓦希里语": "Swahili", "斯瓦希里语": 'Swahili',
// 国家列表 // 国家列表
"邮箱": "E-post", "邮箱": "E-post",
"中国": "Kina", "中国": "Kina",
"美国": "USA", "美国": "USA",
"加拿大": "Canada", "加拿大": 'Canada',
"俄罗斯": "Russland", "俄罗斯": "Russland",
"英国": "Storbritannia", "英国": "Storbritannia",
"德国": "Tyskland", "德国": "Tyskland",
@ -1582,108 +1590,108 @@ const Map<String, String> nbNO = {
"南非": "Sør-Afrika", "南非": "Sør-Afrika",
"沙特阿拉伯": "Saudi-Arabia", "沙特阿拉伯": "Saudi-Arabia",
"土耳其": "Tyrkia", "土耳其": "Tyrkia",
"日本": "Japan", "日本": 'Japan',
"韩国": "Sør-Korea", "韩国": "Sør-Korea",
"新加坡": "Singapore", "新加坡": 'Singapore',
"马来西亚": "Malaysia", "马来西亚": 'Malaysia',
"泰国": "Thailand", "泰国": 'Thailand',
"越南": "Vietnam", "越南": 'Vietnam',
"印度": "India", "印度": 'India',
"巴基斯坦": "Pakistan", "巴基斯坦": 'Pakistan',
"菲律宾": "Filippinene", "菲律宾": "Filippinene",
"印度尼西亚": "Indonesia", "印度尼西亚": 'Indonesia',
"阿联酋": "De forente arabiske emirater", "阿联酋": "De forente arabiske emirater",
"墨西哥": "Mexico", "墨西哥": 'Mexico',
"巴西": "Brasil", "巴西": "Brasil",
"阿根廷": "Argentina", "阿根廷": 'Argentina',
"澳大利亚": "Australia", "澳大利亚": 'Australia',
"新西兰": "New Zealand", "新西兰": 'New Zealand',
"中国香港": "Hongkong (Kina)", "中国香港": "Hongkong (Kina)",
"中国澳门": "Macao (Kina)", "中国澳门": "Macao (Kina)",
"中国台湾": "Taiwan (Kina)", "中国台湾": "Taiwan (Kina)",
"埃及": "Egypt", "埃及": 'Egypt',
"希腊": "Hellas", "希腊": "Hellas",
"荷兰": "Nederland", "荷兰": "Nederland",
"比利时": "Belgia", "比利时": "Belgia",
"匈牙利": "Ungarn", "匈牙利": "Ungarn",
"罗马尼亚": "Romania", "罗马尼亚": 'Romania',
"瑞士": "Sveits", "瑞士": "Sveits",
"奥地利": "Østerrike", "奥地利": "Østerrike",
"丹麦": "Danmark", "丹麦": "Danmark",
"瑞典": "Sverige", "瑞典": "Sverige",
"挪威": "Norge", "挪威": "Norge",
"波兰": "Polen", "波兰": "Polen",
"秘鲁": "Peru", "秘鲁": 'Peru',
"智利": "Chile", "智利": 'Chile',
"哥伦比亚": "Colombia", "哥伦比亚": 'Colombia',
"委内瑞拉": "Venezuela", "委内瑞拉": 'Venezuela',
"葡萄牙": "Portugal", "葡萄牙": 'Portugal',
"卢森堡": "Luxembourg", "卢森堡": 'Luxembourg',
"爱尔兰": "Irland", "爱尔兰": "Irland",
"冰岛": "Island", "冰岛": "Island",
"阿尔巴尼亚": "Albania", "阿尔巴尼亚": 'Albania',
"马耳他": "Malta", "马耳他": 'Malta',
"塞浦路斯": "Kypros", "塞浦路斯": "Kypros",
"芬兰": "Finland", "芬兰": 'Finland',
"保加利亚": "Bulgaria", "保加利亚": 'Bulgaria',
"立陶宛": "Litauen", "立陶宛": "Litauen",
"拉脱维亚": "Latvia", "拉脱维亚": 'Latvia',
"爱沙尼亚": "Estland", "爱沙尼亚": "Estland",
"乌克兰": "Ukraina", "乌克兰": "Ukraina",
"塞尔维亚": "Serbia", "塞尔维亚": 'Serbia',
"克罗地亚": "Kroatia", "克罗地亚": "Kroatia",
"斯洛文尼亚": "Slovenia", "斯洛文尼亚": 'Slovenia',
"捷克": "Tsjekkia", "捷克": "Tsjekkia",
"斯洛伐克": "Slovakia", "斯洛伐克": 'Slovakia',
"危地马拉": "Guatemala", "危地马拉": 'Guatemala',
"萨尔瓦多": "El Salvador", "萨尔瓦多": 'El Salvador',
"洪都拉斯": "Honduras", "洪都拉斯": 'Honduras',
"尼加拉瓜": "Nicaragua", "尼加拉瓜": 'Nicaragua',
"哥斯达黎加": "Costa Rica", "哥斯达黎加": 'Costa Rica',
"巴拿马": "Panama", "巴拿马": 'Panama',
"海地": "Haiti", "海地": 'Haiti',
"玻利维亚": "Bolivia", "玻利维亚": 'Bolivia',
"厄瓜多尔": "Ecuador", "厄瓜多尔": 'Ecuador',
"巴拉圭": "Paraguay", "巴拉圭": 'Paraguay',
"乌拉圭": "Uruguay", "乌拉圭": 'Uruguay',
"摩洛哥": "Marokko", "摩洛哥": "Marokko",
"阿尔及利亚": "Algerie", "阿尔及利亚": "Algerie",
"突尼斯": "Tunisia", "突尼斯": 'Tunisia',
"尼日利亚": "Nigeria", "尼日利亚": 'Nigeria',
"加纳": "Ghana", "加纳": 'Ghana',
"埃塞俄比亚": "Etiopia", "埃塞俄比亚": "Etiopia",
"肯尼亚": "Kenya", "肯尼亚": 'Kenya',
"坦桑尼亚": "Tanzania", "坦桑尼亚": 'Tanzania',
"乌干达": "Uganda", "乌干达": 'Uganda',
"孟加拉国": "Bangladesh", "孟加拉国": 'Bangladesh',
"以色列": "Israel", "以色列": 'Israel',
"黎巴嫩": "Libanon", "黎巴嫩": "Libanon",
"约旦": "Jordan", "约旦": 'Jordan',
"伊拉克": "Irak", "伊拉克": "Irak",
"科威特": "Kuwait", "科威特": 'Kuwait',
"巴林": "Bahrain", "巴林": 'Bahrain',
"卡塔尔": "Qatar", "卡塔尔": 'Qatar',
"阿曼": "Oman", "阿曼": 'Oman',
"阿富汗": "Afghanistan", "阿富汗": 'Afghanistan',
"斯里兰卡": "Sri Lanka", "斯里兰卡": 'Sri Lanka',
"缅甸": "Myanmar", "缅甸": 'Myanmar',
"尼泊尔": "Nepal", "尼泊尔": 'Nepal',
"蒙古": "Mongolia", "蒙古": 'Mongolia',
"柬埔寨": "Kambodsja", "柬埔寨": "Kambodsja",
"老挝": "Laos", "老挝": 'Laos',
"文莱": "Brunei", "文莱": 'Brunei',
"东帝汶": "Øst-Timor", "东帝汶": "Øst-Timor",
"斐济": "Fiji", "斐济": 'Fiji',
"所罗门群岛": "Salomonøyene", "所罗门群岛": "Salomonøyene",
"刚果民主共和国": "Democratic Republic of the Congo", "刚果民主共和国": 'Den demokratiske republikken Kongo',
"安哥拉": "Angola", "安哥拉": 'Angola',
"苏丹": "Sudan", "苏丹": 'Sudan',
"马尔代夫": "Maldives", "马尔代夫": 'Maldivene',
"不丹": "Bhutan", "不丹": 'Bhutan',
"摩纳哥": "Monaco", "摩纳哥": 'Monaco',
"圣马力诺": "San Marino", "圣马力诺": 'San Marino',
"牙买加": "Jamaica", "牙买加": 'Jamaica',
"巴哈马": "Bahamas", "巴哈马": 'Bahamas',
"巴布亚新几内亚": "Papua New Guinea", "巴布亚新几内亚": 'Papua Ny-Guinea',
"萨摩亚": "Samoa", "萨摩亚": 'Samoa',
}; };

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

File diff suppressed because it is too large

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

@ -372,7 +372,8 @@ const Map<String, String> plPL = {
'subtitleDisplay': 'Napisy', 'subtitleDisplay': 'Napisy',
'transHeaderDesc1': 'transHeaderDesc1':
'Tłumaczenie symultaniczne i tłumaczenie tekstu w czasie rzeczywistym z niskim opóźnieniem.', 'Tłumaczenie symultaniczne i tłumaczenie tekstu w czasie rzeczywistym z niskim opóźnieniem.',
'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'transHeaderDesc2':
'Odpowiednie do podróży, spotkań biznesowych, przemówień i nauki.',
'translateZhEn': 'Tłumaczenie chińsko-angielskie', 'translateZhEn': 'Tłumaczenie chińsko-angielskie',
'lowLatencyVoiceBroadcast': 'Transmisja głosowa z niskim opóźnieniem', 'lowLatencyVoiceBroadcast': 'Transmisja głosowa z niskim opóźnieniem',
'multiLangTextTranslation': 'Wielojęzyczne tłumaczenie tekstu', 'multiLangTextTranslation': 'Wielojęzyczne tłumaczenie tekstu',
@ -474,15 +475,15 @@ const Map<String, String> plPL = {
'Powiedz Lily: „Utwórz przypomnienie o spotkaniu na jutro 15:00”', 'Powiedz Lily: „Utwórz przypomnienie o spotkaniu na jutro 15:00”',
'guideMeetingInput': 'Utwórz przypomnienie o spotkaniu na jutro 15:00', 'guideMeetingInput': 'Utwórz przypomnienie o spotkaniu na jutro 15:00',
'guideMeetingSend': 'Lily utworzy przypomnienie o spotkaniu', 'guideMeetingSend': 'Lily utworzy przypomnienie o spotkaniu',
'guideMeetingEnd': 'Reminder created—try other commands', 'guideMeetingEnd': 'Przypomnienie utworzone — wypróbuj inne polecenia',
'guidePhoneStart': 'Tell Lily: “Call Mom”', 'guidePhoneStart': 'Powiedz Lily: "Zadzwoń do mamy"',
'guidePhoneInput': 'Call Mom', 'guidePhoneInput': 'Zadzwoń do mamy',
'guidePhoneSend': 'Lily will make the call', 'guidePhoneSend': 'Lily wykona połączenie',
'guidePhoneEnd': 'Call placed—try other commands', 'guidePhoneEnd': 'Połączenie wykonane — wypróbuj inne polecenia',
'guideSmsStart': 'Tell Lily: “Send Dad a text: I’ll be home for dinner”', 'guideSmsStart': 'Powiedz Lily: "Wyślij SMS do taty: Wrócę na obiad"',
'guideSmsInput': 'Text Dad: I’ll be home for dinner', 'guideSmsInput': 'SMS do taty: Wrócę na obiad',
'guideSmsSend': 'Lily will send the message', 'guideSmsSend': 'Lily wyśle wiadomość',
'guideSmsEnd': 'Message sent—voice control is convenient', 'guideSmsEnd': 'Wiadomość wysłana — sterowanie głosem jest wygodne',
// Meeting模块 - 首页与导航 // Meeting模块 - 首页与导航
"startMeeting": "Rozpocznij spotkanie", "startMeeting": "Rozpocznij spotkanie",
@ -1180,8 +1181,8 @@ const Map<String, String> plPL = {
'deleteAccount': 'Usuń konto', 'deleteAccount': 'Usuń konto',
'deleteAccountTips': 'deleteAccountTips':
'Czy na pewno chcesz trwale usunąć swoje konto? Tej operacji nie można cofnąć.', 'Czy na pewno chcesz trwale usunąć swoje konto? Tej operacji nie można cofnąć.',
'clean': 'Clear Cache', 'clean': 'Wyczyść pamięć podręczną',
'cleanTips': 'Are you sure you want to clear personal cache?', 'cleanTips': 'Czy na pewno chcesz wyczyścić osobistą pamięć podręczną?',
'networkConnectionFailed': 'networkConnectionFailed':
'Błąd połączenia sieciowego, sprawdź ustawienia sieci i spróbuj ponownie', 'Błąd połączenia sieciowego, sprawdź ustawienia sieci i spróbuj ponownie',
'serverTemporarilyUnavailable': 'serverTemporarilyUnavailable':
@ -1709,15 +1710,15 @@ const Map<String, String> plPL = {
"东帝汶": "Timor Wschodni", "东帝汶": "Timor Wschodni",
"斐济": "Fidżi", "斐济": "Fidżi",
"所罗门群岛": "Wyspy Salomona", "所罗门群岛": "Wyspy Salomona",
"刚果民主共和国": "Democratic Republic of the Congo", "刚果民主共和国": "Demokratyczna Republika Konga",
"安哥拉": "Angola", "安哥拉": "Angola",
"苏丹": "Sudan", "苏丹": "Sudan",
"马尔代夫": "Maldives", "马尔代夫": "Malediwy",
"不丹": "Bhutan", "不丹": "Bhutan",
"摩纳哥": "Monaco", "摩纳哥": "Monako",
"圣马力诺": "San Marino", "圣马力诺": "San Marino",
"牙买加": "Jamaica", "牙买加": "Jamajka",
"巴哈马": "Bahamas", "巴哈马": "Bahamy",
"巴布亚新几内亚": "Papua New Guinea", "巴布亚新几内亚": "Papua Nowa Gwinea",
"萨摩亚": "Samoa", "萨摩亚": "Samoa",
}; };

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

@ -55,7 +55,7 @@ const Map<String, String> ptPT = {
"malay": "Malaio", "malay": "Malaio",
"turkish": "Turco", "turkish": "Turco",
"polish": "Polaco", "polish": "Polaco",
"filipino": "Filipino", "filipino": 'Filipino',
"dutch": "Holandês", "dutch": "Holandês",
"swedish": "Sueco", "swedish": "Sueco",
"danish": "Dinamarquês", "danish": "Dinamarquês",
@ -261,10 +261,10 @@ const Map<String, String> ptPT = {
"loadFailed": "Falha ao carregar", "loadFailed": "Falha ao carregar",
"statsLoadFailedTryLater": "statsLoadFailedTryLater":
"Falha ao carregar estatísticas. Tente novamente mais tarde.", "Falha ao carregar estatísticas. Tente novamente mais tarde.",
"cleanupComplete": "Cleanup Complete", "cleanupComplete": "Limpeza Concluída",
"cleanedOldData": "Cleaned data older than 90 days", "cleanedOldData": "Dados com mais de 90 dias foram eliminados",
"exportFeature": "Export Feature", "exportFeature": "Função de Exportação",
"exportInDevelopment": "Data export is under development", "exportInDevelopment": "A exportação de dados está em desenvolvimento",
// 商品模块 - 通用 // 商品模块 - 通用
'availablePackages': 'Pacotes disponíveis', 'availablePackages': 'Pacotes disponíveis',
@ -339,37 +339,43 @@ const Map<String, String> ptPT = {
'A subscrição de IA expirou. Vá à página de recarga da subscrição para renovar.', 'A subscrição de IA expirou. Vá à página de recarga da subscrição para renovar.',
// 商品模块 - AI商品页 // 商品模块 - AI商品页
'musicAndRecommendation': 'Music & Recommendation', 'musicAndRecommendation': 'Música e Recomendações',
'navigationAndRoutes': 'Navigation & Routes', 'navigationAndRoutes': 'Navegação e Rotas',
'nearbySearch': 'Nearby Search', 'nearbySearch': 'Pesquisa Nas Proximidades',
'newsInformation': 'News', 'newsInformation': 'Notícias',
'communicationAssistant': 'Communication Assistant', 'communicationAssistant': 'Assistente de Comunicação',
'aiHeaderDesc1': 'aiHeaderDesc1':
'Longer conversation quota, more tool calls, extended context length.', 'Maior quota de conversação, mais chamadas de ferramentas, comprimento de contexto alargado.',
'aiHeaderDesc2': 'aiHeaderDesc2':
'Suitable for agent Q&A, summarization, analysis, and task execution.', 'Adequado para Q&A de agente, resumo, análise e execução de tarefas.',
'musicSearchPlaybackControl': 'Music library search and playback control', 'musicSearchPlaybackControl':
'Pesquisa de biblioteca musical e controlo de reprodução',
'smartPlaylistAndSimilarRecommendations': 'smartPlaylistAndSimilarRecommendations':
'Smart playlist and similar song recommendations', 'Lista de reprodução inteligente e recomendações de músicas semelhantes',
'routePlanningAndCongestionAvoidance': 'routePlanningAndCongestionAvoidance':
'Route planning and congestion avoidance', 'Planeamento de rotas e evitamento de congestionamento',
'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'voiceBroadcastAndWaypoints':
'realTimeWeatherForecast': 'Real-time weather and forecast', 'Transmissão de voz e configuração de pontos de passagem',
'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', 'realTimeWeatherForecast': 'Meteorologia em tempo real e previsão',
'poiSearchFoodGasParking': 'POI search: dining / gas / parking', 'clothingAdviceAndTravelReminders':
'ratingsHoursAndDirectRoutes': 'Ratings, business hours, and direct routing', 'Conselhos de vestuário e lembretes de viagem',
'hotNewsAndTopicOverview': 'Hot news and topic overview', 'poiSearchFoodGasParking':
'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'Pesquisa POI: restauração / combustível / estacionamento',
'helpCallAndSMS': 'Help with calls and SMS', 'ratingsHoursAndDirectRoutes':
'Avaliações, horário de funcionamento e rota direta',
'hotNewsAndTopicOverview': 'Notícias em destaque e visão geral de tópicos',
'longArticleSummariesAndKeyPoints':
'Resumos de artigos longos e pontos-chave',
'helpCallAndSMS': 'Auxílio em chamadas e SMS',
'templatedMessagesAndScheduleReminders': 'templatedMessagesAndScheduleReminders':
'Template messages and schedule reminders', 'Mensagens de modelo e lembretes de agenda',
'aiDisclaimer': 'aiDisclaimer':
'As funcionalidades dependem das permissões do dispositivo, da disponibilidade do serviço e das condições de rede.', 'As funcionalidades dependem das permissões do dispositivo, da disponibilidade do serviço e das condições de rede.',
// 商品模块 - 翻译商品页 // 商品模块 - 翻译商品页
'realtimeTranscription': 'Real-time Transcription', 'realtimeTranscription': 'Transcrição em Tempo Real',
'sceneLexicon': 'Scenario Glossary', 'sceneLexicon': 'Glossário de Cenário',
'subtitleDisplay': 'Subtitles', 'subtitleDisplay': 'Legendas',
'transHeaderDesc1': 'transHeaderDesc1':
'Interpretação simultânea e tradução de texto em tempo real, com voz de baixa latência.', 'Interpretação simultânea e tradução de texto em tempo real, com voz de baixa latência.',
'transHeaderDesc2': 'Adequado para viagens, negócios, palestras e ensino.', 'transHeaderDesc2': 'Adequado para viagens, negócios, palestras e ensino.',
@ -388,21 +394,21 @@ const Map<String, String> ptPT = {
// 商品模块 - 会议商品页 // 商品模块 - 会议商品页
'meetingRecording': 'Gravação de reuniões', 'meetingRecording': 'Gravação de reuniões',
'transcriptionAndSummary': 'Transcription & Summary', 'transcriptionAndSummary': 'Transcrição e Resumo',
'keywordSearch': 'Keyword Search', 'keywordSearch': 'Pesquisa por Palavras-chave',
'collaborationSharing': 'Collaboration & Sharing', 'collaborationSharing': 'Colaboração e Partilha',
'meetingHeaderDesc1': 'meetingHeaderDesc1':
'Audio recording, transcription, keyword search, and auto summary.', 'Gravação de áudio, transcrição, pesquisa por palavras-chave e resumo automático para aumentar a eficiência das reuniões.',
'meetingHeaderDesc2': 'meetingHeaderDesc2':
'Suitable for business meetings, class notes, and interview minutes.', 'Adequado para reuniões de negócios, apontamentos de aulas e atas de entrevistas.',
'meetingAutoRecording': 'Gravação automática e segmentação', 'meetingAutoRecording': 'Gravação automática e segmentação',
'meetingSpeakerTagging': 'Speaker labeling', 'meetingSpeakerTagging': 'Identificação de oradores',
'meetingLongAudioTranscription': 'Long audio transcription', 'meetingLongAudioTranscription': 'Transcrição de áudio longo',
'meetingKeyPointSummary': 'Key point extraction', 'meetingKeyPointSummary': 'Extração de pontos-chave',
'meetingTopicNameSearch': 'Search by topic/name', 'meetingTopicNameSearch': 'Pesquisa por tópico/nome',
'meetingTimelineJump': 'Timeline jump', 'meetingTimelineJump': 'Salto na linha do tempo',
'meetingExportSummary': 'Export minutes', 'meetingExportSummary': 'Exportar atas',
'meetingMultiPlatformShare': 'Share across platforms', 'meetingMultiPlatformShare': 'Partilhar entre plataformas',
'meetingDisclaimer': 'meetingDisclaimer':
'Use em ambientes silenciosos; o desempenho depende do microfone e da rede.', 'Use em ambientes silenciosos; o desempenho depende do microfone e da rede.',
@ -423,12 +429,12 @@ const Map<String, String> ptPT = {
'Os benefícios reais dependem dos detalhes do pacote e podem mudar entre versões.', 'Os benefícios reais dependem dos detalhes do pacote e podem mudar entre versões.',
// 商品模块 - 商品名称与描述 // 商品模块 - 商品名称与描述
'ai_001_name': 'AI Basic 100', 'ai_001_name': 'AI Básico 100',
'ai_002_name': 'AI Basic 500', 'ai_002_name': 'AI Básico 500',
'ai_003_name': 'AI Basic 1000', 'ai_003_name': 'AI Básico 1000',
'meet_001_name': 'Meeting Basic 100', 'meet_001_name': 'Reunião Básica 100',
'meet_002_name': 'Meeting Basic 500', 'meet_002_name': 'Reunião Básica 500',
'meet_003_name': 'Meeting Basic 1000', 'meet_003_name': 'Reunião Básica 1000',
'trans_001_name': 'Tradução Básica 100', 'trans_001_name': 'Tradução Básica 100',
'trans_002_name': 'Tradução Básica 500', 'trans_002_name': 'Tradução Básica 500',
'trans_003_name': 'Tradução Básica 1000', 'trans_003_name': 'Tradução Básica 1000',
@ -446,8 +452,8 @@ const Map<String, String> ptPT = {
'trans_003_desc': 'Inclui 1000 traduções (voz/texto).', 'trans_003_desc': 'Inclui 1000 traduções (voz/texto).',
// 商品模块 - 页脚 // 商品模块 - 页脚
'appNameProvider': 'App: VoiTrans · Provided by: VoiTrans', 'appNameProvider': 'App: VoiTrans · Fornecido por: VoiTrans',
'iapCustomerServiceQQLabel': 'IAP customer service QQ: @qq', 'iapCustomerServiceQQLabel': 'Serviço de apoio IAP QQ: @qq',
'copyrightVoitrans': '© 2025 Voitrans Technologies', 'copyrightVoitrans': '© 2025 Voitrans Technologies',
// 新手引导 // 新手引导
@ -461,32 +467,34 @@ const Map<String, String> ptPT = {
'aiThinking': "A Lily está a pensar…", 'aiThinking': "A Lily está a pensar…",
'guideAwakenSuccess': "Ótimo! A Lily está acordada — peça ajuda.", 'guideAwakenSuccess': "Ótimo! A Lily está acordada — peça ajuda.",
'confirmInput': "Confirmar entrada", 'confirmInput': "Confirmar entrada",
'guideClickSendPrefix': "Tap send, ", 'guideClickSendPrefix': "Toque em enviar, ",
'guideWeatherStart': "Tell Lily: “What’s the weather today?”", 'guideWeatherStart': "Diga à Lily: “Como está o tempo hoje?”",
'guideWeatherInput': "What’s the weather today?", 'guideWeatherInput': "Como está o tempo hoje?",
'guideWeatherSend': "Lily will report the weather in real time", 'guideWeatherSend': "A Lily irá informar o tempo em tempo real",
'guideWeatherEnd': "Lily can report weather live—try other commands", 'guideWeatherEnd':
'guideMusicStart': "Tell Lily: “Play some rock music”", "A Lily pode relatar o tempo ao vivo—experimente outros comandos",
'guideMusicInput': "Play some rock music", 'guideMusicStart': 'Diga à Lily: “Toque um pouco de música rock”',
'guideMusicSend': "Lily will find music for you", 'guideMusicInput': 'Toque um pouco de música rock',
'guideMusicEnd': "Lily found music—try other commands", 'guideMusicSend': 'A Lily irá encontrar música para si',
'guideNavStart': "Tell Lily: “Navigate to Shenzhen Airport”", 'guideMusicEnd': 'A Lily encontrou música—experimente outros comandos',
'guideNavInput': "Navigate to Shenzhen Airport", 'guideNavStart': 'Diga à Lily: “Navegar para o Aeroporto de Shenzhen”',
'guideNavSend': "Lily will plan the route", 'guideNavInput': 'Navegar para o Aeroporto de Shenzhen',
'guideNavEnd': "Navigation set—try other commands", 'guideNavSend': 'A Lily irá planear a rota',
'guideNavEnd': 'Navegação definida—experimente outros comandos',
'guideMeetingStart': 'guideMeetingStart':
"Tell Lily: “Create a meeting reminder for 3pm tomorrow”", 'Diga à Lily: “Crie um lembrete de reunião para amanhã às 15h”',
'guideMeetingInput': "Create a meeting reminder for 3pm tomorrow", 'guideMeetingInput': 'Criar um lembrete de reunião para amanhã às 15h',
'guideMeetingSend': "Lily will create a meeting reminder", 'guideMeetingSend': 'A Lily irá criar um lembrete de reunião',
'guideMeetingEnd': "Reminder created—try other commands", 'guideMeetingEnd': 'Lembrete criado—experimente outros comandos',
'guidePhoneStart': "Tell Lily: “Call Mom”", 'guidePhoneStart': 'Diga à Lily: “Ligar para a Mãe”',
'guidePhoneInput': "Call Mom", 'guidePhoneInput': 'Ligar para a Mãe',
'guidePhoneSend': "Lily will make the call", 'guidePhoneSend': 'A Lily irá fazer a chamada',
'guidePhoneEnd': "Call placed—try other commands", 'guidePhoneEnd': 'Chamada efetuada—experimente outros comandos',
'guideSmsStart': "Tell Lily: “Send Dad a text: I’ll be home for dinner”", 'guideSmsStart':
'guideSmsInput': "Text Dad: I’ll be home for dinner", 'Diga à Lily: “Envie uma mensagem ao Pai: Estou a chegar para o jantar”',
'guideSmsSend': "Lily will send the message", 'guideSmsInput': 'Mensagem ao Pai: Estou a chegar para o jantar',
'guideSmsEnd': "Message sent—voice control is convenient", 'guideSmsSend': 'A Lily irá enviar a mensagem',
'guideSmsEnd': 'Mensagem enviada—o controlo por voz é prático',
// Meeting模块 - 首页与导航 // Meeting模块 - 首页与导航
"startMeeting": "Iniciar Reunião", "startMeeting": "Iniciar Reunião",
@ -515,9 +523,9 @@ const Map<String, String> ptPT = {
'aiPenNotFound': 'Dispositivo AI PEN não encontrado', 'aiPenNotFound': 'Dispositivo AI PEN não encontrado',
'connectedToAiPen': 'Ligado ao dispositivo AI PEN', 'connectedToAiPen': 'Ligado ao dispositivo AI PEN',
'checkingNewFiles': 'A verificar novos ficheiros para importar', 'checkingNewFiles': 'A verificar novos ficheiros para importar',
'startingWifi': 'Starting Wi-Fi...', 'startingWifi': 'A iniciar Wi-Fi...',
'newFilesDetected': 'New files detected, preparing to import', 'newFilesDetected': 'Novos ficheiros detetados, a preparar importação',
'noNewFiles': 'No new files to import', 'noNewFiles': 'Sem novos ficheiros para importar',
'connectingWifi': 'A ligar ao Wi‑Fi...', 'connectingWifi': 'A ligar ao Wi‑Fi...',
'wifiConnected': 'Wi‑Fi ligado com sucesso', 'wifiConnected': 'Wi‑Fi ligado com sucesso',
'downloadingFiles': 'A transferir ficheiros...', 'downloadingFiles': 'A transferir ficheiros...',
@ -532,7 +540,7 @@ const Map<String, String> ptPT = {
'liveRecording': 'Gravação ao vivo', 'liveRecording': 'Gravação ao vivo',
'audioVideoRecording': 'Gravação de áudio/vídeo', 'audioVideoRecording': 'Gravação de áudio/vídeo',
'callRecording': 'Gravação de chamadas', 'callRecording': 'Gravação de chamadas',
'importAudio': 'Import Audio', 'importAudio': 'Importar Áudio',
'meetingRecordExitTitle': 'Sair da gravação', // 退出录音 'meetingRecordExitTitle': 'Sair da gravação', // 退出录音
'meetingRecordExitMessage': 'Escolha o que fazer antes de sair', // 请选择离开后的操作 'meetingRecordExitMessage': 'Escolha o que fazer antes de sair', // 请选择离开后的操作
'meetingRecordEndAndSave': 'Terminar e guardar', // 结束录音并保存 'meetingRecordEndAndSave': 'Terminar e guardar', // 结束录音并保存
@ -673,8 +681,8 @@ const Map<String, String> ptPT = {
'aboutVoitrans': 'Sobre o VOITRANS', 'aboutVoitrans': 'Sobre o VOITRANS',
'meetingDays': 'Dias', 'meetingDays': 'Dias',
'meetingHours': 'Horas', 'meetingHours': 'Horas',
'voitransAiMember': 'Voitrans AI Member', 'voitransAiMember': 'Membro Voitrans AI',
'unlockStarterMember': 'Unlock Starter Member', 'unlockStarterMember': 'Desbloquear Membro Inicial',
'bindDeviceToActivate': 'bindDeviceToActivate':
'Vincular dispositivo Voitrans para ativar a subscrição Starter', 'Vincular dispositivo Voitrans para ativar a subscrição Starter',
'unlockNow': 'Desbloquear agora', 'unlockNow': 'Desbloquear agora',
@ -683,9 +691,9 @@ const Map<String, String> ptPT = {
'comparison': 'Comparação', 'comparison': 'Comparação',
'detailedInfo': 'Informações detalhadas', 'detailedInfo': 'Informações detalhadas',
'monthlyTranscriptionTime': 'Tempo mensal de transcrição', 'monthlyTranscriptionTime': 'Tempo mensal de transcrição',
'unlimited': 'Unlimited', 'unlimited': 'Ilimitado',
'professionalTemplates': 'Modelos profissionais', 'professionalTemplates': 'Modelos profissionais',
'limited': 'Limited', 'limited': 'Limitado',
'fullTemplates': 'Modelos completos', 'fullTemplates': 'Modelos completos',
'professionalTerms': 'Termos profissionais', 'professionalTerms': 'Termos profissionais',
'customTemplates': 'Modelos personalizados', 'customTemplates': 'Modelos personalizados',
@ -702,50 +710,50 @@ const Map<String, String> ptPT = {
'askAiDesc': 'askAiDesc':
'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.', 'Extraia informações mais profundas das gravações de forma inteligente e gere tabelas de dados, conclusões-chave, listas de tarefas, e-mails de relatório e outros conteúdos formatados com um clique.',
'visualMindMapDesc': 'visualMindMapDesc':
'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', 'Além dos resumos – organize e visualize os pontos-chave com mapas mentais para uma compreensão mais eficaz do texto completo.',
'templateCommunityDesc': 'templateCommunityDesc':
'Discover, share, and get inspiration from the template library created by users.', 'Descubra, partilhe e inspire-se na biblioteca de modelos criados pelos utilizadores.',
'speakerIdentificationDesc': 'speakerIdentificationDesc':
'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', 'A transcrição de áudio suportará a identificação de oradores, restaurando de forma mais intuitiva o conteúdo de reuniões ou chamadas telefónicas. Ao mesmo tempo, o resumo será mais preciso.',
'privateCloudSyncDesc': 'privateCloudSyncDesc':
'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.', 'As suas gravações e transcrições serão armazenadas com segurança em servidores dedicados na nuvem, com encriptação total durante o upload e o download para garantir privacidade e segurança.',
'aiVoiceEnhancementDesc': 'aiVoiceEnhancementDesc':
'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', 'O melhoramento de voz por IA suporta várias configurações de redução de ruído, elimina inteligentemente o ruído de fundo, melhora a clareza da voz e melhora a qualidade de reprodução de áudio.',
'audioImportDesc': 'audioImportDesc':
'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', 'Importe facilmente ficheiros de áudio de aplicações locais ou de terceiros, como notas de voz, Google Drive, etc.',
'multipleExportFormatsDesc': 'multipleExportFormatsDesc':
'Exporte as suas gravações de áudio, texto de transcrição e resumos em vários formatos (TXT, PDF, JPEG) conforme necessário.', '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', 'upgradeMembership': 'Atualize a sua subscrição',
'yearlySubscription': 'Subscrição anual', 'yearlySubscription': 'Subscrição anual',
'monthlySubscription': 'Subscrição mensal', 'monthlySubscription': 'Subscrição mensal',
'proMonthly': 'Pro ¥60/month', 'proMonthly': 'Pro ¥60/mês',
'proMonthlyDesc': 'proMonthlyDesc':
'7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'Período de experimentação gratuito de 7 dias, depois ¥800/ano. Cancele a qualquer momento antes de o período terminar.',
'sevenDayTrial': '7-day Free Trial', 'sevenDayTrial': 'Período de experimentação gratuito de 7 dias',
'unlimitedMonthly': 'Unlimited ¥120/month', 'unlimitedMonthly': 'Unlimited ¥120/mês',
'unlimitedMonthlyDesc': 'unlimitedMonthlyDesc':
'7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'Período de experimentação gratuito de 7 dias, depois ¥1600/ano. Cancele a qualquer momento antes de o período terminar.',
'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'trialNote': '*Período de experimentação gratuito durante 7 dias, depois cobrado anualmente, cancele a qualquer momento.',
'proPrice': 'Pro ¥120', 'proPrice': 'Pro ¥120',
'proMonthlyPrice': '¥120/month', 'proMonthlyPrice': '¥120/mês',
'subscribe': 'Subscribe', 'subscribe': 'Subscrever',
'unlimitedPrice': 'Unlimited ¥198', 'unlimitedPrice': 'Unlimited ¥198',
'unlimitedMonthlyPrice': '¥198/month', 'unlimitedMonthlyPrice': '¥198/mês',
'upgradeNote': 'upgradeNote':
'*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', '*Após atualizar a subscrição, os dias restantes da subscrição original serão automaticamente calculados e reembolsados na sua conta de pagamento',
'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'buyMoreTranscriptionTime': 'Comprar mais tempo de transcrição',
'sixThousandMinutes': '6,000 minutes', 'sixThousandMinutes': '6.000 minutos',
'threeThousandMinutes': '3,000 minutes', 'threeThousandMinutes': '3.000 minutos',
'sixHundredMinutes': '600 minutes', 'sixHundredMinutes': '600 minutos',
'oneHundredTwentyMinutes': '120 minutes', 'oneHundredTwentyMinutes': '120 minutos',
'validityPeriod': '*Validity Period: ', 'validityPeriod': '*Período de validade: ',
'validityNote': 'validityNote':
'Ativado imediatamente após a compra, válido por 2 anos após a ativação.', 'Ativado imediatamente após a compra, válido por 2 anos após a ativação.',
'purchase': 'Comprar', 'purchase': 'Comprar',
// Meeting模块 - 录音语言 // Meeting模块 - 录音语言
'recordLanguage': 'Idioma de gravação', 'recordLanguage': 'Idioma de gravação',
'cantonese': 'Cantonese', 'cantonese': 'Cantonês',
'sichuan': 'Dialeto de Sichuan', 'sichuan': 'Dialeto de Sichuan',
'shanghai': 'Dialeto de Xangai', 'shanghai': 'Dialeto de Xangai',
@ -844,7 +852,7 @@ const Map<String, String> ptPT = {
// Agent模块 - 主界面 // Agent模块 - 主界面
"Lily": "Lily", "Lily": "Lily",
"clearChatHistory": "Limpar Histórico de Chat", "clearChatHistory": "Limpar Histórico de Chat",
"online": "Online", "online": 'Online',
"ttsSpeed": "Velocidade da voz", "ttsSpeed": "Velocidade da voz",
"ttsSpeedDefaultHint": "Padrão +25%", "ttsSpeedDefaultHint": "Padrão +25%",
"inputMessage": "Introduzir mensagem...", "inputMessage": "Introduzir mensagem...",
@ -1095,7 +1103,7 @@ const Map<String, String> ptPT = {
"setImageQuality": "Definir qualidade da imagem", "setImageQuality": "Definir qualidade da imagem",
"currentQuality": "Qualidade atual: @value%", "currentQuality": "Qualidade atual: @value%",
"setMaxSize": "Definir tamanho máximo", "setMaxSize": "Definir tamanho máximo",
"currentMaxSize": "Current: @pxpx", "currentMaxSize": 'Atual: @pxpx',
"waitingForAction": "A aguardar ação", "waitingForAction": "A aguardar ação",
"pleaseSelectImageToStart": "Selecione uma imagem para começar", "pleaseSelectImageToStart": "Selecione uma imagem para começar",
"chooseImage": "Escolher imagem", "chooseImage": "Escolher imagem",
@ -1113,9 +1121,9 @@ const Map<String, String> ptPT = {
"processingFailed": "Falha no processamento", "processingFailed": "Falha no processamento",
"imageProcessingOrTranslationFailed": "imageProcessingOrTranslationFailed":
"Falha no processamento ou na tradução da imagem. Tente novamente.\nErro: {error}", "Falha no processamento ou na tradução da imagem. Tente novamente.\nErro: {error}",
"imageTooLarge": "Image size exceeds 4MB limit", "imageTooLarge": 'O tamanho da imagem excede o limite de 4 MB',
"imageTooLargeHint": "imageTooLargeHint":
"Image size exceeds 4MB. Reduce quality or dimensions and retry", 'O tamanho da imagem excede 4 MB. Reduza a qualidade ou as dimensões e tente novamente',
"emptyTranslationResult": "emptyTranslationResult":
"A API de tradução de imagens devolveu um resultado vazio", "A API de tradução de imagens devolveu um resultado vazio",
"imageTranslationFailedTryLater": "imageTranslationFailedTryLater":
@ -1128,11 +1136,11 @@ const Map<String, String> ptPT = {
"photoAlbumPermissionRequired": "photoAlbumPermissionRequired":
"É necessária permissão de álbum de fotos para selecionar imagens", "É necessária permissão de álbum de fotos para selecionar imagens",
"translationDetails": "Detalhes da tradução", "translationDetails": "Detalhes da tradução",
"originalImage": "Original Image", "originalImage": 'Imagem original',
"sourceLanguage": "Source Language", "sourceLanguage": 'Idioma de origem',
"targetLanguage": "Target Language", "targetLanguage": 'Idioma de destino',
"translationTime": "Tempo de tradução", "translationTime": "Tempo de tradução",
"shareInDevelopment": "Sharing feature under development", "shareInDevelopment": 'Funcionalidade de partilha em desenvolvimento',
// 翻译模块 - 录音文件 // 翻译模块 - 录音文件
"translateAudioFiles": "Traduzir Ficheiros de Áudio", "translateAudioFiles": "Traduzir Ficheiros de Áudio",
@ -1172,7 +1180,7 @@ const Map<String, String> ptPT = {
// 个人资料模块 // 个人资料模块
"editProfile": "Editar Informações Pessoais", "editProfile": "Editar Informações Pessoais",
"avatar": "Avatar", "avatar": 'Avatar',
"nickname": "Alcunha", "nickname": "Alcunha",
"save": "Guardar", "save": "Guardar",
"about": "Sobre", "about": "Sobre",
@ -1184,8 +1192,8 @@ const Map<String, String> ptPT = {
'deleteAccount': 'Eliminar Conta', 'deleteAccount': 'Eliminar Conta',
'deleteAccountTips': 'deleteAccountTips':
'Tem a certeza que quer eliminar permanentemente a sua conta? Esta ação não pode ser revertida.', 'Tem a certeza que quer eliminar permanentemente a sua conta? Esta ação não pode ser revertida.',
'clean': 'Clear Cache', 'clean': 'Limpar cache',
'cleanTips': 'Are you sure you want to clear personal cache?', 'cleanTips': 'Tem a certeza que quer limpar a cache pessoal?',
'networkConnectionFailed': 'networkConnectionFailed':
'Falha na ligação à rede, verifique as definições de rede e tente novamente', 'Falha na ligação à rede, verifique as definições de rede e tente novamente',
'serverTemporarilyUnavailable': 'serverTemporarilyUnavailable':
@ -1248,9 +1256,9 @@ const Map<String, String> ptPT = {
'locationPermissions': 'Permissões de Localização', 'locationPermissions': 'Permissões de Localização',
'phone': 'Telefone', 'phone': 'Telefone',
'sms': 'SMS', 'sms': 'SMS',
'contacts': 'Contacts', 'contacts': 'Contactos',
'notification': 'Notification', 'notification': 'Notificação',
'alarm': 'Alarm', 'alarm': 'Alarme',
'calendarWrite': 'Escrever no Calendário', 'calendarWrite': 'Escrever no Calendário',
'calendarFullAccess': 'Acesso Total ao Calendário', 'calendarFullAccess': 'Acesso Total ao Calendário',
'locationInfo': 'Informações de Localização', 'locationInfo': 'Informações de Localização',
@ -1296,7 +1304,7 @@ const Map<String, String> ptPT = {
'bluetoothConnectPermissionDesc': 'Usado para ligar a dispositivos Bluetooth', 'bluetoothConnectPermissionDesc': 'Usado para ligar a dispositivos Bluetooth',
'bluetoothConnectPermissionDetailDesc': 'bluetoothConnectPermissionDetailDesc':
'Para ligar a dispositivos Bluetooth, é necessária permissão de ligação Bluetooth', 'Para ligar a dispositivos Bluetooth, é necessária permissão de ligação Bluetooth',
'notificationPermissionDesc': 'Used for sending notification messages', 'notificationPermissionDesc': 'Utilizado para enviar mensagens de notificação',
'notificationPermissionDetailDesc': 'notificationPermissionDetailDesc':
'A aplicação precisa de permissão de notificações para lhe enviar alertas e mensagens importantes', 'A aplicação precisa de permissão de notificações para lhe enviar alertas e mensagens importantes',
'appNeedsPermissionForFullFunction': 'appNeedsPermissionForFullFunction':
@ -1337,7 +1345,7 @@ const Map<String, String> ptPT = {
'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.', 'A permissão de microfone foi recusada permanentemente. Para continuar a usar esta funcionalidade, vá às definições da aplicação e ative manualmente a permissão de microfone.',
'storagePermissionPermanentDenial': 'storagePermissionPermanentDenial':
'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.', 'A permissão de armazenamento foi recusada permanentemente. Para continuar a usar esta funcionalidade, vá às definições da aplicação e ative manualmente a permissão de armazenamento.',
'permissionUtilNeed': 'Need ', 'permissionUtilNeed': 'Necessário ',
'permissionUtilPermission': ' Permissão', 'permissionUtilPermission': ' Permissão',
'permissionUtilRestricted': ' Permissão restrita', 'permissionUtilRestricted': ' Permissão restrita',
'permissionUtilRestrictedMessage': 'permissionUtilRestrictedMessage':
@ -1596,17 +1604,17 @@ const Map<String, String> ptPT = {
"印地语": "Híndi", "印地语": "Híndi",
"土耳其语": "Turco", "土耳其语": "Turco",
"马来语": "Malaio", "马来语": "Malaio",
"孟加拉语": "Bengali", "孟加拉语": 'Bengali',
"泰米尔语": "Tâmil", "泰米尔语": "Tâmil",
"泰卢固语": "Telugo", "泰卢固语": "Telugo",
"马拉提语": "Marata", "马拉提语": "Marata",
"乌尔都语": "Urdu", "乌尔都语": 'Urdu',
"波斯语": "Persa", "波斯语": "Persa",
"斯瓦希里语": "Suaíli", "斯瓦希里语": "Suaíli",
// 国家列表 // 国家列表
"邮箱": "E-mail", "邮箱": "E-mail",
"中国": "China", "中国": 'China',
"美国": "Estados Unidos", "美国": "Estados Unidos",
"加拿大": "Canadá", "加拿大": "Canadá",
"俄罗斯": "Rússia", "俄罗斯": "Rússia",
@ -1631,7 +1639,7 @@ const Map<String, String> ptPT = {
"阿联酋": "Emirados Árabes Unidos", "阿联酋": "Emirados Árabes Unidos",
"墨西哥": "México", "墨西哥": "México",
"巴西": "Brasil", "巴西": "Brasil",
"阿根廷": "Argentina", "阿根廷": 'Argentina',
"澳大利亚": "Austrália", "澳大利亚": "Austrália",
"新西兰": "Nova Zelândia", "新西兰": "Nova Zelândia",
"中国香港": "Hong Kong (China)", "中国香港": "Hong Kong (China)",
@ -1649,16 +1657,16 @@ const Map<String, String> ptPT = {
"瑞典": "Suécia", "瑞典": "Suécia",
"挪威": "Noruega", "挪威": "Noruega",
"波兰": "Polónia", "波兰": "Polónia",
"秘鲁": "Peru", "秘鲁": 'Peru',
"智利": "Chile", "智利": 'Chile',
"哥伦比亚": "Colômbia", "哥伦比亚": "Colômbia",
"委内瑞拉": "Venezuela", "委内瑞拉": 'Venezuela',
"葡萄牙": "Portugal", "葡萄牙": 'Portugal',
"卢森堡": "Luxemburgo", "卢森堡": "Luxemburgo",
"爱尔兰": "Irlanda", "爱尔兰": "Irlanda",
"冰岛": "Islândia", "冰岛": "Islândia",
"阿尔巴尼亚": "Albânia", "阿尔巴尼亚": "Albânia",
"马耳他": "Malta", "马耳他": 'Malta',
"塞浦路斯": "Chipre", "塞浦路斯": "Chipre",
"芬兰": "Finlândia", "芬兰": "Finlândia",
"保加利亚": "Bulgária", "保加利亚": "Bulgária",
@ -1671,13 +1679,13 @@ const Map<String, String> ptPT = {
"斯洛文尼亚": "Eslovénia", "斯洛文尼亚": "Eslovénia",
"捷克": "República Checa", "捷克": "República Checa",
"斯洛伐克": "Eslováquia", "斯洛伐克": "Eslováquia",
"危地马拉": "Guatemala", "危地马拉": 'Guatemala',
"萨尔瓦多": "El Salvador", "萨尔瓦多": 'El Salvador',
"洪都拉斯": "Honduras", "洪都拉斯": 'Honduras',
"尼加拉瓜": "Nicarágua", "尼加拉瓜": "Nicarágua",
"哥斯达黎加": "Costa Rica", "哥斯达黎加": 'Costa Rica',
"巴拿马": "Panamá", "巴拿马": "Panamá",
"海地": "Haiti", "海地": 'Haiti',
"玻利维亚": "Bolívia", "玻利维亚": "Bolívia",
"厄瓜多尔": "Equador", "厄瓜多尔": "Equador",
"巴拉圭": "Paraguai", "巴拉圭": "Paraguai",
@ -1690,36 +1698,36 @@ const Map<String, String> ptPT = {
"埃塞俄比亚": "Etiópia", "埃塞俄比亚": "Etiópia",
"肯尼亚": "Quénia", "肯尼亚": "Quénia",
"坦桑尼亚": "Tanzânia", "坦桑尼亚": "Tanzânia",
"乌干达": "Uganda", "乌干达": 'Uganda',
"孟加拉国": "Bangladesh", "孟加拉国": 'Bangladesh',
"以色列": "Israel", "以色列": 'Israel',
"黎巴嫩": "Líbano", "黎巴嫩": "Líbano",
"约旦": "Jordânia", "约旦": "Jordânia",
"伊拉克": "Iraque", "伊拉克": "Iraque",
"科威特": "Kuwait", "科威特": 'Kuwait',
"巴林": "Bahrein", "巴林": "Bahrein",
"卡塔尔": "Catar", "卡塔尔": "Catar",
"阿曼": "Omã", "阿曼": "Omã",
"阿富汗": "Afeganistão", "阿富汗": "Afeganistão",
"斯里兰卡": "Sri Lanka", "斯里兰卡": 'Sri Lanka',
"缅甸": "Mianmar", "缅甸": "Mianmar",
"尼泊尔": "Nepal", "尼泊尔": 'Nepal',
"蒙古": "Mongólia", "蒙古": "Mongólia",
"柬埔寨": "Camboja", "柬埔寨": "Camboja",
"老挝": "Laos", "老挝": 'Laos',
"文莱": "Brunei", "文莱": 'Brunei',
"东帝汶": "Timor-Leste", "东帝汶": "Timor-Leste",
"斐济": "Fiji", "斐济": 'Fiji',
"所罗门群岛": "Ilhas Salomão", "所罗门群岛": "Ilhas Salomão",
"刚果民主共和国": "Democratic Republic of the Congo", "刚果民主共和国": 'República Democrática do Congo',
"安哥拉": "Angola", "安哥拉": 'Angola',
"苏丹": "Sudan", "苏丹": 'Sudão',
"马尔代夫": "Maldives", "马尔代夫": 'Maldivas',
"不丹": "Bhutan", "不丹": 'Butão',
"摩纳哥": "Monaco", "摩纳哥": 'Mónaco',
"圣马力诺": "San Marino", "圣马力诺": 'San Marino',
"牙买加": "Jamaica", "牙买加": 'Jamaica',
"巴哈马": "Bahamas", "巴哈马": 'Bahamas',
"巴布亚新几内亚": "Papua New Guinea", "巴布亚新几内亚": 'Papua Nova Guiné',
"萨摩亚": "Samoa", "萨摩亚": 'Samoa',
}; };

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

@ -49,7 +49,7 @@ const Map<String, String> roRO = {
"russian": "Rusă", "russian": "Rusă",
"vietnamese": "Vietnameză", "vietnamese": "Vietnameză",
"italian": "Italiană", "italian": "Italiană",
"hindi": "Hindi", "hindi": 'Hindi',
"indonesian": "Indoneziană", "indonesian": "Indoneziană",
"thai": "Thailandeză", "thai": "Thailandeză",
"malay": "Malaeză", "malay": "Malaeză",
@ -259,10 +259,10 @@ const Map<String, String> roRO = {
"loadFailed": "Încărcare eșuată", "loadFailed": "Încărcare eșuată",
"statsLoadFailedTryLater": "statsLoadFailedTryLater":
"Nu s-au putut încărca statisticile. Încercați din nou mai târziu.", "Nu s-au putut încărca statisticile. Încercați din nou mai târziu.",
"cleanupComplete": "Cleanup Complete", "cleanupComplete": "Curățenie finalizată",
"cleanedOldData": "Cleaned data older than 90 days", "cleanedOldData": "Date mai vechi de 90 de zile au fost șterse",
"exportFeature": "Export Feature", "exportFeature": "Funcție export",
"exportInDevelopment": "Data export is under development", "exportInDevelopment": "Exportul datelor este în curs de dezvoltare",
// 商品模块 - 通用 // 商品模块 - 通用
'availablePackages': 'Pachete disponibile', 'availablePackages': 'Pachete disponibile',
@ -372,7 +372,7 @@ const Map<String, String> roRO = {
'subtitleDisplay': 'Subtitrări', 'subtitleDisplay': 'Subtitrări',
'transHeaderDesc1': 'transHeaderDesc1':
'Interpretare simultană în timp real și traducere de text cu voce cu latență redusă.', 'Interpretare simultană în timp real și traducere de text cu voce cu latență redusă.',
'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'transHeaderDesc2': 'Potrivit pentru călătorii, afaceri, discursuri și predare.',
'translateZhEn': 'Traducere chineză–engleză', 'translateZhEn': 'Traducere chineză–engleză',
'lowLatencyVoiceBroadcast': 'Difuzare vocală cu latență redusă', 'lowLatencyVoiceBroadcast': 'Difuzare vocală cu latență redusă',
'multiLangTextTranslation': 'Traducere text multilingvă', 'multiLangTextTranslation': 'Traducere text multilingvă',
@ -393,7 +393,7 @@ const Map<String, String> roRO = {
'meetingHeaderDesc1': 'meetingHeaderDesc1':
'Înregistrare audio, transcriere, căutare cuvinte cheie și rezumat automat pentru a crește eficiența ședințelor.', 'Înregistrare audio, transcriere, căutare cuvinte cheie și rezumat automat pentru a crește eficiența ședințelor.',
'meetingHeaderDesc2': 'meetingHeaderDesc2':
'Suitable for business meetings, class notes, and interview minutes.', 'Potrivit pentru ședințe de afaceri, notițe de clasă și minute de interviu.',
'meetingAutoRecording': 'Înregistrare automată și segmentare', 'meetingAutoRecording': 'Înregistrare automată și segmentare',
'meetingSpeakerTagging': 'Etichetare vorbitori', 'meetingSpeakerTagging': 'Etichetare vorbitori',
'meetingLongAudioTranscription': 'Transcriere audio lung', 'meetingLongAudioTranscription': 'Transcriere audio lung',
@ -422,18 +422,18 @@ const Map<String, String> roRO = {
'Beneficiile reale depind de detaliile pachetului și se pot schimba odată cu versiunile.', 'Beneficiile reale depind de detaliile pachetului și se pot schimba odată cu versiunile.',
// 商品模块 - 商品名称与描述 // 商品模块 - 商品名称与描述
'ai_001_name': 'AI Basic 100', 'ai_001_name': 'AI De bază 100',
'ai_002_name': 'AI Basic 500', 'ai_002_name': 'AI De bază 500',
'ai_003_name': 'AI Basic 1000', 'ai_003_name': 'AI De bază 1000',
'meet_001_name': 'Meeting Basic 100', 'meet_001_name': 'Şedință De bază 100',
'meet_002_name': 'Meeting Basic 500', 'meet_002_name': 'Şedință De bază 500',
'meet_003_name': 'Meeting Basic 1000', 'meet_003_name': 'Şedință De bază 1000',
'trans_001_name': 'Traducere Basic 100', 'trans_001_name': 'Traducere Basic 100',
'trans_002_name': 'Traducere Basic 500', 'trans_002_name': 'Traducere Basic 500',
'trans_003_name': 'Traducere Basic 1000', 'trans_003_name': 'Traducere Basic 1000',
'ai_001_desc': 'Includes 100 uses. Access core AI features.', 'ai_001_desc': 'Include 100 utilizări. Acces la funcțiile de bază AI.',
'ai_002_desc': 'Includes 500 uses. Access core AI features.', 'ai_002_desc': 'Include 500 utilizări. Acces la funcțiile de bază AI.',
'ai_003_desc': 'Includes 1000 uses. Access core AI features.', 'ai_003_desc': 'Include 1000 utilizări. Acces la funcțiile de bază AI.',
'meet_001_desc': 'Include 100 înregistrări/transcrieri de ședințe.', 'meet_001_desc': 'Include 100 înregistrări/transcrieri de ședințe.',
'meet_002_desc': 'Include 500 î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.', 'meet_003_desc': 'Include 1000 înregistrări/transcrieri de ședințe.',
@ -442,46 +442,46 @@ const Map<String, String> roRO = {
'trans_003_desc': 'Include 1000 traduceri (voce/text).', 'trans_003_desc': 'Include 1000 traduceri (voce/text).',
// 商品模块 - 页脚 // 商品模块 - 页脚
'appNameProvider': 'App: VoiTrans · Provided by: VoiTrans', 'appNameProvider': 'Aplicație: VoiTrans · Furnizat de: VoiTrans',
'iapCustomerServiceQQLabel': 'IAP customer service QQ: @qq', 'iapCustomerServiceQQLabel': 'Serviciu clienți IAP QQ: @qq',
'copyrightVoitrans': '© 2025 Voitrans Technologies', 'copyrightVoitrans': '© 2025 Voitrans Technologies',
// 新手引导 // 新手引导
'skip': "Omite", 'skip': "Omite",
'next': 'Next', 'next': 'Următor',
'sayLilyHint': 'Say "Lily Lily" to the mic', 'sayLilyHint': 'Spune “Lily Lily” la microfon',
'imHere': 'I’m here~', 'imHere': 'Sunt aici~',
'guideWelcomeWakeAI': 'Welcome to Voitrans! First, wake your AI “Lily”.', 'guideWelcomeWakeAI': 'Bun venit la Voitrans! Mai întâi, trezește-ți AI-ul “Lily”.',
'aiReplyCompleted': 'Lily has finished the reply!', 'aiReplyCompleted': 'Lily a terminat răspunsul!',
'aiThinking': 'Lily is thinking…', 'aiThinking': 'Lily se gândește…',
'guideAwakenSuccess': 'Great! Lily is awake—ask it to help.', 'guideAwakenSuccess': 'Minunat! Lily s-a trezit—cere-i ajutorul.',
'confirmInput': 'Confirm Input', 'confirmInput': 'Confirmă introducerea',
'guideClickSendPrefix': 'Tap send, ', 'guideClickSendPrefix': 'Apasă trimitere, ',
'guideWeatherStart': 'Tell Lily: “What’s the weather today?”', 'guideWeatherStart': 'Spune-i lui Lily: “Cum este vremea astăzi?”',
'guideWeatherInput': 'What’s the weather today?', 'guideWeatherInput': 'Cum este vremea astăzi?',
'guideWeatherSend': 'Lily will report the weather in real time', 'guideWeatherSend': 'Lily va raporta vremea în timp real',
'guideWeatherEnd': 'Lily can report weather live—try other commands', 'guideWeatherEnd': 'Lily poate raporta vremea live—încearcă alte comenzi',
'guideMusicStart': 'Tell Lily: “Play some rock music”', 'guideMusicStart': 'Spune-i lui Lily: “Pune ceva muzică rock”',
'guideMusicInput': 'Play some rock music', 'guideMusicInput': 'Pune ceva muzică rock',
'guideMusicSend': 'Lily will find music for you', 'guideMusicSend': 'Lily va găsi muzică pentru tine',
'guideMusicEnd': 'Lily found music—try other commands', 'guideMusicEnd': 'Lily a găsit muzică—încearcă alte comenzi',
'guideNavStart': 'Tell Lily: “Navigate to Shenzhen Airport”', 'guideNavStart': 'Spune-i lui Lily: “Navighează la Aeroportul Shenzhen”',
'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavInput': 'Navighează la Aeroportul Shenzhen',
'guideNavSend': 'Lily will plan the route', 'guideNavSend': 'Lily va planifica ruta',
'guideNavEnd': 'Navigation set—try other commands', 'guideNavEnd': 'Navigare setată—încearcă alte comenzi',
'guideMeetingStart': 'guideMeetingStart':
'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'Spune-i lui Lily: “Creează un memento de ședință pentru mâine la ora 15:00”',
'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingInput': 'Creează un memento de ședință pentru mâine la ora 15:00',
'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingSend': 'Lily va crea un memento de ședință',
'guideMeetingEnd': 'Reminder created—try other commands', 'guideMeetingEnd': 'Memento creat—încearcă alte comenzi',
'guidePhoneStart': 'Tell Lily: “Call Mom”', 'guidePhoneStart': 'Spune-i lui Lily: “Sună mama”',
'guidePhoneInput': 'Call Mom', 'guidePhoneInput': 'Sună mama',
'guidePhoneSend': 'Lily will make the call', 'guidePhoneSend': 'Lily va efectua apelul',
'guidePhoneEnd': 'Call placed—try other commands', 'guidePhoneEnd': 'Apel efectuat—încearcă alte comenzi',
'guideSmsStart': 'Tell Lily: “Send Dad a text: I’ll be home for dinner”', 'guideSmsStart': 'Spune-i lui Lily: “Trimite-i un mesaj tatei: Vin acasă la cină”',
'guideSmsInput': 'Text Dad: I’ll be home for dinner', 'guideSmsInput': 'Trimite-i un mesaj tatei: Vin acasă la cină',
'guideSmsSend': 'Lily will send the message', 'guideSmsSend': 'Lily va trimite mesajul',
'guideSmsEnd': 'Message sent—voice control is convenient', 'guideSmsEnd': 'Mesaj trimis—controlul vocal este convenabil',
// Meeting模块 - 首页与导航 // Meeting模块 - 首页与导航
"startMeeting": "Începe ședința", "startMeeting": "Începe ședința",
@ -510,9 +510,9 @@ const Map<String, String> roRO = {
'aiPenNotFound': 'Dispozitivul AI PEN nu a fost găsit', 'aiPenNotFound': 'Dispozitivul AI PEN nu a fost găsit',
'connectedToAiPen': 'Conectat la dispozitivul AI PEN', 'connectedToAiPen': 'Conectat la dispozitivul AI PEN',
'checkingNewFiles': 'Se verifică fișiere noi pentru import', 'checkingNewFiles': 'Se verifică fișiere noi pentru import',
'startingWifi': 'Starting Wi-Fi...', 'startingWifi': 'Se pornește Wi-Fi...',
'newFilesDetected': 'New files detected, preparing to import', 'newFilesDetected': 'Fișiere noi detectate, se pregătește importul',
'noNewFiles': 'No new files to import', 'noNewFiles': 'Nu există fișiere noi de importat',
'connectingWifi': 'Se conectează la Wi‑Fi...', 'connectingWifi': 'Se conectează la Wi‑Fi...',
'wifiConnected': 'Wi‑Fi conectat cu succes', 'wifiConnected': 'Wi‑Fi conectat cu succes',
'downloadingFiles': 'Se descarcă fișiere...', 'downloadingFiles': 'Se descarcă fișiere...',
@ -527,7 +527,7 @@ const Map<String, String> roRO = {
'liveRecording': 'Înregistrare live', 'liveRecording': 'Înregistrare live',
'audioVideoRecording': 'Înregistrare audio/video', 'audioVideoRecording': 'Înregistrare audio/video',
'callRecording': 'Înregistrare apel', 'callRecording': 'Înregistrare apel',
'importAudio': 'Import Audio', 'importAudio': 'Importare audio',
'meetingRecordExitTitle': 'Ieși din înregistrare', // 退出录音 'meetingRecordExitTitle': 'Ieși din înregistrare', // 退出录音
'meetingRecordExitMessage': 'Alege ce să faci înainte de a ieși', // 请选择离开后的操作 'meetingRecordExitMessage': 'Alege ce să faci înainte de a ieși', // 请选择离开后的操作
'meetingRecordEndAndSave': 'Încheie și salvează', // 结束录音并保存 'meetingRecordEndAndSave': 'Încheie și salvează', // 结束录音并保存
@ -550,30 +550,30 @@ const Map<String, String> roRO = {
'Pentru a afișa bara flotantă de înregistrare (cronometru/pauză/continuă) în timpul înregistrării, avem nevoie de permisiunea de suprapunere.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 'Pentru a afișa bara flotantă de înregistrare (cronometru/pauză/continuă) în timpul înregistrării, avem nevoie de permisiunea de suprapunere.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。
'overlayPermissionOpenSettingsFailed': 'overlayPermissionOpenSettingsFailed':
'Nu se pot deschide automat setările de sistem. Deschide Setări și activează manual permisiunea de suprapunere.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'Nu se pot deschide automat setările de sistem. Deschide Setări și activează manual permisiunea de suprapunere.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。
'transcribing': 'Transcribing...', 'transcribing': 'Se transcrie...',
'summarizing': 'Summarizing...', 'summarizing': 'Se rezumă...',
'analyzing': 'Analyzing...', 'analyzing': 'Se analizează...',
'summaryComplete': 'Summary Complete', 'summaryComplete': 'Rezumat finalizat',
'generate': 'Generate', 'generate': 'Generează',
'overview': 'Overview', 'overview': 'Prezentare generală',
'transcription': 'Transcription', 'transcription': 'Transcriere',
'summary': 'Summary', 'summary': 'Rezumat',
'mindMap': 'Mind Map', 'mindMap': 'Hartă mentală',
'editSpeaker': 'Edit', 'editSpeaker': 'Editează',
'nameSpeaker': 'Name Speaker', 'nameSpeaker': 'Denumiți vorbitorul',
// Meeting模块 - 转写与总结 // Meeting模块 - 转写与总结
'reSummarize': 'Re-summarize', 'reSummarize': 'Regenerează rezumatul',
'dateAndTime': 'Date & Time', 'dateAndTime': 'Dată și oră',
'location': 'Location', 'location': 'Locație',
'attendees': 'Attendees', 'attendees': 'Participanți',
'inputLocation': 'Enter Location', 'inputLocation': 'Introduceți locația',
'inputAttendees': 'Enter Attendees', 'inputAttendees': 'Introduceți participanții',
// Meeting模块 - 模版与生成 // Meeting模块 - 模版与生成
'selectSummaryTemplate': 'Select Summary Template', 'selectSummaryTemplate': 'Selectați șablonul de rezumat',
'useThisTemplate': 'Use This Template', 'useThisTemplate': 'Folosiți acest șablon',
'lastUsed': 'Last Used', 'lastUsed': 'Ultima utilizare',
'create': 'Creează', 'create': 'Creează',
'templateDetails': 'Detalii șablon', 'templateDetails': 'Detalii șablon',
'tag': 'Etichetă', 'tag': 'Etichetă',
@ -590,24 +590,24 @@ const Map<String, String> roRO = {
'inputDescHint': 'Vă rugăm să introduceți descrierea', 'inputDescHint': 'Vă rugăm să introduceți descrierea',
'custom': 'Personalizat', 'custom': 'Personalizat',
'pleaseEnter': 'Vă rugăm introduceți', 'pleaseEnter': 'Vă rugăm introduceți',
'viewAll': 'View All', 'viewAll': 'Vedeți toate',
'recordingLanguage': 'Limba înregistrării', 'recordingLanguage': 'Limba înregistrării',
'chineseSimplified': 'Chinese Mandarin (Simplified)', 'chineseSimplified': 'Chineză mandarină (simplificată)',
'meetingGenerateNow': 'Generate Now', 'meetingGenerateNow': 'Generează acum',
'keyEventsAnalyzed': 'Analyzed {count} key events.', 'keyEventsAnalyzed': 'Au fost analizate {count} evenimente cheie.',
'aiAnalysisDesc': 'aiAnalysisDesc':
'Analiza AI identifică evenimente-cheie în înregistrări, permițându-vă să selectați evenimente importante pentru generarea AI.', 'Analiza AI identifică evenimente-cheie în înregistrări, permițându-vă să selectați evenimente importante pentru generarea AI.',
// Meeting模块 - 文件操作 // Meeting模块 - 文件操作
'importing': 'Importing...', 'importing': 'Se importă...',
'batchImporting': 'Batch importing...', 'batchImporting': 'Import în masă...',
'importingLocalRecordings': 'Se importă înregistrări locale...', 'importingLocalRecordings': 'Se importă înregistrări locale...',
'importFailed': 'Importul fișierului a eșuat: {filePath}, eroare: {error}', 'importFailed': 'Importul fișierului a eșuat: {filePath}, eroare: {error}',
'importSuccess': 'Au fost importate cu succes {count} înregistrări locale', 'importSuccess': 'Au fost importate cu succes {count} înregistrări locale',
'importError': 'Import eșuat: {error}', 'importError': 'Import eșuat: {error}',
'pleaseSelectAudioFile': 'Vă rugăm să selectați un fișier audio', 'pleaseSelectAudioFile': 'Vă rugăm să selectați un fișier audio',
'shareAudio': 'Share Meeting Audio', 'shareAudio': 'Partajează audio ședință',
'shareComplete': 'Share complete!', 'shareComplete': 'Partajare finalizată!',
'shareFailed': 'Partajarea a eșuat: {error}', 'shareFailed': 'Partajarea a eșuat: {error}',
'fileProcessingFailed': 'fileProcessingFailed':
'Procesarea fișierului a eșuat: {filePath}, eroare: {error}', 'Procesarea fișierului a eșuat: {filePath}, eroare: {error}',
@ -664,88 +664,88 @@ const Map<String, String> roRO = {
'enabled': 'Activat', 'enabled': 'Activat',
'disabled': 'Dezactivat', 'disabled': 'Dezactivat',
'myVoitransDevice': 'Dispozitivul meu VOITRANS', 'myVoitransDevice': 'Dispozitivul meu VOITRANS',
'helpAndFeedback': 'Help & Feedback', 'helpAndFeedback': 'Ajutor și feedback',
'aboutVoitrans': 'About VOITRANS', 'aboutVoitrans': 'Despre VOITRANS',
'meetingDays': 'Days', 'meetingDays': 'Zile',
'meetingHours': 'Hours', 'meetingHours': 'Ore',
'voitransAiMember': 'Voitrans AI Member', 'voitransAiMember': 'Membru AI Voitrans',
'unlockStarterMember': 'Unlock Starter Member', 'unlockStarterMember': 'Deblochează abonamentul Starter',
'bindDeviceToActivate': 'bindDeviceToActivate':
'Asociați dispozitivul Voitrans pentru a activa abonamentul Starter', 'Asociați dispozitivul Voitrans pentru a activa abonamentul Starter',
'unlockNow': 'Unlock Now', 'unlockNow': 'Deblochează acum',
// Meeting模块 - 会员与升级 // Meeting模块 - 会员与升级
'comparison': 'Comparison', 'comparison': 'Comparație',
'detailedInfo': 'Detailed Information', 'detailedInfo': 'Informații detaliate',
'monthlyTranscriptionTime': 'Monthly Transcription Time', 'monthlyTranscriptionTime': 'Timp lunar de transcriere',
'unlimited': 'Unlimited', 'unlimited': 'Nelimitat',
'professionalTemplates': 'Professional Templates', 'professionalTemplates': 'Șabloane profesionale',
'limited': 'Limited', 'limited': 'Limitat',
'fullTemplates': 'Full Templates', 'fullTemplates': 'Șabloane complete',
'professionalTerms': 'Professional Terms', 'professionalTerms': 'Termeni profesioniști',
'customTemplates': 'Custom Templates', 'customTemplates': 'Șabloane personalizate',
'visualMindMap': 'Visual Mind Map', 'visualMindMap': 'Hartă mentală vizuală',
'speakerIdentification': 'Speaker Identification', 'speakerIdentification': 'Identificarea vorbitorului',
'aiVoiceEnhancement': 'AI Voice Enhancement', 'aiVoiceEnhancement': 'Îmbunătățire vocală AI',
'audioImport': 'Audio Import', 'audioImport': 'Import audio',
'multipleExportFormats': 'Multiple Export Formats', 'multipleExportFormats': 'Formate multiple de export',
'professionalSummaryTemplates': 'Professional Summary Templates', 'professionalSummaryTemplates': 'Șabloane profesionale de rezumat',
'professionalTemplateDesc': 'professionalTemplateDesc':
'Professional template design to improve your work efficiency. Customized according to industry needs.', 'Design de șabloane profesionale pentru a îmbunătăți eficiența muncii tale. Personalizat în funcție de nevoile industriei.',
'customTemplateDesc': 'customTemplateDesc':
'You can customize summary prompts according to your needs and use them to generate the required summaries.', 'Poți personaliza prompturile de rezumat în funcție de nevoile tale și să le folosești pentru a genera rezumatele necesare.',
'askAiDesc': 'askAiDesc':
'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.', 'Extrage inteligent informații mai profunde din înregistrări și generează cu un singur clic tabele de date, concluzii-cheie, liste de sarcini, e-mailuri de raport și alt conținut formatat.',
'visualMindMapDesc': 'visualMindMapDesc':
'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', 'Dincolo de rezumate - organizează și vizualizează punctele cheie cu hărți mentale pentru o înțelegere mai eficientă a întregului text.',
'templateCommunityDesc': 'templateCommunityDesc':
'Discover, share, and get inspiration from the template library created by users.', 'Descoperă, partajează și inspiră-te din biblioteca de șabloane creată de utilizatori.',
'speakerIdentificationDesc': 'speakerIdentificationDesc':
'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', 'Transcrierea audio va suporta identificarea vorbitorului, restabilind mai intuitiv conținutul ședințelor sau apelurilor. Totodată, rezumatul va fi mai precis.',
'privateCloudSyncDesc': 'privateCloudSyncDesc':
'Î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.', 'Înregistrările și transcrierile sunt stocate în siguranță pe servere cloud dedicate, cu criptare completă la încărcare și descărcare pentru a asigura confidențialitatea și securitatea.',
'aiVoiceEnhancementDesc': 'aiVoiceEnhancementDesc':
'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', 'Îmbunătățirea vocală AI suportă multiple setări de reducere a zgomotului, elimină inteligent zgomotul de fundal, îmbunătățește claritatea vocii și calitatea redării audio.',
'audioImportDesc': 'audioImportDesc':
'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', 'Importați cu ușurință fișiere audio din aplicații locale sau terțe, cum ar fi notițele vocale, Google Drive etc.',
'multipleExportFormatsDesc': 'multipleExportFormatsDesc':
'Exportați înregistrările audio, textul transcris și rezumatele în diverse formate (TXT, PDF, JPEG) după nevoie.', 'Exportați înregistrările audio, textul transcris și rezumatele în diverse formate (TXT, PDF, JPEG) după nevoie.',
'upgradeMembership': 'Upgrade Your Membership', 'upgradeMembership': 'Actualizați-vă abonamentul',
'yearlySubscription': 'Yearly Subscription', 'yearlySubscription': 'Abonament anual',
'monthlySubscription': 'Monthly Subscription', 'monthlySubscription': 'Abonament lunar',
'proMonthly': 'Pro ¥60/month', 'proMonthly': 'Pro ¥60/lună',
'proMonthlyDesc': 'proMonthlyDesc':
'7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'Perioadă de probă gratuită de 7 zile, apoi ¥800/an. Anulați oricând înainte de sfârșitul perioadei de probă.',
'sevenDayTrial': '7-day Free Trial', 'sevenDayTrial': 'Perioadă de probă gratuită de 7 zile',
'unlimitedMonthly': 'Unlimited ¥120/month', 'unlimitedMonthly': 'Nelimitat ¥120/lună',
'unlimitedMonthlyDesc': 'unlimitedMonthlyDesc':
'7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'Perioadă de probă gratuită de 7 zile, apoi ¥1600/an. Anulați oricând înainte de sfârșitul perioadei de probă.',
'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'trialNote': '*Probă gratuită 7 zile, apoi facturat anual, anulați oricând.',
'proPrice': 'Pro ¥120', 'proPrice': 'Pro ¥120',
'proMonthlyPrice': '¥120/month', 'proMonthlyPrice': '¥120/lună',
'subscribe': 'Subscribe', 'subscribe': 'Abonați-vă',
'unlimitedPrice': 'Unlimited ¥198', 'unlimitedPrice': 'Nelimitat ¥198',
'unlimitedMonthlyPrice': '¥198/month', 'unlimitedMonthlyPrice': '¥198/lună',
'upgradeNote': 'upgradeNote':
'*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', '*După actualizarea abonamentului, zilele rămase din abonamentul inițial vor fi calculate automat și rambursate în contul de plată',
'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'buyMoreTranscriptionTime': 'Cumpărați mai mult timp de transcriere',
'sixThousandMinutes': '6,000 minutes', 'sixThousandMinutes': '6.000 de minute',
'threeThousandMinutes': '3,000 minutes', 'threeThousandMinutes': '3.000 de minute',
'sixHundredMinutes': '600 minutes', 'sixHundredMinutes': '600 de minute',
'oneHundredTwentyMinutes': '120 minutes', 'oneHundredTwentyMinutes': '120 de minute',
'validityPeriod': '*Validity Period: ', 'validityPeriod': '*Perioadă de valabilitate: ',
'validityNote': 'validityNote':
'Activated immediately after purchase, valid for 2 years after activation.', 'Activat imediat după achiziție, valabil 2 ani de la activare.',
'purchase': 'Purchase', 'purchase': 'Achiziționați',
// Meeting模块 - 录音语言 // Meeting模块 - 录音语言
'recordLanguage': 'Limba înregistrării', 'recordLanguage': 'Limba înregistrării',
'cantonese': 'Cantonese', 'cantonese': 'Cantoneză',
'sichuan': 'Sichuan Dialect', 'sichuan': 'Dialect Sichuan',
'shanghai': 'Shanghai Dialect', 'shanghai': 'Dialect Shanghai',
// Meeting模块 - 错误提示 // Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Unknown Language', 'meetingUnknownLanguage': 'Limbă necunoscută',
'analysisFailed': 'Analiza a eșuat, vă rugăm să reîncercați mai târziu', 'analysisFailed': 'Analiza a eșuat, vă rugăm să reîncercați mai târziu',
'transcriptionFailed': 'transcriptionFailed':
'Transcrierea a eșuat, vă rugăm să reîncercați mai târziu', 'Transcrierea a eșuat, vă rugăm să reîncercați mai târziu',
@ -824,7 +824,7 @@ const Map<String, String> roRO = {
"deviceTypeClassicBluetoothHeadset": "Căști Bluetooth clasice", "deviceTypeClassicBluetoothHeadset": "Căști Bluetooth clasice",
"deviceTypeBleBluetoothHeadset": "Căști Bluetooth BLE", "deviceTypeBleBluetoothHeadset": "Căști Bluetooth BLE",
"deviceTypeSmartVoiceRecorder": "Reportofon inteligent", "deviceTypeSmartVoiceRecorder": "Reportofon inteligent",
"deviceTypeSmartEye": "Smart Glasses", "deviceTypeSmartEye": 'Ochelari inteligenți',
"unbind": "Deleagă", "unbind": "Deleagă",
"noDevicesBound": "Nu există dispozitive asociate încă", "noDevicesBound": "Nu există dispozitive asociate încă",
"pleaseBindDeviceFirst": "pleaseBindDeviceFirst":
@ -839,7 +839,7 @@ const Map<String, String> roRO = {
// Agent模块 - 主界面 // Agent模块 - 主界面
"Lily": "Lily", "Lily": "Lily",
"clearChatHistory": "Șterge istoricul chatului", "clearChatHistory": "Șterge istoricul chatului",
"online": "Online", "online": 'Online',
"ttsSpeed": "Viteza vocii", "ttsSpeed": "Viteza vocii",
"ttsSpeedDefaultHint": "Implicit +25%", "ttsSpeedDefaultHint": "Implicit +25%",
"inputMessage": "Introduceți mesaj...", "inputMessage": "Introduceți mesaj...",
@ -928,9 +928,9 @@ const Map<String, String> roRO = {
// Agent模块 - 工具调用 // Agent模块 - 工具调用
'toolCall': 'Apel instrument', 'toolCall': 'Apel instrument',
'noResult': 'Niciun rezultat', 'noResult': 'Niciun rezultat',
'noToolCallContentToCopy': 'Nu exista continut de apel instrument de copiat', 'noToolCallContentToCopy': 'Nu există conținut de apel instrument de copiat',
'toolCallDetails': 'Detalii apel instrument:', 'toolCallDetails': 'Detalii apel instrument:',
'toolCallContentCopied': 'Continut copiat in clipboard', 'toolCallContentCopied': 'Conținut copiat în clipboard',
// Agent模块 - 音乐卡片 // Agent模块 - 音乐卡片
'recommendedMusic': 'Iată câteva melodii recomandate:', 'recommendedMusic': 'Iată câteva melodii recomandate:',
@ -1108,9 +1108,9 @@ const Map<String, String> roRO = {
"processingFailed": "Procesare eșuată", "processingFailed": "Procesare eșuată",
"imageProcessingOrTranslationFailed": "imageProcessingOrTranslationFailed":
"Procesarea imaginii sau traducerea a eșuat. Încercați din nou.\nEroare: {error}", "Procesarea imaginii sau traducerea a eșuat. Încercați din nou.\nEroare: {error}",
"imageTooLarge": "Image size exceeds 4MB limit", "imageTooLarge": "Dimensiunea imaginii depășește limita de 4MB",
"imageTooLargeHint": "imageTooLargeHint":
"Image size exceeds 4MB. Reduce quality or dimensions and retry", "Dimensiunea imaginii depășește 4MB. Reduceți calitatea sau dimensiunile și reîncercați",
"emptyTranslationResult": "emptyTranslationResult":
"API-ul de traducere a imaginii a returnat un rezultat gol", "API-ul de traducere a imaginii a returnat un rezultat gol",
"imageTranslationFailedTryLater": "imageTranslationFailedTryLater":
@ -1127,7 +1127,7 @@ const Map<String, String> roRO = {
"sourceLanguage": "Limba sursă", "sourceLanguage": "Limba sursă",
"targetLanguage": "Limba țintă", "targetLanguage": "Limba țintă",
"translationTime": "Timp de traducere", "translationTime": "Timp de traducere",
"shareInDevelopment": "Sharing feature under development", "shareInDevelopment": "Funcția de partajare este în curs de dezvoltare",
// 翻译模块 - 录音文件 // 翻译模块 - 录音文件
"translateAudioFiles": "Tradu fișierele audio", "translateAudioFiles": "Tradu fișierele audio",
@ -1167,7 +1167,7 @@ const Map<String, String> roRO = {
// 个人资料模块 // 个人资料模块
"editProfile": "Editează informațiile personale", "editProfile": "Editează informațiile personale",
"avatar": "Avatar", "avatar": 'Avatar',
"nickname": "Pseudonim", "nickname": "Pseudonim",
"save": "Salvează", "save": "Salvează",
"about": "Despre", "about": "Despre",
@ -1180,8 +1180,8 @@ const Map<String, String> roRO = {
'deleteAccount': 'Șterge contul', 'deleteAccount': 'Șterge contul',
'deleteAccountTips': 'deleteAccountTips':
'Sunteți sigur că doriți să ștergeți permanent contul? Această acțiune nu poate fi anulată.', 'Sunteți sigur că doriți să ștergeți permanent contul? Această acțiune nu poate fi anulată.',
'clean': 'Clear Cache', 'clean': 'Șterge memoria cache',
'cleanTips': 'Are you sure you want to clear personal cache?', 'cleanTips': 'Sigur doriți să ștergeți memoria cache personală?',
'networkConnectionFailed': 'networkConnectionFailed':
'Conexiunea la rețea a eșuat, verificați setările de rețea și reîncercați', 'Conexiunea la rețea a eșuat, verificați setările de rețea și reîncercați',
'serverTemporarilyUnavailable': 'serverTemporarilyUnavailable':
@ -1589,22 +1589,22 @@ const Map<String, String> roRO = {
"泰语": "Thailandeză", "泰语": "Thailandeză",
"越南语": "Vietnameză", "越南语": "Vietnameză",
"印尼语": "Indoneziană", "印尼语": "Indoneziană",
"印地语": "Hindi", "印地语": 'Hindi',
"土耳其语": "Turcă", "土耳其语": "Turcă",
"马来语": "Malaeză", "马来语": "Malaeză",
"孟加拉语": "Bengali", "孟加拉语": 'Bengali',
"泰米尔语": "Tamilă", "泰米尔语": "Tamilă",
"泰卢固语": "Telugu", "泰卢固语": 'Telugu',
"马拉提语": "Marathi", "马拉提语": 'Marathi',
"乌尔都语": "Urdu", "乌尔都语": 'Urdu',
"波斯语": "Persană", "波斯语": "Persană",
"斯瓦希里语": "Swahili", "斯瓦希里语": 'Swahili',
// 国家列表 // 国家列表
"邮箱": "E-mail", "邮箱": "E-mail",
"中国": "China", "中国": 'China',
"美国": "SUA", "美国": "SUA",
"加拿大": "Canada", "加拿大": 'Canada',
"俄罗斯": "Rusia", "俄罗斯": "Rusia",
"英国": "Regatul Unit", "英国": "Regatul Unit",
"德国": "Germania", "德国": "Germania",
@ -1616,19 +1616,19 @@ const Map<String, String> roRO = {
"土耳其": "Turcia", "土耳其": "Turcia",
"日本": "Japonia", "日本": "Japonia",
"韩国": "Coreea de Sud", "韩国": "Coreea de Sud",
"新加坡": "Singapore", "新加坡": 'Singapore',
"马来西亚": "Malaezia", "马来西亚": "Malaezia",
"泰国": "Thailanda", "泰国": "Thailanda",
"越南": "Vietnam", "越南": 'Vietnam',
"印度": "India", "印度": 'India',
"巴基斯坦": "Pakistan", "巴基斯坦": 'Pakistan',
"菲律宾": "Filipine", "菲律宾": "Filipine",
"印度尼西亚": "Indonezia", "印度尼西亚": "Indonezia",
"阿联酋": "EAU", "阿联酋": "EAU",
"墨西哥": "Mexic", "墨西哥": "Mexic",
"巴西": "Brazilia", "巴西": "Brazilia",
"阿根廷": "Argentina", "阿根廷": 'Argentina',
"澳大利亚": "Australia", "澳大利亚": 'Australia',
"新西兰": "Noua Zeelandă", "新西兰": "Noua Zeelandă",
"中国香港": "Hong Kong (China)", "中国香港": "Hong Kong (China)",
"中国澳门": "Macao (China)", "中国澳门": "Macao (China)",
@ -1640,82 +1640,82 @@ const Map<String, String> roRO = {
"匈牙利": "Ungaria", "匈牙利": "Ungaria",
"罗马尼亚": "România", "罗马尼亚": "România",
"瑞士": "Elveția", "瑞士": "Elveția",
"奥地利": "Austria", "奥地利": 'Austria',
"丹麦": "Danemarca", "丹麦": "Danemarca",
"瑞典": "Suedia", "瑞典": "Suedia",
"挪威": "Norvegia", "挪威": "Norvegia",
"波兰": "Polonia", "波兰": "Polonia",
"秘鲁": "Peru", "秘鲁": 'Peru',
"智利": "Chile", "智利": 'Chile',
"哥伦比亚": "Columbia", "哥伦比亚": "Columbia",
"委内瑞拉": "Venezuela", "委内瑞拉": 'Venezuela',
"葡萄牙": "Portugalia", "葡萄牙": "Portugalia",
"卢森堡": "Luxemburg", "卢森堡": "Luxemburg",
"爱尔兰": "Irlanda", "爱尔兰": "Irlanda",
"冰岛": "Islanda", "冰岛": "Islanda",
"阿尔巴尼亚": "Albania", "阿尔巴尼亚": 'Albania',
"马耳他": "Malta", "马耳他": 'Malta',
"塞浦路斯": "Cipru", "塞浦路斯": "Cipru",
"芬兰": "Finlanda", "芬兰": "Finlanda",
"保加利亚": "Bulgaria", "保加利亚": 'Bulgaria',
"立陶宛": "Lituania", "立陶宛": "Lituania",
"拉脱维亚": "Letonia", "拉脱维亚": "Letonia",
"爱沙尼亚": "Estonia", "爱沙尼亚": 'Estonia',
"乌克兰": "Ucraina", "乌克兰": "Ucraina",
"塞尔维亚": "Serbia", "塞尔维亚": 'Serbia',
"克罗地亚": "Croația", "克罗地亚": "Croația",
"斯洛文尼亚": "Slovenia", "斯洛文尼亚": 'Slovenia',
"捷克": "Cehia", "捷克": "Cehia",
"斯洛伐克": "Slovacia", "斯洛伐克": "Slovacia",
"危地马拉": "Guatemala", "危地马拉": 'Guatemala',
"萨尔瓦多": "El Salvador", "萨尔瓦多": 'El Salvador',
"洪都拉斯": "Honduras", "洪都拉斯": 'Honduras',
"尼加拉瓜": "Nicaragua", "尼加拉瓜": 'Nicaragua',
"哥斯达黎加": "Costa Rica", "哥斯达黎加": 'Costa Rica',
"巴拿马": "Panama", "巴拿马": 'Panama',
"海地": "Haiti", "海地": 'Haiti',
"玻利维亚": "Bolivia", "玻利维亚": 'Bolivia',
"厄瓜多尔": "Ecuador", "厄瓜多尔": 'Ecuador',
"巴拉圭": "Paraguay", "巴拉圭": 'Paraguay',
"乌拉圭": "Uruguay", "乌拉圭": 'Uruguay',
"摩洛哥": "Maroc", "摩洛哥": "Maroc",
"阿尔及利亚": "Algeria", "阿尔及利亚": 'Algeria',
"突尼斯": "Tunisia", "突尼斯": 'Tunisia',
"尼日利亚": "Nigeria", "尼日利亚": 'Nigeria',
"加纳": "Ghana", "加纳": 'Ghana',
"埃塞俄比亚": "Etiopia", "埃塞俄比亚": "Etiopia",
"肯尼亚": "Kenya", "肯尼亚": 'Kenya',
"坦桑尼亚": "Tanzania", "坦桑尼亚": 'Tanzania',
"乌干达": "Uganda", "乌干达": 'Uganda',
"孟加拉国": "Bangladesh", "孟加拉国": 'Bangladesh',
"以色列": "Israel", "以色列": 'Israel',
"黎巴嫩": "Liban", "黎巴嫩": "Liban",
"约旦": "Iordania", "约旦": "Iordania",
"伊拉克": "Irak", "伊拉克": "Irak",
"科威特": "Kuweit", "科威特": "Kuweit",
"巴林": "Bahrain", "巴林": 'Bahrain',
"卡塔尔": "Qatar", "卡塔尔": 'Qatar',
"阿曼": "Oman", "阿曼": 'Oman',
"阿富汗": "Afganistan", "阿富汗": "Afganistan",
"斯里兰卡": "Sri Lanka", "斯里兰卡": 'Sri Lanka',
"缅甸": "Myanmar", "缅甸": 'Myanmar',
"尼泊尔": "Nepal", "尼泊尔": 'Nepal',
"蒙古": "Mongolia", "蒙古": 'Mongolia',
"柬埔寨": "Cambodgia", "柬埔寨": "Cambodgia",
"老挝": "Laos", "老挝": 'Laos',
"文莱": "Brunei", "文莱": 'Brunei',
"东帝汶": "Timorul de Est", "东帝汶": "Timorul de Est",
"斐济": "Fiji", "斐济": 'Fiji',
"所罗门群岛": "Insulele Solomon", "所罗门群岛": "Insulele Solomon",
"刚果民主共和国": "Democratic Republic of the Congo", "刚果民主共和国": "Republica Democratică Congo",
"安哥拉": "Angola", "安哥拉": 'Angola',
"苏丹": "Sudan", "苏丹": 'Sudan',
"马尔代夫": "Maldives", "马尔代夫": "Maldive",
"不丹": "Bhutan", "不丹": 'Bhutan',
"摩纳哥": "Monaco", "摩纳哥": 'Monaco',
"圣马力诺": "San Marino", "圣马力诺": 'San Marino',
"牙买加": "Jamaica", "牙买加": 'Jamaica',
"巴哈马": "Bahamas", "巴哈马": 'Bahamas',
"巴布亚新几内亚": "Papua New Guinea", "巴布亚新几内亚": "Papua Noua Guinee",
"萨摩亚": "Samoa", "萨摩亚": 'Samoa',
}; };

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

@ -386,21 +386,21 @@ const Map<String, String> ruRU = {
// 商品模块 - 会议商品页 // 商品模块 - 会议商品页
'meetingRecording': 'Запись встреч', 'meetingRecording': 'Запись встреч',
'transcriptionAndSummary': 'Transcription & Summary', 'transcriptionAndSummary': 'Транскрипция и резюме',
'keywordSearch': 'Keyword Search', 'keywordSearch': 'Поиск по ключевым словам',
'collaborationSharing': 'Collaboration & Sharing', 'collaborationSharing': 'Совместная работа и обмен',
'meetingHeaderDesc1': 'meetingHeaderDesc1':
'Запись аудио, транскрипция, поиск по ключевым словам и автосводка.', 'Запись аудио, транскрипция, поиск по ключевым словам и автосводка.',
'meetingHeaderDesc2': 'meetingHeaderDesc2':
'Suitable for business meetings, class notes, and interview minutes.', 'Подходит для деловых встреч, конспектов занятий и протоколов интервью.',
'meetingAutoRecording': 'Автозапись и сегментация', 'meetingAutoRecording': 'Автозапись и сегментация',
'meetingSpeakerTagging': 'Speaker labeling', 'meetingSpeakerTagging': 'Маркировка говорящих',
'meetingLongAudioTranscription': 'Long audio transcription', 'meetingLongAudioTranscription': 'Транскрипция длинного аудио',
'meetingKeyPointSummary': 'Key point extraction', 'meetingKeyPointSummary': 'Извлечение ключевых моментов',
'meetingTopicNameSearch': 'Search by topic/name', 'meetingTopicNameSearch': 'Поиск по теме/имени',
'meetingTimelineJump': 'Timeline jump', 'meetingTimelineJump': 'Переход по временной шкале',
'meetingExportSummary': 'Export minutes', 'meetingExportSummary': 'Экспорт протокола',
'meetingMultiPlatformShare': 'Share across platforms', 'meetingMultiPlatformShare': 'Обмен на разных платформах',
'meetingDisclaimer': 'meetingDisclaimer':
'Используйте в тихой обстановке; качество зависит от микрофона и сети.', 'Используйте в тихой обстановке; качество зависит от микрофона и сети.',
@ -471,18 +471,19 @@ const Map<String, String> ruRU = {
'guideNavSend': 'Lily спланирует маршрут', 'guideNavSend': 'Lily спланирует маршрут',
'guideNavEnd': 'Навигация настроена — попробуйте другие команды', 'guideNavEnd': 'Навигация настроена — попробуйте другие команды',
'guideMeetingStart': 'guideMeetingStart':
'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'Скажите Lily: «Создай напоминание о встрече на завтра в 15:00»',
'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingInput': 'Создай напоминание о встрече на завтра в 15:00',
'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingSend': 'Lily создаст напоминание о встрече',
'guideMeetingEnd': 'Reminder created—try other commands', 'guideMeetingEnd': 'Напоминание создано — попробуйте другие команды',
'guidePhoneStart': 'Tell Lily: “Call Mom”', 'guidePhoneStart': 'Скажите Lily: «Позвони маме»',
'guidePhoneInput': 'Call Mom', 'guidePhoneInput': 'Позвони маме',
'guidePhoneSend': 'Lily will make the call', 'guidePhoneSend': 'Lily совершит звонок',
'guidePhoneEnd': 'Call placed—try other commands', 'guidePhoneEnd': 'Звонок сделан — попробуйте другие команды',
'guideSmsStart': 'Tell Lily: “Send Dad a text: I’ll be home for dinner”', 'guideSmsStart':
'guideSmsInput': 'Text Dad: I’ll be home for dinner', 'Скажите Lily: «Отправь папе сообщение: Я буду дома к ужину»',
'guideSmsSend': 'Lily will send the message', 'guideSmsInput': 'Напиши папе: Я буду дома к ужину',
'guideSmsEnd': 'Message sent—voice control is convenient', 'guideSmsSend': 'Lily отправит сообщение',
'guideSmsEnd': 'Сообщение отправлено — голосовое управление удобно',
// Meeting模块 - 首页与导航 // Meeting模块 - 首页与导航
"startMeeting": "Начать встречу", "startMeeting": "Начать встречу",
@ -551,30 +552,30 @@ const Map<String, String> ruRU = {
'Чтобы показывать плавающую панель записи (таймер/пауза/продолжить) во время записи, нам нужно разрешение на наложение.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 'Чтобы показывать плавающую панель записи (таймер/пауза/продолжить) во время записи, нам нужно разрешение на наложение.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。
'overlayPermissionOpenSettingsFailed': 'overlayPermissionOpenSettingsFailed':
'Не удалось автоматически открыть системные настройки. Пожалуйста, откройте Настройки и вручную включите разрешение на наложение.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'Не удалось автоматически открыть системные настройки. Пожалуйста, откройте Настройки и вручную включите разрешение на наложение.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。
'transcribing': 'Transcribing...', 'transcribing': 'Транскрипция...',
'summarizing': 'Summarizing...', 'summarizing': 'Создание резюме...',
'analyzing': 'Analyzing...', 'analyzing': 'Анализ...',
'summaryComplete': 'Summary Complete', 'summaryComplete': 'Резюме готово',
'generate': 'Generate', 'generate': 'Создать',
'overview': 'Overview', 'overview': 'Обзор',
'transcription': 'Transcription', 'transcription': 'Транскрипция',
'summary': 'Summary', 'summary': 'Резюме',
'mindMap': 'Mind Map', 'mindMap': 'Интеллект-карта',
'editSpeaker': 'Edit', 'editSpeaker': 'Редактировать',
'nameSpeaker': 'Name Speaker', 'nameSpeaker': 'Назвать говорящего',
// Meeting模块 - 转写与总结 // Meeting模块 - 转写与总结
'reSummarize': 'Re-summarize', 'reSummarize': 'Пересоздать резюме',
'dateAndTime': 'Date & Time', 'dateAndTime': 'Дата и время',
'location': 'Location', 'location': 'Место',
'attendees': 'Attendees', 'attendees': 'Участники',
'inputLocation': 'Enter Location', 'inputLocation': 'Введите место',
'inputAttendees': 'Enter Attendees', 'inputAttendees': 'Введите участников',
// Meeting模块 - 模版与生成 // Meeting模块 - 模版与生成
'selectSummaryTemplate': 'Select Summary Template', 'selectSummaryTemplate': 'Выбрать шаблон резюме',
'useThisTemplate': 'Use This Template', 'useThisTemplate': 'Использовать этот шаблон',
'lastUsed': 'Last Used', 'lastUsed': 'Последнее использование',
'create': 'Создать', 'create': 'Создать',
'templateDetails': 'Детали шаблона', 'templateDetails': 'Детали шаблона',
'tag': 'Тег', 'tag': 'Тег',
@ -591,153 +592,153 @@ const Map<String, String> ruRU = {
'inputDescHint': 'Пожалуйста, введите описание', 'inputDescHint': 'Пожалуйста, введите описание',
'custom': 'Пользовательский', 'custom': 'Пользовательский',
'pleaseEnter': 'Пожалуйста, введите', 'pleaseEnter': 'Пожалуйста, введите',
'viewAll': 'View All', 'viewAll': 'Показать все',
'recordingLanguage': 'Язык записи', 'recordingLanguage': 'Язык записи',
'chineseSimplified': 'Chinese Mandarin (Simplified)', 'chineseSimplified': 'Китайский мандарин (упрощённый)',
'meetingGenerateNow': 'Generate Now', 'meetingGenerateNow': 'Создать сейчас',
'keyEventsAnalyzed': 'Analyzed {count} key events.', 'keyEventsAnalyzed': 'Проанализировано {count} ключевых событий.',
'aiAnalysisDesc': 'aiAnalysisDesc':
'AI‑анализ определяет ключевые события в записи, позволяя выбрать важные события для генерации.', 'AI‑анализ определяет ключевые события в записи, позволяя выбрать важные события для генерации.',
// Meeting模块 - 文件操作 // Meeting模块 - 文件操作
'importing': 'Importing...', 'importing': 'Импорт...',
'batchImporting': 'Batch importing...', 'batchImporting': 'Пакетный импорт...',
'importingLocalRecordings': 'Импорт локальных записей...', 'importingLocalRecordings': 'Импорт локальных записей...',
'importFailed': 'Не удалось импортировать файл: {filePath}, ошибка: {error}', 'importFailed': 'Не удалось импортировать файл: {filePath}, ошибка: {error}',
'importSuccess': 'Успешно импортировано локальных записей: {count}', 'importSuccess': 'Успешно импортировано локальных записей: {count}',
'importError': 'Импорт не удался: {error}', 'importError': 'Импорт не удался: {error}',
'pleaseSelectAudioFile': 'Пожалуйста, выберите аудиофайл', 'pleaseSelectAudioFile': 'Пожалуйста, выберите аудиофайл',
'shareAudio': 'Share Meeting Audio', 'shareAudio': 'Поделиться аудио встречи',
'shareComplete': 'Share complete!', 'shareComplete': 'Общий доступ открыт!',
'shareFailed': 'Не удалось поделиться: {error}', 'shareFailed': 'Не удалось поделиться: {error}',
'fileProcessingFailed': 'fileProcessingFailed':
'Не удалось обработать файл: {filePath}, ошибка: {error}', 'Не удалось обработать файл: {filePath}, ошибка: {error}',
// Meeting模块 - 思维导图 // Meeting模块 - 思维导图
'saveMindMap': 'Сохранить интеллект-карту', 'saveMindMap': 'Сохранить интеллект-карту',
'shareMindMap': 'Share Mind Map', 'shareMindMap': 'Поделиться интеллект-картой',
'shareSuccess': 'Успешно поделились', 'shareSuccess': 'Успешно поделились',
// Meeting模块 - AI问答 // Meeting模块 - AI问答
'askAI': 'Ask AI ...', 'askAI': 'Спросить AI...',
'askAIPrompt': 'What can I help you with today?', 'askAIPrompt': 'Чем я могу помочь вам сегодня?',
'continueAsk': 'Continue Asking', 'continueAsk': 'Продолжить вопрос',
'todoList': 'To-Do List', 'todoList': 'Список задач',
'extractConclusion': 'Extract Conclusion', 'extractConclusion': 'Извлечь вывод',
'generateKeyIndicators': 'Generate Key Indicators', 'generateKeyIndicators': 'Создать ключевые показатели',
// Meeting模块 - 分享与导出 // Meeting模块 - 分享与导出
'shareLink': 'Share Link', 'shareLink': 'Поделиться ссылкой',
'copyTranscript': 'Copy Transcript', 'copyTranscript': 'Скопировать транскрипт',
'copySummary': 'Copy Summary', 'copySummary': 'Скопировать резюме',
'exportAudio': 'Export Audio', 'exportAudio': 'Экспорт аудио',
'exportTranscript': 'Export Transcript', 'exportTranscript': 'Экспорт транскрипта',
'shareMeetingAudio': 'Share Meeting Audio', 'shareMeetingAudio': 'Поделиться аудио встречи',
'exportSummary': 'Export Summary', 'exportSummary': 'Экспорт резюме',
'exportAs': 'Export As', 'exportAs': 'Экспортировать как',
'exportingPDF': 'Exporting PDF...', 'exportingPDF': 'Экспорт PDF...',
'export': 'Экспорт', 'export': 'Экспорт',
// Meeting模块 - 发言者 // Meeting模块 - 发言者
'applyToAllParagraphs': 'Применить ко всем абзацам этого говорящего', 'applyToAllParagraphs': 'Применить ко всем абзацам этого говорящего',
'summaryWillBeUpdatedAutomatically': 'summaryWillBeUpdatedAutomatically':
'Сводка будет автоматически обновляться на основе шаблона', 'Сводка будет автоматически обновляться на основе шаблона',
'nameCurrentSpeaker': 'Name Current Speaker', 'nameCurrentSpeaker': 'Назвать текущего говорящего',
'recentlyUsedNames': 'Recently Used Names', 'recentlyUsedNames': 'Недавно использованные имена',
'applyToCurrentParagraph': 'Apply to Current Paragraph', 'applyToCurrentParagraph': 'Применить к текущему абзацу',
'totalTime': 'Total Time', 'totalTime': 'Общее время',
'summarySpeakerWillBeUpdatedAutomatically': 'summarySpeakerWillBeUpdatedAutomatically':
'Summary speakers will be updated automatically', 'Говорящие в резюме будут обновлены автоматически',
// Meeting模块 - 云端同步 // Meeting模块 - 云端同步
'syncToCloud': 'Sync to Cloud', 'syncToCloud': 'Синхронизировать с облаком',
'syncToCloudTip': 'syncToCloudTip':
'Автоматически синхронизируйте записи с облаком — вы сможете воспроизводить, управлять и делиться ими через любое приложение VOITRANS или VOITRANS Web (web.voitrans.com).', 'Автоматически синхронизируйте записи с облаком — вы сможете воспроизводить, управлять и делиться ими через любое приложение VOITRANS или VOITRANS Web (web.voitrans.com).',
'syncToVoitransApp': 'Sync VOITRANS APP', 'syncToVoitransApp': 'Синхронизировать приложение VOITRANS',
'transcriptionRecord': 'Запись транскрипции', 'transcriptionRecord': 'Запись транскрипции',
// Meeting模块 - 我的页面 // Meeting模块 - 我的页面
'transcriptionRecords': 'Записи транскрипции', 'transcriptionRecords': 'Записи транскрипции',
'templateCommunity': 'Template Community', 'templateCommunity': 'Сообщество шаблонов',
'comingSoon': 'Coming Soon', 'comingSoon': 'Скоро',
'integration': 'Integration', 'integration': 'Интеграция',
'voitransPrivateCloud': 'VOITRANS PRIVATE CLOUD', 'voitransPrivateCloud': 'VOITRANS PRIVATE CLOUD',
'enabled': 'Включено', 'enabled': 'Включено',
'disabled': 'Выключено', 'disabled': 'Выключено',
'myVoitransDevice': 'Моё устройство VOITRANS', 'myVoitransDevice': 'Моё устройство VOITRANS',
'helpAndFeedback': 'Help & Feedback', 'helpAndFeedback': 'Помощь и отзывы',
'aboutVoitrans': 'About VOITRANS', 'aboutVoitrans': 'О VOITRANS',
'meetingDays': 'Days', 'meetingDays': 'Дней',
'meetingHours': 'Hours', 'meetingHours': 'Часов',
'voitransAiMember': 'Voitrans AI Member', 'voitransAiMember': 'Подписчик Voitrans AI',
'unlockStarterMember': 'Unlock Starter Member', 'unlockStarterMember': 'Разблокировать стартовую подписку',
'bindDeviceToActivate': 'bindDeviceToActivate':
'Привяжите устройство Voitrans, чтобы активировать подписку Starter', 'Привяжите устройство Voitrans, чтобы активировать подписку Starter',
'unlockNow': 'Unlock Now', 'unlockNow': 'Разблокировать сейчас',
// Meeting模块 - 会员与升级 // Meeting模块 - 会员与升级
'comparison': 'Comparison', 'comparison': 'Сравнение',
'detailedInfo': 'Detailed Information', 'detailedInfo': 'Подробная информация',
'monthlyTranscriptionTime': 'Monthly Transcription Time', 'monthlyTranscriptionTime': 'Ежемесячное время транскрипции',
'unlimited': 'Unlimited', 'unlimited': 'Неограниченно',
'professionalTemplates': 'Professional Templates', 'professionalTemplates': 'Профессиональные шаблоны',
'limited': 'Limited', 'limited': 'Ограниченно',
'fullTemplates': 'Full Templates', 'fullTemplates': 'Полные шаблоны',
'professionalTerms': 'Professional Terms', 'professionalTerms': 'Профессиональные термины',
'customTemplates': 'Custom Templates', 'customTemplates': 'Пользовательские шаблоны',
'visualMindMap': 'Visual Mind Map', 'visualMindMap': 'Визуальная интеллект-карта',
'speakerIdentification': 'Speaker Identification', 'speakerIdentification': 'Идентификация говорящих',
'aiVoiceEnhancement': 'AI Voice Enhancement', 'aiVoiceEnhancement': 'Улучшение голоса с AI',
'audioImport': 'Audio Import', 'audioImport': 'Импорт аудио',
'multipleExportFormats': 'Multiple Export Formats', 'multipleExportFormats': 'Несколько форматов экспорта',
'professionalSummaryTemplates': 'Professional Summary Templates', 'professionalSummaryTemplates': 'Профессиональные шаблоны резюме',
'professionalTemplateDesc': 'professionalTemplateDesc':
'Professional template design to improve your work efficiency. Customized according to industry needs.', 'Профессиональные шаблоны для повышения эффективности работы. Настроены по отраслевым потребностям.',
'customTemplateDesc': 'customTemplateDesc':
'You can customize summary prompts according to your needs and use them to generate the required summaries.', 'Вы можете настроить шаблоны резюме по своим потребностям и использовать их для создания необходимых резюме.',
'askAiDesc': 'askAiDesc':
'Умно извлекайте более глубокую информацию из записей, одним нажатием создавайте таблицы данных, ключевые выводы обсуждения, списки дел, письма‑отчеты и другой форматированный контент.', 'Умно извлекайте более глубокую информацию из записей, одним нажатием создавайте таблицы данных, ключевые выводы обсуждения, списки дел, письма‑отчеты и другой форматированный контент.',
'visualMindMapDesc': 'visualMindMapDesc':
'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', 'Выйдите за рамки резюме — организуйте и визуализируйте ключевые моменты с помощью интеллект-карт для более эффективного понимания полного текста.',
'templateCommunityDesc': 'templateCommunityDesc':
'Discover, share, and get inspiration from the template library created by users.', 'Открывайте, делитесь и вдохновляйтесь шаблонами из библиотеки, созданной пользователями.',
'speakerIdentificationDesc': 'speakerIdentificationDesc':
'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', 'Транскрипция аудио поддерживает идентификацию говорящих, что позволяет более наглядно восстановить содержание встречи или звонка. При этом резюме будет более точным.',
'privateCloudSyncDesc': 'privateCloudSyncDesc':
'Ваши записи и транскрипции будут надежно храниться на выделенных облачных серверах с полным шифрованием при загрузке и скачивании для обеспечения конфиденциальности и безопасности.', 'Ваши записи и транскрипции будут надежно храниться на выделенных облачных серверах с полным шифрованием при загрузке и скачивании для обеспечения конфиденциальности и безопасности.',
'aiVoiceEnhancementDesc': 'aiVoiceEnhancementDesc':
'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', 'Улучшение голоса с AI поддерживает несколько настроек шумоподавления, интеллектуально устраняет фоновый шум, улучшает чёткость голоса и качество воспроизведения аудио.',
'audioImportDesc': 'audioImportDesc':
'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', 'Легко импортируйте аудиофайлы из локальных или сторонних приложений, таких как голосовые заметки, Google Drive и т.д.',
'multipleExportFormatsDesc': 'multipleExportFormatsDesc':
'Экспортируйте аудиозаписи, текст транскрипции и сводки в разных форматах (TXT, PDF, JPEG) под ваши задачи.', 'Экспортируйте аудиозаписи, текст транскрипции и сводки в разных форматах (TXT, PDF, JPEG) под ваши задачи.',
'upgradeMembership': 'Upgrade Your Membership', 'upgradeMembership': 'Обновить подписку',
'yearlySubscription': 'Yearly Subscription', 'yearlySubscription': 'Годовая подписка',
'monthlySubscription': 'Monthly Subscription', 'monthlySubscription': 'Ежемесячная подписка',
'proMonthly': 'Pro ¥60/month', 'proMonthly': 'Pro ¥60/мес.',
'proMonthlyDesc': 'proMonthlyDesc':
'7-day free trial, then ¥800/year. Cancel anytime before trial ends.', '7-дневная бесплатная пробная версия, затем ¥800/год. Отмените до окончания пробного периода.',
'sevenDayTrial': '7-day Free Trial', 'sevenDayTrial': '7-дневная бесплатная пробная версия',
'unlimitedMonthly': 'Unlimited ¥120/month', 'unlimitedMonthly': 'Unlimited ¥120/мес.',
'unlimitedMonthlyDesc': 'unlimitedMonthlyDesc':
'7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', '7-дневная бесплатная пробная версия, затем ¥1600/год. Отмените до окончания пробного периода.',
'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'trialNote': '*Бесплатная пробная версия на 7 дней, затем ежегодная оплата, отмените в любое время.',
'proPrice': 'Pro ¥120', 'proPrice': 'Pro ¥120',
'proMonthlyPrice': '¥120/month', 'proMonthlyPrice': '¥120/мес.',
'subscribe': 'Subscribe', 'subscribe': 'Подписаться',
'unlimitedPrice': 'Unlimited ¥198', 'unlimitedPrice': 'Unlimited ¥198',
'unlimitedMonthlyPrice': '¥198/month', 'unlimitedMonthlyPrice': '¥198/мес.',
'upgradeNote': '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', 'buyMoreTranscriptionTime': 'Купить больше времени транскрипции',
'sixThousandMinutes': '6,000 minutes', 'sixThousandMinutes': '6 000 минут',
'threeThousandMinutes': '3,000 minutes', 'threeThousandMinutes': '3 000 минут',
'sixHundredMinutes': '600 minutes', 'sixHundredMinutes': '600 минут',
'oneHundredTwentyMinutes': '120 minutes', 'oneHundredTwentyMinutes': '120 минут',
'validityPeriod': '*Validity Period: ', 'validityPeriod': '*Срок действия: ',
'validityNote': 'validityNote':
'Activated immediately after purchase, valid for 2 years after activation.', 'Активируется сразу после покупки, действует 2 года с момента активации.',
'purchase': 'Purchase', 'purchase': 'Купить',
// Meeting模块 - 录音语言 // Meeting模块 - 录音语言
'recordLanguage': 'Язык записи', 'recordLanguage': 'Язык записи',

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

@ -219,7 +219,7 @@ const Map<String, String> skSK = {
"scene": "Scenár", "scene": "Scenár",
// 用量统计模块 // 用量统计模块
"aiChat": "AI Chat", "aiChat": "AI chat",
"translationStats": "Štatistika prekladu", "translationStats": "Štatistika prekladu",
"meetingStats": "Štatistika stretnutí", "meetingStats": "Štatistika stretnutí",
"today": "Dnes", "today": "Dnes",
@ -238,36 +238,36 @@ const Map<String, String> skSK = {
"translationApi": "API prekladu", "translationApi": "API prekladu",
"asr": "ASR", "asr": "ASR",
"tts": "TTS", "tts": "TTS",
"dataVolumeStats": "Data Volume Stats", "dataVolumeStats": "Štatistika objemu dát",
"sourceTextCharacters": "Source Text Characters", "sourceTextCharacters": "Znaky zdrojového textu",
"ttsTextCharacters": "TTS Text Characters", "ttsTextCharacters": "Znaky TTS textu",
"effectiveAudioDuration": "Effective Audio Duration", "effectiveAudioDuration": "Efektívna dĺžka zvuku",
"totalSessionDuration": "Total Session Duration", "totalSessionDuration": "Celková dĺžka relácie",
"costStats": "Cost Stats", "costStats": "Štatistika nákladov",
"estimatedCost": "Estimated Cost", "estimatedCost": "Odhadované náklady",
"dailyCostThreshold": "Daily Cost Threshold", "dailyCostThreshold": "Denný limit nákladov",
"monthlyCostThreshold": "Monthly Cost Threshold", "monthlyCostThreshold": "Mesačný limit nákladov",
"usageBehaviorStats": "Usage Behavior Stats", "usageBehaviorStats": "Štatistika správania pri používaní",
"mostUsedLanguagePair": "Most-used language pair", "mostUsedLanguagePair": "Najpoužívanejší jazykový pár",
"mostUsedMode": "Most-used mode", "mostUsedMode": "Najpoužívanejší režim",
"asrApiCalls": "ASR Calls", "asrApiCalls": "Volania ASR",
"totalAudioDuration": "Total Audio Duration", "totalAudioDuration": "Celková dĺžka zvuku",
"audioFileSize": "Audio File Size", "audioFileSize": "Veľkosť zvukového súboru",
"transcriptBytes": "Transcript Bytes", "transcriptBytes": "Bajty prepisu",
"loadFailed": "Načítanie zlyhalo", "loadFailed": "Načítanie zlyhalo",
"statsLoadFailedTryLater": "statsLoadFailedTryLater":
"Štatistiky sa nepodarilo načítať. Skúste to znova neskôr.", "Štatistiky sa nepodarilo načítať. Skúste to znova neskôr.",
"cleanupComplete": "Cleanup Complete", "cleanupComplete": "Čistenie dokončené",
"cleanedOldData": "Cleaned data older than 90 days", "cleanedOldData": "Vyčistené dáta staršie ako 90 dní",
"exportFeature": "Export Feature", "exportFeature": "Funkcia exportu",
"exportInDevelopment": "Data export is under development", "exportInDevelopment": "Export dát je vo vývoji",
// 商品模块 - 通用 // 商品模块 - 通用
'availablePackages': 'Available Packages', 'availablePackages': 'Dostupné balíky',
'remainingQuota': 'Remaining Quota', 'remainingQuota': 'Zostávajúci limit',
'totalQuota': 'Total Quota', 'totalQuota': 'Celkový limit',
'remaining': 'Remaining', 'remaining': 'Zostáva',
'featureDescription': 'Feature Description', 'featureDescription': 'Popis funkcie',
'paymentSuccess': 'Platba úspešná', 'paymentSuccess': 'Platba úspešná',
'paymentFailed': 'Platba zlyhala', 'paymentFailed': 'Platba zlyhala',
'gotIt': 'Rozumiem', 'gotIt': 'Rozumiem',
@ -326,109 +326,109 @@ const Map<String, String> skSK = {
'alipayPaymentLaunchFailed': 'Spustenie Alipay zlyhalo', 'alipayPaymentLaunchFailed': 'Spustenie Alipay zlyhalo',
'cannotLaunchAlipayPayment': 'Nie je možné spustiť Alipay', 'cannotLaunchAlipayPayment': 'Nie je možné spustiť Alipay',
'alipayPaymentException': 'Výnimka Alipay', 'alipayPaymentException': 'Výnimka Alipay',
"insufficientIntegral": "Insufficient integral", "insufficientIntegral": "Nedostatok bodov",
"insufficientBalanceDesc": "insufficientBalanceDesc":
"Nedostatočný zostatok, prejdite na príslušnú stránku dobitia a dobite si.", "Nedostatočný zostatok, prejdite na príslušnú stránku dobitia a dobite si.",
"recharge": "Go to Recharge", "recharge": "Prejsť na dobitie",
"aiMemberExpiredDesc": "aiMemberExpiredDesc":
"Členstvo AI vypršalo, prejdite na stránku dobitia členstva a obnovte ho.", "Členstvo AI vypršalo, prejdite na stránku dobitia členstva a obnovte ho.",
// 商品模块 - AI商品页 // 商品模块 - AI商品页
'musicAndRecommendation': 'Music & Recommendation', 'musicAndRecommendation': 'Hudba a odporúčania',
'navigationAndRoutes': 'Navigation & Routes', 'navigationAndRoutes': 'Navigácia a trasy',
'nearbySearch': 'Nearby Search', 'nearbySearch': 'Vyhľadávanie v okolí',
'newsInformation': 'News', 'newsInformation': 'Správy',
'communicationAssistant': 'Communication Assistant', 'communicationAssistant': 'Komunikačný asistent',
'aiHeaderDesc1': 'aiHeaderDesc1':
'Longer conversation quota, more tool calls, extended context length.', 'Dlhší limit konverzácie, viac volaní nástrojov, rozšírená dĺžka kontextu.',
'aiHeaderDesc2': 'aiHeaderDesc2':
'Suitable for agent Q&A, summarization, analysis, and task execution.', 'Vhodné pre Q&A agenta, sumarizáciu, analýzu a vykonávanie úloh.',
'musicSearchPlaybackControl': 'Music library search and playback control', 'musicSearchPlaybackControl': 'Vyhľadávanie v knižnici hudby a ovládanie prehrávania',
'smartPlaylistAndSimilarRecommendations': 'smartPlaylistAndSimilarRecommendations':
'Smart playlist and similar song recommendations', 'Inteligentný playlist a odporúčania podobných skladieb',
'routePlanningAndCongestionAvoidance': 'routePlanningAndCongestionAvoidance':
'Route planning and congestion avoidance', 'Plánovanie trasy a vyhýbanie sa zápcham',
'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'voiceBroadcastAndWaypoints': 'Hlasové vysielanie a nastavenie bodov trasy',
'realTimeWeatherForecast': 'Real-time weather and forecast', 'realTimeWeatherForecast': 'Počasie v reálnom čase a predpoveď',
'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', 'clothingAdviceAndTravelReminders': 'Odporúčania na oblečenie a cestovné upozornenia',
'poiSearchFoodGasParking': 'POI search: dining / gas / parking', 'poiSearchFoodGasParking': 'Vyhľadávanie POI: reštaurácie / čerpacie stanice / parkovanie',
'ratingsHoursAndDirectRoutes': 'Ratings, business hours, and direct routing', 'ratingsHoursAndDirectRoutes': 'Hodnotenia, otváracie hodiny a priama navigácia',
'hotNewsAndTopicOverview': 'Hot news and topic overview', 'hotNewsAndTopicOverview': 'Najnovšie správy a prehľad tém',
'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'longArticleSummariesAndKeyPoints': 'Zhrnutia dlhých článkov a kľúčové body',
'helpCallAndSMS': 'Help with calls and SMS', 'helpCallAndSMS': 'Pomoc s hovormi a SMS',
'templatedMessagesAndScheduleReminders': 'templatedMessagesAndScheduleReminders':
'Template messages and schedule reminders', 'Šablónové správy a pripomienky v pláne',
'aiDisclaimer': 'aiDisclaimer':
'Funkcie závisia od povolení zariadenia, dostupnosti služby a sieťových podmienok.', 'Funkcie závisia od povolení zariadenia, dostupnosti služby a sieťových podmienok.',
// 商品模块 - 翻译商品页 // 商品模块 - 翻译商品页
'realtimeTranscription': 'Real-time Transcription', 'realtimeTranscription': 'Prepis v reálnom čase',
'sceneLexicon': 'Scenario Glossary', 'sceneLexicon': 'Scenárový slovník',
'subtitleDisplay': 'Subtitles', 'subtitleDisplay': 'Titulky',
'transHeaderDesc1': 'transHeaderDesc1':
'Simultánne tlmočenie a textový preklad v reálnom čase s nízkou latenciou hlasu.', 'Simultánne tlmočenie a textový preklad v reálnom čase s nízkou latenciou hlasu.',
'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'transHeaderDesc2': 'Vhodné pre cestovanie, obchod, prejavy a výučbu.',
'translateZhEn': 'Preklad čínština–angličtina', 'translateZhEn': 'Preklad čínština–angličtina',
'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'lowLatencyVoiceBroadcast': 'Hlasové vysielanie s nízkou latenciou',
'multiLangTextTranslation': 'Viacjazyčný textový preklad', 'multiLangTextTranslation': 'Viacjazyčný textový preklad',
'termOptimizationContextPreserve': 'termOptimizationContextPreserve':
'Terminology optimization and context preservation', 'Optimalizácia terminológie a zachovanie kontextu',
'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'lexiconTourBusinessLife': 'Slovníky cestovanie/obchod/život',
'personalVocabularyMemory': 'Personal vocabulary memory', 'personalVocabularyMemory': 'Osobná pamäť slovnej zásoby',
'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'conversationSubtitleLargeText': 'Titulky konverzácie / Režim veľkého textu',
'colorHighContrast': 'High color contrast', 'colorHighContrast': 'Vysoký farebný kontrast',
'transDisclaimer': 'transDisclaimer':
'Výkon prekladu závisí od mikrofónu, latencie siete a okolitého hluku.', 'Výkon prekladu závisí od mikrofónu, latencie siete a okolitého hluku.',
// 商品模块 - 会议商品页 // 商品模块 - 会议商品页
'meetingRecording': 'Záznam stretnutia', 'meetingRecording': 'Záznam stretnutia',
'transcriptionAndSummary': 'Transcription & Summary', 'transcriptionAndSummary': 'Prepis a zhrnutie',
'keywordSearch': 'Keyword Search', 'keywordSearch': 'Vyhľadávanie kľúčových slov',
'collaborationSharing': 'Collaboration & Sharing', 'collaborationSharing': 'Spolupráca a zdieľanie',
'meetingHeaderDesc1': 'meetingHeaderDesc1':
'Nahrávanie zvuku, prepis, vyhľadávanie kľúčových slov a automatické zhrnutie na zvýšenie efektivity stretnutí.', 'Nahrávanie zvuku, prepis, vyhľadávanie kľúčových slov a automatické zhrnutie na zvýšenie efektivity stretnutí.',
'meetingHeaderDesc2': 'meetingHeaderDesc2':
'Suitable for business meetings, class notes, and interview minutes.', 'Vhodné pre obchodné stretnutia, poznámky z prednášok a zápisnice z rozhovorov.',
'meetingAutoRecording': 'Automatické nahrávanie a segmentácia', 'meetingAutoRecording': 'Automatické nahrávanie a segmentácia',
'meetingSpeakerTagging': 'Speaker labeling', 'meetingSpeakerTagging': 'Označovanie rečníkov',
'meetingLongAudioTranscription': 'Long audio transcription', 'meetingLongAudioTranscription': 'Prepis dlhého zvuku',
'meetingKeyPointSummary': 'Key point extraction', 'meetingKeyPointSummary': 'Extrakcia kľúčových bodov',
'meetingTopicNameSearch': 'Search by topic/name', 'meetingTopicNameSearch': 'Vyhľadávanie podľa témy/mena',
'meetingTimelineJump': 'Timeline jump', 'meetingTimelineJump': 'Skok na časovej osi',
'meetingExportSummary': 'Export minutes', 'meetingExportSummary': 'Export zápisnice',
'meetingMultiPlatformShare': 'Share across platforms', 'meetingMultiPlatformShare': 'Zdieľanie naprieč platformami',
'meetingDisclaimer': 'meetingDisclaimer':
'Používajte v tichom prostredí; výkon závisí od mikrofónu a siete.', 'Používajte v tichom prostredí; výkon závisí od mikrofónu a siete.',
// 商品模块 - VIP会员页 // 商品模块 - VIP会员页
'benefitsOverview': 'Benefits overview', 'benefitsOverview': 'Prehľad výhod',
'higherQuota': 'Higher usage quota', 'higherQuota': 'Vyšší limit používania',
'lowerUnitPrice': 'Lower unit price', 'lowerUnitPrice': 'Nižšia jednotková cena',
'priorityService': 'Priority service', 'priorityService': 'Prioritná služba',
'exclusiveSupportChannel': 'Dedicated support channel', 'exclusiveSupportChannel': 'Vyhradený kanál podpory',
'fastResponse': 'Fast issue response', 'fastResponse': 'Rýchla reakcia na problémy',
'eventsAndDiscounts': 'Events and discounts', 'eventsAndDiscounts': 'Akcie a zľavy',
'memberExclusiveEvents': 'Member-exclusive events', 'memberExclusiveEvents': 'Exkluzívne akcie pre členov',
'longTermDiscountPlan': 'Long-term discount plan', 'longTermDiscountPlan': 'Dlhodobý zľavový plán',
'generalPrivileges': 'General privileges', 'generalPrivileges': 'Všeobecné výhody',
'earlyAccessNewFeatures': 'Early access to new features', 'earlyAccessNewFeatures': 'Skorý prístup k novým funkciám',
'crossDeviceSync': 'Synchronizácia medzi zariadeniami', 'crossDeviceSync': 'Synchronizácia medzi zariadeniami',
'vipDisclaimer': 'vipDisclaimer':
'Actual benefits depend on the package details and may change with versions.', 'Skutočné výhody závisia od detailov balíka a môžu sa meniť s verziami.',
// 商品模块 - 商品名称与描述 // 商品模块 - 商品名称与描述
'ai_001_name': 'AI Basic 100', 'ai_001_name': 'AI Základ 100',
'ai_002_name': 'AI Basic 500', 'ai_002_name': 'AI Základ 500',
'ai_003_name': 'AI Basic 1000', 'ai_003_name': 'AI Základ 1000',
'meet_001_name': 'Meeting Basic 100', 'meet_001_name': 'Stretnutie Základ 100',
'meet_002_name': 'Meeting Basic 500', 'meet_002_name': 'Stretnutie Základ 500',
'meet_003_name': 'Meeting Basic 1000', 'meet_003_name': 'Stretnutie Základ 1000',
'trans_001_name': 'Preklad Základ 100', 'trans_001_name': 'Preklad Základ 100',
'trans_002_name': 'Preklad Základ 500', 'trans_002_name': 'Preklad Základ 500',
'trans_003_name': 'Preklad Základ 1000', 'trans_003_name': 'Preklad Základ 1000',
'ai_001_desc': 'Includes 100 uses. Access core AI features.', 'ai_001_desc': 'Obsahuje 100 použití. Prístup k hlavným AI funkciám.',
'ai_002_desc': 'Includes 500 uses. Access core AI features.', 'ai_002_desc': 'Obsahuje 500 použití. Prístup k hlavným AI funkciám.',
'ai_003_desc': 'Includes 1000 uses. Access core AI features.', 'ai_003_desc': 'Obsahuje 1000 použití. Prístup k hlavným AI funkciám.',
'meet_001_desc': 'Obsahuje 100 nahrávok/prepisov stretnutí.', 'meet_001_desc': 'Obsahuje 100 nahrávok/prepisov stretnutí.',
'meet_002_desc': 'Obsahuje 500 nahrávok/prepisov stretnutí.', 'meet_002_desc': 'Obsahuje 500 nahrávok/prepisov stretnutí.',
'meet_003_desc': 'Obsahuje 1000 nahrávok/prepisov stretnutí.', 'meet_003_desc': 'Obsahuje 1000 nahrávok/prepisov stretnutí.',
@ -437,46 +437,46 @@ const Map<String, String> skSK = {
'trans_003_desc': 'Obsahuje 1000 prekladov (hlas/text).', 'trans_003_desc': 'Obsahuje 1000 prekladov (hlas/text).',
// 商品模块 - 页脚 // 商品模块 - 页脚
'appNameProvider': 'App: VoiTrans · Provided by: VoiTrans', 'appNameProvider': 'Aplikácia: VoiTrans · Poskytovateľ: VoiTrans',
'iapCustomerServiceQQLabel': 'IAP customer service QQ: @qq', 'iapCustomerServiceQQLabel': 'Zákaznícky servis IAP QQ: @qq',
'copyrightVoitrans': '© 2025 Voitrans Technologies', 'copyrightVoitrans': '© 2025 Voitrans Technologies',
// 新手引导 // 新手引导
'skip': 'Preskočiť', 'skip': 'Preskočiť',
'next': 'Next', 'next': 'Ďalej',
'sayLilyHint': 'Say "Lily Lily" to the mic', 'sayLilyHint': 'Say "Lily Lily" to the mic',
'imHere': 'I’m here~', 'imHere': 'Som tu~',
'guideWelcomeWakeAI': 'Welcome to Voitrans! First, wake your AI “Lily”.', 'guideWelcomeWakeAI': 'Vitajte vo Voitrans! Najprv zobuďte svoju AI “Lily”.',
'aiReplyCompleted': 'Lily has finished the reply!', 'aiReplyCompleted': 'Lily dokončila odpoveď!',
'aiThinking': 'Lily is thinking…', 'aiThinking': 'Lily premýšľa…',
'guideAwakenSuccess': 'Great! Lily is awake—ask it to help.', 'guideAwakenSuccess': 'Výborne! Lily je hore—požiadajte ju o pomoc.',
'confirmInput': 'Confirm Input', 'confirmInput': 'Potvrdiť vstup',
'guideClickSendPrefix': 'Tap send, ', 'guideClickSendPrefix': 'Ťuknite na odoslať, ',
'guideWeatherStart': 'Tell Lily: “What’s the weather today?”', 'guideWeatherStart': 'Povedzte Lily: “Aké je dnes počasie?”',
'guideWeatherInput': 'What’s the weather today?', 'guideWeatherInput': 'Aké je dnes počasie?',
'guideWeatherSend': 'Lily will report the weather in real time', 'guideWeatherSend': 'Lily ohlási počasie v reálnom čase',
'guideWeatherEnd': 'Lily can report weather live—try other commands', 'guideWeatherEnd': 'Lily vie hlásiť počasie naživo—vyskúšajte ďalšie príkazy',
'guideMusicStart': 'Tell Lily: “Play some rock music”', 'guideMusicStart': 'Povedzte Lily: “Pusti rockovú hudbu”',
'guideMusicInput': 'Play some rock music', 'guideMusicInput': 'Pusti rockovú hudbu',
'guideMusicSend': 'Lily will find music for you', 'guideMusicSend': 'Lily nájde hudbu pre vás',
'guideMusicEnd': 'Lily found music—try other commands', 'guideMusicEnd': 'Lily našla hudbu—vyskúšajte ďalšie príkazy',
'guideNavStart': 'Tell Lily: “Navigate to Shenzhen Airport”', 'guideNavStart': 'Povedzte Lily: “Naviguj na letisko Shenzhen”',
'guideNavInput': 'Navigate to Shenzhen Airport', 'guideNavInput': 'Naviguj na letisko Shenzhen',
'guideNavSend': 'Lily will plan the route', 'guideNavSend': 'Lily naplánuje trasu',
'guideNavEnd': 'Navigation set—try other commands', 'guideNavEnd': 'Navigácia nastavená—vyskúšajte ďalšie príkazy',
'guideMeetingStart': 'guideMeetingStart':
'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'Povedzte Lily: “Vytvor pripomienku stretnutia na zajtra o 15:00”',
'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingInput': 'Vytvor pripomienku stretnutia na zajtra o 15:00',
'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingSend': 'Lily vytvorí pripomienku stretnutia',
'guideMeetingEnd': 'Reminder created—try other commands', 'guideMeetingEnd': 'Pripomienka vytvorená—vyskúšajte ďalšie príkazy',
'guidePhoneStart': 'Tell Lily: “Call Mom”', 'guidePhoneStart': 'Povedzte Lily: “Zavolaj mame”',
'guidePhoneInput': 'Call Mom', 'guidePhoneInput': 'Zavolaj mame',
'guidePhoneSend': 'Lily will make the call', 'guidePhoneSend': 'Lily uskutoční hovor',
'guidePhoneEnd': 'Call placed—try other commands', 'guidePhoneEnd': 'Hovor uskutočnený—vyskúšajte ďalšie príkazy',
'guideSmsStart': 'Tell Lily: “Send Dad a text: I’ll be home for dinner”', 'guideSmsStart': 'Povedzte Lily: “Pošli otcovi správu: Budem doma na večeru”',
'guideSmsInput': 'Text Dad: I’ll be home for dinner', 'guideSmsInput': 'Správa otcovi: Budem doma na večeru',
'guideSmsSend': 'Lily will send the message', 'guideSmsSend': 'Lily pošle správu',
'guideSmsEnd': 'Message sent—voice control is convenient', 'guideSmsEnd': 'Správa odoslaná—hlasové ovládanie je praktické',
// Meeting模块 - 首页与导航 // Meeting模块 - 首页与导航
"startMeeting": "Začať stretnutie", "startMeeting": "Začať stretnutie",
@ -490,24 +490,24 @@ const Map<String, String> skSK = {
'recordingDetails': 'Podrobnosti záznamu', 'recordingDetails': 'Podrobnosti záznamu',
'aiSummary': 'AI zhrnutie', 'aiSummary': 'AI zhrnutie',
'meetingTranscript': 'Prepis stretnutia', 'meetingTranscript': 'Prepis stretnutia',
'files': 'Files', 'files': 'Súbory',
'mine': 'Mine', 'mine': 'Moje',
'connect': 'Pripojiť', 'connect': 'Pripojiť',
'allFiles': 'All Files', 'allFiles': 'Všetky súbory',
'searchInAllFiles': 'Search in all files', 'searchInAllFiles': 'Hľadať vo všetkých súboroch',
'from': 'From', 'from': 'Od',
'sortBy': 'Sort by', 'sortBy': 'Zoradiť podľa',
'creationTime': 'Creation Time', 'creationTime': 'Čas vytvorenia',
'bluetoothConnection': 'Bluetooth pripojenie', 'bluetoothConnection': 'Bluetooth pripojenie',
'meetingReconnect': 'Znova pripojiť', 'meetingReconnect': 'Znova pripojiť',
'searching': 'Searching...', 'searching': 'Vyhľadáva sa...',
'searchFailed': 'Vyhľadávanie zlyhalo, skontrolujte, či je Bluetooth zapnutý', 'searchFailed': 'Vyhľadávanie zlyhalo, skontrolujte, či je Bluetooth zapnutý',
'aiPenNotFound': 'Zariadenie AI PEN sa nenašlo', 'aiPenNotFound': 'Zariadenie AI PEN sa nenašlo',
'connectedToAiPen': 'Pripojené k zariadeniu AI PEN', 'connectedToAiPen': 'Pripojené k zariadeniu AI PEN',
'checkingNewFiles': 'Kontrola nových súborov na import', 'checkingNewFiles': 'Kontrola nových súborov na import',
'startingWifi': 'Starting Wi-Fi...', 'startingWifi': 'Spúšťa sa Wi-Fi...',
'newFilesDetected': 'New files detected, preparing to import', 'newFilesDetected': 'Zistené nové súbory, pripravuje sa import',
'noNewFiles': 'No new files to import', 'noNewFiles': 'Žiadne nové súbory na import',
'connectingWifi': 'Pripája sa k Wi‑Fi...', 'connectingWifi': 'Pripája sa k Wi‑Fi...',
'wifiConnected': 'Wi‑Fi úspešne pripojené', 'wifiConnected': 'Wi‑Fi úspešne pripojené',
'downloadingFiles': 'Sťahovanie súborov...', 'downloadingFiles': 'Sťahovanie súborov...',
@ -522,7 +522,7 @@ const Map<String, String> skSK = {
'liveRecording': 'Nahrávanie naživo', 'liveRecording': 'Nahrávanie naživo',
'audioVideoRecording': 'Nahrávanie zvuku/videa', 'audioVideoRecording': 'Nahrávanie zvuku/videa',
'callRecording': 'Nahrávanie hovoru', 'callRecording': 'Nahrávanie hovoru',
'importAudio': 'Import Audio', 'importAudio': 'Importovať zvuk',
'meetingRecordExitTitle': 'Ukončiť nahrávanie', // 退出录音 'meetingRecordExitTitle': 'Ukončiť nahrávanie', // 退出录音
'meetingRecordExitMessage': 'Vyberte akciu po odchode', // 请选择离开后的操作 'meetingRecordExitMessage': 'Vyberte akciu po odchode', // 请选择离开后的操作
'meetingRecordEndAndSave': 'Ukončiť a uložiť', // 结束录音并保存 'meetingRecordEndAndSave': 'Ukončiť a uložiť', // 结束录音并保存
@ -545,30 +545,30 @@ const Map<String, String> skSK = {
'Aby sme počas nahrávania zobrazili plávajúcu lištu nahrávania (časovač/pauza/pokračovať), potrebujeme povolenie prekrytia.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 'Aby sme počas nahrávania zobrazili plávajúcu lištu nahrávania (časovač/pauza/pokračovať), potrebujeme povolenie prekrytia.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。
'overlayPermissionOpenSettingsFailed': 'overlayPermissionOpenSettingsFailed':
'Nepodarilo sa automaticky otvoriť systémové nastavenia. Otvorte Nastavenia a povoľte prekrytie manuálne.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'Nepodarilo sa automaticky otvoriť systémové nastavenia. Otvorte Nastavenia a povoľte prekrytie manuálne.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。
'transcribing': 'Transcribing...', 'transcribing': 'Prepisuje sa...',
'summarizing': 'Summarizing...', 'summarizing': 'Sumarizuje sa...',
'analyzing': 'Analyzing...', 'analyzing': 'Analyzuje sa...',
'summaryComplete': 'Summary Complete', 'summaryComplete': 'Zhrnutie dokončené',
'generate': 'Generate', 'generate': 'Generovať',
'overview': 'Overview', 'overview': 'Prehľad',
'transcription': 'Transcription', 'transcription': 'Prepis',
'summary': 'Summary', 'summary': 'Zhrnutie',
'mindMap': 'Mind Map', 'mindMap': 'Myšlienková mapa',
'editSpeaker': 'Edit', 'editSpeaker': 'Upraviť',
'nameSpeaker': 'Name Speaker', 'nameSpeaker': 'Pomenovať rečníka',
// Meeting模块 - 转写与总结 // Meeting模块 - 转写与总结
'reSummarize': 'Re-summarize', 'reSummarize': 'Znova zhrnúť',
'dateAndTime': 'Date & Time', 'dateAndTime': 'Dátum a čas',
'location': 'Location', 'location': 'Miesto',
'attendees': 'Attendees', 'attendees': 'Účastníci',
'inputLocation': 'Enter Location', 'inputLocation': 'Zadajte miesto',
'inputAttendees': 'Enter Attendees', 'inputAttendees': 'Zadajte účastníkov',
// Meeting模块 - 模版与生成 // Meeting模块 - 模版与生成
'selectSummaryTemplate': 'Select Summary Template', 'selectSummaryTemplate': 'Vybrať šablónu zhrnutia',
'useThisTemplate': 'Use This Template', 'useThisTemplate': 'Použiť túto šablónu',
'lastUsed': 'Last Used', 'lastUsed': 'Naposledy použité',
'create': 'Vytvoriť', 'create': 'Vytvoriť',
'templateDetails': 'Podrobnosti šablóny', 'templateDetails': 'Podrobnosti šablóny',
'tag': 'Štítok', 'tag': 'Štítok',
@ -585,66 +585,66 @@ const Map<String, String> skSK = {
'inputDescHint': 'Prosím zadajte popis', 'inputDescHint': 'Prosím zadajte popis',
'custom': 'Vlastné', 'custom': 'Vlastné',
'pleaseEnter': 'Prosím zadajte', 'pleaseEnter': 'Prosím zadajte',
'viewAll': 'View All', 'viewAll': 'Zobraziť všetko',
'recordingLanguage': 'Jazyk nahrávky', 'recordingLanguage': 'Jazyk nahrávky',
'chineseSimplified': 'Chinese Mandarin (Simplified)', 'chineseSimplified': 'Čínska mandarínčina (zjednodušená)',
'meetingGenerateNow': 'Generate Now', 'meetingGenerateNow': 'Generovať teraz',
'keyEventsAnalyzed': 'Analyzed {count} key events.', 'keyEventsAnalyzed': 'Analyzovaných {count} kľúčových udalostí.',
'aiAnalysisDesc': 'aiAnalysisDesc':
'AI analýza identifikuje kľúčové udalosti v nahrávkach, aby ste mohli vybrať dôležité udalosti na generovanie AI.', 'AI analýza identifikuje kľúčové udalosti v nahrávkach, aby ste mohli vybrať dôležité udalosti na generovanie AI.',
// Meeting模块 - 文件操作 // Meeting模块 - 文件操作
'importing': 'Importing...', 'importing': 'Importuje sa...',
'batchImporting': 'Batch importing...', 'batchImporting': 'Hromadný import...',
'importingLocalRecordings': 'Import miestnych nahrávok...', 'importingLocalRecordings': 'Import miestnych nahrávok...',
'importFailed': 'Import súboru zlyhal: {filePath}, chyba: {error}', 'importFailed': 'Import súboru zlyhal: {filePath}, chyba: {error}',
'importSuccess': 'Úspešne importovaných {count} miestnych nahrávok', 'importSuccess': 'Úspešne importovaných {count} miestnych nahrávok',
'importError': 'Import zlyhal: {error}', 'importError': 'Import zlyhal: {error}',
'pleaseSelectAudioFile': 'Vyberte zvukový súbor', 'pleaseSelectAudioFile': 'Vyberte zvukový súbor',
'shareAudio': 'Share Meeting Audio', 'shareAudio': 'Zdieľať zvuk stretnutia',
'shareComplete': 'Share complete!', 'shareComplete': 'Zdieľanie dokončené!',
'shareFailed': 'Zdieľanie zlyhalo: {error}', 'shareFailed': 'Zdieľanie zlyhalo: {error}',
'fileProcessingFailed': 'fileProcessingFailed':
'Spracovanie súboru zlyhalo: {filePath}, chyba: {error}', 'Spracovanie súboru zlyhalo: {filePath}, chyba: {error}',
// Meeting模块 - 思维导图 // Meeting模块 - 思维导图
'saveMindMap': 'Uložiť myšlienkovú mapu', 'saveMindMap': 'Uložiť myšlienkovú mapu',
'shareMindMap': 'Share Mind Map', 'shareMindMap': 'Zdieľať myšlienkovú mapu',
'shareSuccess': 'Zdieľanie úspešné', 'shareSuccess': 'Zdieľanie úspešné',
// Meeting模块 - AI问答 // Meeting模块 - AI问答
'askAI': 'Ask AI ...', 'askAI': 'Opýtať sa AI ...',
'askAIPrompt': 'What can I help you with today?', 'askAIPrompt': 'S čím vám môžem dnes pomôcť?',
'continueAsk': 'Continue Asking', 'continueAsk': 'Pokračovať v otázkach',
'todoList': 'To-Do List', 'todoList': 'Zoznam úloh',
'extractConclusion': 'Extract Conclusion', 'extractConclusion': 'Extrahovať záver',
'generateKeyIndicators': 'Generate Key Indicators', 'generateKeyIndicators': 'Generovať kľúčové ukazovatele',
// Meeting模块 - 分享与导出 // Meeting模块 - 分享与导出
'shareLink': 'Share Link', 'shareLink': 'Zdieľať odkaz',
'copyTranscript': 'Copy Transcript', 'copyTranscript': 'Kopírovať prepis',
'copySummary': 'Copy Summary', 'copySummary': 'Kopírovať zhrnutie',
'exportAudio': 'Export Audio', 'exportAudio': 'Exportovať zvuk',
'exportTranscript': 'Export Transcript', 'exportTranscript': 'Exportovať prepis',
'shareMeetingAudio': 'Share Meeting Audio', 'shareMeetingAudio': 'Zdieľať zvuk stretnutia',
'exportSummary': 'Export Summary', 'exportSummary': 'Exportovať zhrnutie',
'exportAs': 'Export As', 'exportAs': 'Exportovať ako',
'exportingPDF': 'Exporting PDF...', 'exportingPDF': 'Exportuje sa PDF...',
'export': 'Exportovať', 'export': 'Exportovať',
// Meeting模块 - 发言者 // Meeting模块 - 发言者
'applyToAllParagraphs': 'Použiť na všetky odseky tohto rečníka', 'applyToAllParagraphs': 'Použiť na všetky odseky tohto rečníka',
'summaryWillBeUpdatedAutomatically': 'summaryWillBeUpdatedAutomatically':
'Zhrnutie sa bude automaticky aktualizovať podľa šablóny', 'Zhrnutie sa bude automaticky aktualizovať podľa šablóny',
'nameCurrentSpeaker': 'Name Current Speaker', 'nameCurrentSpeaker': 'Pomenovať aktuálneho rečníka',
'recentlyUsedNames': 'Recently Used Names', 'recentlyUsedNames': 'Naposledy použité mená',
'applyToCurrentParagraph': 'Apply to Current Paragraph', 'applyToCurrentParagraph': 'Použiť na aktuálny odsek',
'totalTime': 'Total Time', 'totalTime': 'Celkový čas',
'summarySpeakerWillBeUpdatedAutomatically': 'summarySpeakerWillBeUpdatedAutomatically':
'Summary speakers will be updated automatically', 'Rečníci v zhrnutí sa automaticky aktualizujú',
// Meeting模块 - 云端同步 // Meeting模块 - 云端同步
'syncToCloud': 'Sync to Cloud', 'syncToCloud': 'Synchronizovať do cloudu',
'syncToCloudTip': 'syncToCloudTip':
'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).', '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', 'syncToVoitransApp': 'Synchronizovať do aplikácie VOITRANS',
@ -652,95 +652,95 @@ const Map<String, String> skSK = {
// Meeting模块 - 我的页面 // Meeting模块 - 我的页面
'transcriptionRecords': 'Záznamy prepisu', 'transcriptionRecords': 'Záznamy prepisu',
'templateCommunity': 'Template Community', 'templateCommunity': 'Komunita šablón',
'comingSoon': 'Coming Soon', 'comingSoon': 'Pripravujeme',
'integration': 'Integration', 'integration': 'Integrácia',
'voitransPrivateCloud': 'VOITRANS PRIVATE CLOUD', 'voitransPrivateCloud': 'VOITRANS PRIVÁTNY CLOUD',
'enabled': 'Povolené', 'enabled': 'Povolené',
'disabled': 'Zakázané', 'disabled': 'Zakázané',
'myVoitransDevice': 'Moje zariadenie VOITRANS', 'myVoitransDevice': 'Moje zariadenie VOITRANS',
'helpAndFeedback': 'Help & Feedback', 'helpAndFeedback': 'Pomoc a spätná väzba',
'aboutVoitrans': 'About VOITRANS', 'aboutVoitrans': 'O VOITRANS',
'meetingDays': 'Days', 'meetingDays': 'Dní',
'meetingHours': 'Hours', 'meetingHours': 'Hodín',
'voitransAiMember': 'Voitrans AI Member', 'voitransAiMember': 'Voitrans AI člen',
'unlockStarterMember': 'Unlock Starter Member', 'unlockStarterMember': 'Odomknúť Starter členstvo',
'bindDeviceToActivate': 'bindDeviceToActivate':
'Ak chcete aktivovať Starter členstvo, pripojte zariadenie Voitrans', 'Ak chcete aktivovať Starter členstvo, pripojte zariadenie Voitrans',
'unlockNow': 'Unlock Now', 'unlockNow': 'Odomknúť teraz',
// Meeting模块 - 会员与升级 // Meeting模块 - 会员与升级
'comparison': 'Comparison', 'comparison': 'Porovnanie',
'detailedInfo': 'Detailed Information', 'detailedInfo': 'Podrobné informácie',
'monthlyTranscriptionTime': 'Monthly Transcription Time', 'monthlyTranscriptionTime': 'Mesačný čas prepisu',
'unlimited': 'Unlimited', 'unlimited': 'Neobmedzený',
'professionalTemplates': 'Professional Templates', 'professionalTemplates': 'Profesionálne šablóny',
'limited': 'Limited', 'limited': 'Obmedzený',
'fullTemplates': 'Full Templates', 'fullTemplates': 'Úplné šablóny',
'professionalTerms': 'Professional Terms', 'professionalTerms': 'Odborné výrazy',
'customTemplates': 'Custom Templates', 'customTemplates': 'Vlastné šablóny',
'visualMindMap': 'Visual Mind Map', 'visualMindMap': 'Vizuálna myšlienková mapa',
'speakerIdentification': 'Speaker Identification', 'speakerIdentification': 'Identifikácia rečníka',
'aiVoiceEnhancement': 'AI Voice Enhancement', 'aiVoiceEnhancement': 'AI vylepšenie hlasu',
'audioImport': 'Audio Import', 'audioImport': 'Import zvuku',
'multipleExportFormats': 'Multiple Export Formats', 'multipleExportFormats': 'Viacero formátov exportu',
'professionalSummaryTemplates': 'Professional Summary Templates', 'professionalSummaryTemplates': 'Profesionálne šablóny zhrnutí',
'professionalTemplateDesc': 'professionalTemplateDesc':
'Professional template design to improve your work efficiency. Customized according to industry needs.', 'Profesionálny dizajn šablón na zvýšenie vašej pracovnej efektivity. Prispôsobené podľa potrieb odvetvia.',
'customTemplateDesc': 'customTemplateDesc':
'You can customize summary prompts according to your needs and use them to generate the required summaries.', 'Môžete si prispôsobiť výzvy na zhrnutie podľa svojich potrieb a použiť ich na generovanie požadovaných zhrnutí.',
'askAiDesc': 'askAiDesc':
'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.', 'Inteligentne získajte hlbšie informácie z nahrávok; jedným kliknutím vygenerujte tabuľky, kľúčové závery diskusie, zoznam úloh, e-maily so správami a ďalší formátovaný obsah.',
'visualMindMapDesc': 'visualMindMapDesc':
'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', 'Viac než zhrnutia - organizujte a vizualizujte kľúčové body pomocou myšlienkových máp pre efektívnejšie pochopenie celého textu.',
'templateCommunityDesc': 'templateCommunityDesc':
'Discover, share, and get inspiration from the template library created by users.', 'Objavujte, zdieľajte a čerpajte inšpiráciu z knižnice šablón vytvorených používateľmi.',
'speakerIdentificationDesc': 'speakerIdentificationDesc':
'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', 'Prepis zvuku bude podporovať identifikáciu rečníkov, intuitívnejšie obnoví obsah stretnutia alebo telefonátu. Zároveň bude zhrnutie presnejšie.',
'privateCloudSyncDesc': 'privateCloudSyncDesc':
'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ť.', 'Vaše nahrávky a prepisy budú bezpečne uložené na vyhradených cloudových serveroch s úplným šifrovaním počas nahrávania aj sťahovania, aby sa zabezpečilo súkromie a bezpečnosť.',
'aiVoiceEnhancementDesc': 'aiVoiceEnhancementDesc':
'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', 'AI vylepšenie hlasu podporuje viacero nastavení redukcie šumu, inteligentne eliminuje hluk na pozadí, zvyšuje čistotu hlasu a zlepšuje kvalitu prehrávania zvuku.',
'audioImportDesc': 'audioImportDesc':
'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', 'Jednoducho importujte zvukové súbory z lokálnych alebo aplikácií tretích strán, ako sú hlasové poznámky, Google Drive atď.',
'multipleExportFormatsDesc': 'multipleExportFormatsDesc':
'Exportujte zvukové nahrávky, text prepisu a zhrnutia v rôznych formátoch (TXT, PDF, JPEG) podľa potreby.', 'Exportujte zvukové nahrávky, text prepisu a zhrnutia v rôznych formátoch (TXT, PDF, JPEG) podľa potreby.',
'upgradeMembership': 'Upgrade Your Membership', 'upgradeMembership': 'Vylepšiť členstvo',
'yearlySubscription': 'Yearly Subscription', 'yearlySubscription': 'Ročné predplatné',
'monthlySubscription': 'Monthly Subscription', 'monthlySubscription': 'Mesačné predplatné',
'proMonthly': 'Pro ¥60/month', 'proMonthly': 'Pro ¥60/mesiac',
'proMonthlyDesc': 'proMonthlyDesc':
'7-day free trial, then ¥800/year. Cancel anytime before trial ends.', '7-dňová bezplatná skúšobná verzia, potom ¥800/rok. Zrušte kedykoľvek pred koncom skúšobnej doby.',
'sevenDayTrial': '7-day Free Trial', 'sevenDayTrial': '7-dňová bezplatná skúšobná verzia',
'unlimitedMonthly': 'Unlimited ¥120/month', 'unlimitedMonthly': 'Neobmedzený ¥120/mesiac',
'unlimitedMonthlyDesc': 'unlimitedMonthlyDesc':
'7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', '7-dňová bezplatná skúšobná verzia, potom ¥1600/rok. Zrušte kedykoľvek pred koncom skúšobnej doby.',
'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'trialNote': '*Bezplatná skúšobná verzia na 7 dní, potom ročné spoplatnenie, zrušenie kedykoľvek.',
'proPrice': 'Pro ¥120', 'proPrice': 'Pro ¥120',
'proMonthlyPrice': '¥120/month', 'proMonthlyPrice': '¥120/mesiac',
'subscribe': 'Subscribe', 'subscribe': 'Predplatiť',
'unlimitedPrice': 'Unlimited ¥198', 'unlimitedPrice': 'Unlimited ¥198',
'unlimitedMonthlyPrice': '¥198/month', 'unlimitedMonthlyPrice': '¥198/mesiac',
'upgradeNote': 'upgradeNote':
'*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', '*Po vylepšení predplatného sa zostávajúce dni pôvodného predplatného automaticky vypočítajú a vrátia na váš platobný účet',
'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'buyMoreTranscriptionTime': 'Kúpiť viac času na prepis',
'sixThousandMinutes': '6,000 minutes', 'sixThousandMinutes': '6 000 minút',
'threeThousandMinutes': '3,000 minutes', 'threeThousandMinutes': '3 000 minút',
'sixHundredMinutes': '600 minutes', 'sixHundredMinutes': '600 minút',
'oneHundredTwentyMinutes': '120 minutes', 'oneHundredTwentyMinutes': '120 minút',
'validityPeriod': '*Validity Period: ', 'validityPeriod': '*Doba platnosti: ',
'validityNote': 'validityNote':
'Activated immediately after purchase, valid for 2 years after activation.', 'Aktivované ihneď po nákupe, platné 2 roky od aktivácie.',
'purchase': 'Purchase', 'purchase': 'Kúpiť',
// Meeting模块 - 录音语言 // Meeting模块 - 录音语言
'recordLanguage': 'Jazyk nahrávania', 'recordLanguage': 'Jazyk nahrávania',
'cantonese': 'Cantonese', 'cantonese': 'Kantončina',
'sichuan': 'Sichuan Dialect', 'sichuan': 'Sečuánsky dialekt',
'shanghai': 'Shanghai Dialect', 'shanghai': 'Šanghajský dialekt',
// Meeting模块 - 错误提示 // Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Unknown Language', 'meetingUnknownLanguage': 'Neznámy jazyk',
'analysisFailed': 'Analýza zlyhala, skúste to znova neskôr', 'analysisFailed': 'Analýza zlyhala, skúste to znova neskôr',
'transcriptionFailed': 'Prepis zlyhal, skúste to znova neskôr', 'transcriptionFailed': 'Prepis zlyhal, skúste to znova neskôr',
'summaryFailed': 'Zhrnutie zlyhalo, skúste to znova neskôr', 'summaryFailed': 'Zhrnutie zlyhalo, skúste to znova neskôr',
@ -814,16 +814,16 @@ const Map<String, String> skSK = {
// 设备管理模块 // 设备管理模块
"deviceTypeUnknown": "Neznáme zariadenie", "deviceTypeUnknown": "Neznáme zariadenie",
"deviceTypeClassicBluetoothHeadset": "Classic Bluetooth Headset", "deviceTypeClassicBluetoothHeadset": "Klasické Bluetooth slúchadlá",
"deviceTypeBleBluetoothHeadset": "BLE Bluetooth Headset", "deviceTypeBleBluetoothHeadset": "BLE Bluetooth slúchadlá",
"deviceTypeSmartVoiceRecorder": "Inteligentný hlasový záznamník", "deviceTypeSmartVoiceRecorder": "Inteligentný hlasový záznamník",
"deviceTypeSmartEye": "Smart Glasses", "deviceTypeSmartEye": "Inteligentné okuliare",
"unbind": "Zrušiť prepojenie", "unbind": "Zrušiť prepojenie",
"noDevicesBound": "Zatiaľ nie sú pripojené žiadne zariadenia", "noDevicesBound": "Zatiaľ nie sú pripojené žiadne zariadenia",
"pleaseBindDeviceFirst": "pleaseBindDeviceFirst":
"Najprv pripojte zariadenie, aby ste ho mohli spravovať", "Najprv pripojte zariadenie, aby ste ho mohli spravovať",
"noMacAddress": "No MAC Address", "noMacAddress": "Žiadna MAC adresa",
"licenseCode": "License Code", "licenseCode": "Licenčný kód",
"confirmUnbind": "Potvrdiť odpojenie", "confirmUnbind": "Potvrdiť odpojenie",
"confirmUnbindMessage": "confirmUnbindMessage":
"Ste si istí, že chcete odpojiť zariadenie \"{deviceName}\"?", "Ste si istí, že chcete odpojiť zariadenie \"{deviceName}\"?",
@ -917,11 +917,11 @@ const Map<String, String> skSK = {
'generatedByAi': 'Vygenerované AI', 'generatedByAi': 'Vygenerované AI',
// Agent模块 - 工具调用 // Agent模块 - 工具调用
'toolCall': 'Tool Call', 'toolCall': 'Volanie nástroja',
'noResult': 'No Result', 'noResult': 'Žiadny výsledok',
'noToolCallContentToCopy': 'No tool call content to copy', 'noToolCallContentToCopy': 'Žiadny obsah volania nástroja na kopírovanie',
'toolCallDetails': 'Tool Call Details:', 'toolCallDetails': 'Podrobnosti volania nástroja:',
'toolCallContentCopied': 'Tool call content copied to clipboard', 'toolCallContentCopied': 'Obsah volania nástroja skopírovaný do schránky',
// Agent模块 - 音乐卡片 // Agent模块 - 音乐卡片
'recommendedMusic': 'Tu sú niektoré odporúčané skladby:', 'recommendedMusic': 'Tu sú niektoré odporúčané skladby:',
@ -944,26 +944,26 @@ const Map<String, String> skSK = {
"tsransit": "Verejná doprava", "tsransit": "Verejná doprava",
// Agent模块 - 导航选择 // Agent模块 - 导航选择
'selectNavigationApp': 'Select Navigation App', 'selectNavigationApp': 'Vybrať navigačnú aplikáciu',
'amapMap': 'Amap', 'amapMap': 'Amap',
'useAmapNavigation': 'Navigate with Amap', 'useAmapNavigation': 'Navigovať s Amap',
'baiduMap': 'Baidu Maps', 'baiduMap': 'Baidu Maps',
'useBaiduNavigation': 'Navigate with Baidu Maps', 'useBaiduNavigation': 'Navigovať s Baidu Maps',
'googleMap': 'Google Maps', 'googleMap': 'Google Maps',
'useGoogleNavigation': 'Navigate with Google Maps', 'useGoogleNavigation': 'Navigovať s Google Maps',
'appleMap': 'Apple Maps', 'appleMap': 'Apple Maps',
'useAppleNavigation': 'Navigate with Apple Maps', 'useAppleNavigation': 'Navigovať s Apple Maps',
'builtInNavigation': 'Built-in Navigation', 'builtInNavigation': 'Vstavaná navigácia',
'useBuiltInNavigation': 'Navigate with built-in map', 'useBuiltInNavigation': 'Navigovať so vstavanou mapou',
'navigationStartFailed': 'Spustenie navigácie zlyhalo', 'navigationStartFailed': 'Spustenie navigácie zlyhalo',
'cannotPlayMusicListRetryLater': 'cannotPlayMusicListRetryLater':
'Zoznam hudby sa nepodarilo prehrať, skúste to neskôr', 'Zoznam hudby sa nepodarilo prehrať, skúste to neskôr',
'cannotPlaySong': 'Cannot play song', 'cannotPlaySong': 'Skladbu nie je možné prehrať',
'openMapError': 'Chyba pri otváraní mapy', 'openMapError': 'Chyba pri otváraní mapy',
'pleaseInstallAmapApp': 'Najprv si nainštalujte aplikáciu Amap', 'pleaseInstallAmapApp': 'Najprv si nainštalujte aplikáciu Amap',
'pleaseInstallBaiduMapApp': 'Najprv si nainštalujte aplikáciu Baidu Maps', 'pleaseInstallBaiduMapApp': 'Najprv si nainštalujte aplikáciu Baidu Maps',
'appleMapStartFailed': 'Apple Maps sa nepodarilo spustiť', 'appleMapStartFailed': 'Apple Maps sa nepodarilo spustiť',
'appleMapUnavailable': 'Apple Maps unavailable', 'appleMapUnavailable': 'Apple Maps nie je dostupné',
'openAppleMapError': 'Chyba pri otváraní Apple Maps', 'openAppleMapError': 'Chyba pri otváraní Apple Maps',
// Agent模块 - 天气卡片 // Agent模块 - 天气卡片
@ -1029,11 +1029,11 @@ const Map<String, String> skSK = {
"phoneUser": "Používateľ telefónu", "phoneUser": "Používateľ telefónu",
"selectSourceLanguage": "Vyberte zdrojový jazyk", "selectSourceLanguage": "Vyberte zdrojový jazyk",
"selectTargetLanguage": "Vyberte cieľový jazyk", "selectTargetLanguage": "Vyberte cieľový jazyk",
"me": "Me", "me": "Ja",
"counterPart": "Counterpart", "counterPart": "Protistrana",
"bluetoothCallStateError": "bluetoothCallStateError":
"Uistite sa, že Bluetooth slúchadlá sú pripojené k telefónu a že prebieha hovor", "Uistite sa, že Bluetooth slúchadlá sú pripojené k telefónu a že prebieha hovor",
"autoDetect": "Auto Detect", // 自动检测 "autoDetect": "Automatická detekcia", // 自动检测
// 翻译模块 - 文本翻译 // 翻译模块 - 文本翻译
"languageDetectionFailed": "Rozpoznanie jazyka zlyhalo", "languageDetectionFailed": "Rozpoznanie jazyka zlyhalo",
@ -1047,16 +1047,16 @@ const Map<String, String> skSK = {
'deleteTranslationRecordError': 'deleteTranslationRecordError':
'Chyba pri odstraňovaní záznamu prekladu: @error', 'Chyba pri odstraňovaní záznamu prekladu: @error',
"translationFailed": "Preklad zlyhal", "translationFailed": "Preklad zlyhal",
"translating": "Translating", "translating": "Prekladá sa",
"translate": "Preložiť", "translate": "Preložiť",
"pleaseInputText": "Zadajte text", "pleaseInputText": "Zadajte text",
"inputTextToTranslate": "Zadajte text na preklad", "inputTextToTranslate": "Zadajte text na preklad",
"textTooLong": "Text too long, max 5000 characters", "textTooLong": "Text je príliš dlhý, maximálne 5000 znakov",
// 翻译模块 - 历史记录 // 翻译模块 - 历史记录
"noTranslationHistory": "Žiadna história", "noTranslationHistory": "Žiadna história",
"historyRecords": "Záznamy histórie", "historyRecords": "Záznamy histórie",
"clearResults": "Clear Results", "clearResults": "Vymazať výsledky",
"clearHistory": "Vymazať históriu", "clearHistory": "Vymazať históriu",
"clearHistoryConfirm": "clearHistoryConfirm":
"Ste si istí, že chcete vymazať celú históriu prekladov? Túto akciu nie je možné vrátiť späť.", "Ste si istí, že chcete vymazať celú históriu prekladov? Túto akciu nie je možné vrátiť späť.",
@ -1066,40 +1066,40 @@ const Map<String, String> skSK = {
"Ste si istí, že chcete odstrániť všetky záznamy prekladov pre túto reláciu? Túto akciu nie je možné vrátiť späť.", "Ste si istí, že chcete odstrániť všetky záznamy prekladov pre túto reláciu? Túto akciu nie je možné vrátiť späť.",
// 翻译模块 - 图片翻译 // 翻译模块 - 图片翻译
"selectImageSource": "Select Image Source", "selectImageSource": "Vybrať zdroj obrázka",
"imagePreview": "Image Preview", "imagePreview": "Náhľad obrázka",
"translationResult": "Výsledok prekladu", "translationResult": "Výsledok prekladu",
"recognitionResult": "Recognition Result", "recognitionResult": "Výsledok rozpoznania",
"translatedImagePreview": "Náhľad preloženého obrázka", "translatedImagePreview": "Náhľad preloženého obrázka",
"translatedImageLoadFailed": "Nepodarilo sa načítať preložený obrázok", "translatedImageLoadFailed": "Nepodarilo sa načítať preložený obrázok",
"pleaseSelectImage": "Vyberte obrázok", "pleaseSelectImage": "Vyberte obrázok",
"imageLoadFailed": "Načítanie obrázka zlyhalo", "imageLoadFailed": "Načítanie obrázka zlyhalo",
"imageQuality": "Image Quality", "imageQuality": "Kvalita obrázka",
"maxSize": "Max Size", "maxSize": "Maximálna veľkosť",
"close": "Close", "close": "Zavrieť",
"setImageQuality": "Set Image Quality", "setImageQuality": "Nastaviť kvalitu obrázka",
"currentQuality": "Current quality: @value%", "currentQuality": "Aktuálna kvalita: @value%",
"setMaxSize": "Set Max Size", "setMaxSize": "Nastaviť maximálnu veľkosť",
"currentMaxSize": "Current: @pxpx", "currentMaxSize": "Aktuálne: @pxpx",
"waitingForAction": "Waiting for action", "waitingForAction": "Čaká sa na akciu",
"pleaseSelectImageToStart": "Vyberte obrázok na začatie", "pleaseSelectImageToStart": "Vyberte obrázok na začatie",
"chooseImage": "Choose Image", "chooseImage": "Vybrať obrázok",
"openingCamera": "Opening camera...", "openingCamera": "Otvára sa kamera...",
"openingPhotoAlbum": "Opening photo album...", "openingPhotoAlbum": "Otvára sa fotogaléria...",
"cancelled": "Cancelled", "cancelled": "Zrušené",
"userCancelledSelection": "User cancelled selection", "userCancelledSelection": "Používateľ zrušil výber",
"translatingImage": "Translating Image", "translatingImage": "Prekladá sa obrázok",
"callingImageTranslateService": "Volá sa služba prekladu obrázkov...", "callingImageTranslateService": "Volá sa služba prekladu obrázkov...",
"savingRecord": "Ukladanie záznamu", "savingRecord": "Ukladanie záznamu",
"savingTranslationResult": "Ukladanie výsledku prekladu...", "savingTranslationResult": "Ukladanie výsledku prekladu...",
"translationCompleted": "Preklad dokončený", "translationCompleted": "Preklad dokončený",
"allStepsCompleted": "All steps completed", "allStepsCompleted": "Všetky kroky dokončené",
"processingFailed": "Spracovanie zlyhalo", "processingFailed": "Spracovanie zlyhalo",
"imageProcessingOrTranslationFailed": "imageProcessingOrTranslationFailed":
"Spracovanie obrázka alebo preklad zlyhal. Skúste to znova.\nChyba: {error}", "Spracovanie obrázka alebo preklad zlyhal. Skúste to znova.\nChyba: {error}",
"imageTooLarge": "Image size exceeds 4MB limit", "imageTooLarge": "Veľkosť obrázka presahuje limit 4MB",
"imageTooLargeHint": "imageTooLargeHint":
"Image size exceeds 4MB. Reduce quality or dimensions and retry", "Veľkosť obrázka presahuje 4MB. Znížte kvalitu alebo rozmery a skúste znova",
"emptyTranslationResult": "API prekladu obrázkov vrátilo prázdny výsledok", "emptyTranslationResult": "API prekladu obrázkov vrátilo prázdny výsledok",
"imageTranslationFailedTryLater": "imageTranslationFailedTryLater":
"Preklad obrázka zlyhal. Problém so sieťou alebo limitom. Skúste to neskôr", "Preklad obrázka zlyhal. Problém so sieťou alebo limitom. Skúste to neskôr",
@ -1110,11 +1110,11 @@ const Map<String, String> skSK = {
"photoAlbumPermissionRequired": "photoAlbumPermissionRequired":
"Na výber obrázkov je potrebné povolenie fotogalérie", "Na výber obrázkov je potrebné povolenie fotogalérie",
"translationDetails": "Podrobnosti prekladu", "translationDetails": "Podrobnosti prekladu",
"originalImage": "Original Image", "originalImage": "Pôvodný obrázok",
"sourceLanguage": "Source Language", "sourceLanguage": "Zdrojový jazyk",
"targetLanguage": "Target Language", "targetLanguage": "Cieľový jazyk",
"translationTime": "Čas prekladu", "translationTime": "Čas prekladu",
"shareInDevelopment": "Sharing feature under development", "shareInDevelopment": "Funkcia zdieľania je vo vývoji",
// 翻译模块 - 录音文件 // 翻译模块 - 录音文件
"translateAudioFiles": "Preložiť zvukové súbory", "translateAudioFiles": "Preložiť zvukové súbory",
@ -1166,8 +1166,8 @@ const Map<String, String> skSK = {
'deleteAccount': 'Odstrániť účet', 'deleteAccount': 'Odstrániť účet',
'deleteAccountTips': 'deleteAccountTips':
'Ste si istí, že chcete natrvalo odstrániť svoj účet? Túto akciu nie je možné vrátiť späť.', 'Ste si istí, že chcete natrvalo odstrániť svoj účet? Túto akciu nie je možné vrátiť späť.',
'clean': 'Clear Cache', 'clean': 'Vymazať vyrovnávaciu pamäť',
'cleanTips': 'Are you sure you want to clear personal cache?', 'cleanTips': 'Ste si istí, že chcete vymazať osobnú vyrovnávaciu pamäť?',
'networkConnectionFailed': 'networkConnectionFailed':
'Sieťové pripojenie zlyhalo, skontrolujte nastavenia siete a skúste to znova', 'Sieťové pripojenie zlyhalo, skontrolujte nastavenia siete a skúste to znova',
'serverTemporarilyUnavailable': 'serverTemporarilyUnavailable':
@ -1226,9 +1226,9 @@ const Map<String, String> skSK = {
'locationPermissions': 'Povolenia polohy', 'locationPermissions': 'Povolenia polohy',
'phone': 'Telefón', 'phone': 'Telefón',
'sms': 'SMS', 'sms': 'SMS',
'contacts': 'Contacts', 'contacts': 'Kontakty',
'notification': 'Notification', 'notification': 'Oznámenie',
'alarm': 'Alarm', 'alarm': 'Budík',
'calendarWrite': 'Zápis do kalendára', 'calendarWrite': 'Zápis do kalendára',
'calendarFullAccess': 'Plný prístup ku kalendáru', 'calendarFullAccess': 'Plný prístup ku kalendáru',
'locationInfo': 'Informácie o polohe', 'locationInfo': 'Informácie o polohe',
@ -1276,7 +1276,7 @@ const Map<String, String> skSK = {
'Používa sa na pripájanie k Bluetooth zariadeniam', 'Používa sa na pripájanie k Bluetooth zariadeniam',
'bluetoothConnectPermissionDetailDesc': 'bluetoothConnectPermissionDetailDesc':
'Pripájanie k Bluetooth zariadeniam vyžaduje povolenie na pripojenie Bluetooth', 'Pripájanie k Bluetooth zariadeniam vyžaduje povolenie na pripojenie Bluetooth',
'notificationPermissionDesc': 'Used for sending notification messages', 'notificationPermissionDesc': 'Používa sa na odosielanie oznámení',
'notificationPermissionDetailDesc': 'notificationPermissionDetailDesc':
'Aplikácia potrebuje povolenie oznámení na odosielanie dôležitých upozornení a správ', 'Aplikácia potrebuje povolenie oznámení na odosielanie dôležitých upozornení a správ',
'appNeedsPermissionForFullFunction': 'appNeedsPermissionForFullFunction':
@ -1284,7 +1284,7 @@ const Map<String, String> skSK = {
'permanentDenialText': 'permanentDenialText':
'Trvalo ste odmietli povolenie {permission}, prejdite do nastavení aplikácie, aby ste ho povolili', 'Trvalo ste odmietli povolenie {permission}, prejdite do nastavení aplikácie, aby ste ho povolili',
'goToSettings': 'Prejsť do nastavení', 'goToSettings': 'Prejsť do nastavení',
'bluetoothScan': 'Bluetooth Scan', 'bluetoothScan': 'Skenovanie Bluetooth',
'bluetoothConnect': 'Pripojenie Bluetooth', 'bluetoothConnect': 'Pripojenie Bluetooth',
'bluetoothScanExplanation': 'bluetoothScanExplanation':
'Aplikácia potrebuje povolenie skenovania Bluetooth na vyhľadávanie Bluetooth zariadení v okolí.', 'Aplikácia potrebuje povolenie skenovania Bluetooth na vyhľadávanie Bluetooth zariadení v okolí.',
@ -1298,8 +1298,8 @@ const Map<String, String> skSK = {
'Povolenie pripojenia Bluetooth bolo trvalo odmietnuté, prejdite do nastavení a povoľte ho manuálne.', 'Povolenie pripojenia Bluetooth bolo trvalo odmietnuté, prejdite do nastavení a povoľte ho manuálne.',
'locationPermanentDenial': 'locationPermanentDenial':
'Povolenie polohy bolo trvalo odmietnuté, prejdite do nastavení a povoľte ho manuálne.', 'Povolenie polohy bolo trvalo odmietnuté, prejdite do nastavení a povoľte ho manuálne.',
'notificationPermission': 'Notification', 'notificationPermission': 'Oznámenie',
'locationPermission': 'Location', 'locationPermission': 'Poloha',
'notificationPermissionExplanation': 'notificationPermissionExplanation':
'Povolenie oznámení je potrebné na zobrazenie stavu prehrávania hudby.', 'Povolenie oznámení je potrebné na zobrazenie stavu prehrávania hudby.',
'locationPermissionExplanation': 'locationPermissionExplanation':
@ -1308,7 +1308,7 @@ const Map<String, String> skSK = {
'Trvalo ste odmietli povolenie oznámení, prejdite do nastavení a povoľte ho.', 'Trvalo ste odmietli povolenie oznámení, prejdite do nastavení a povoľte ho.',
'locationPermissionPermanentDenial': 'locationPermissionPermanentDenial':
'Trvalo ste odmietli povolenie polohy, prejdite do nastavení a povoľte ho.', 'Trvalo ste odmietli povolenie polohy, prejdite do nastavení a povoľte ho.',
'storagePermission': 'Storage', 'storagePermission': 'Úložisko',
'microphonePermissionExplanation': 'microphonePermissionExplanation':
'Potrebujeme povolenie mikrofónu na nahrávanie zvukového obsahu.', 'Potrebujeme povolenie mikrofónu na nahrávanie zvukového obsahu.',
'storagePermissionExplanation': 'storagePermissionExplanation':
@ -1317,7 +1317,7 @@ const Map<String, String> skSK = {
'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.', 'Zistili sme, že ste trvalo zamietli povolenie mikrofónu. Ak chcete pokračovať v používaní tejto funkcie, prejdite do nastavení aplikácie a manuálne povoľte prístup k mikrofónu.',
'storagePermissionPermanentDenial': 'storagePermissionPermanentDenial':
'Zistili sme, že ste trvalo zamietli povolenie úložiska. Ak chcete pokračovať v používaní tejto funkcie, prejdite do nastavení aplikácie a manuálne povoľte prístup k úložisku.', 'Zistili sme, že ste trvalo zamietli povolenie úložiska. Ak chcete pokračovať v používaní tejto funkcie, prejdite do nastavení aplikácie a manuálne povoľte prístup k úložisku.',
'permissionUtilNeed': 'Need ', 'permissionUtilNeed': 'Vyžaduje sa ',
'permissionUtilPermission': ' Povolenie', 'permissionUtilPermission': ' Povolenie',
'permissionUtilRestricted': ' Povolenie obmedzené', 'permissionUtilRestricted': ' Povolenie obmedzené',
'permissionUtilRestrictedMessage': 'permissionUtilRestrictedMessage':
@ -1480,14 +1480,14 @@ const Map<String, String> skSK = {
"Vyberte obe slúchadlá a uistite sa, že batéria oboch je nad 20%", "Vyberte obe slúchadlá a uistite sa, že batéria oboch je nad 20%",
// OTA升级模块 - 弹窗与对话框 // OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': 'New version @version found', 'otaNewVersionFoundWithVersion': 'Nájdená nová verzia @version',
'otaConfirmUpdateNow': 'Update now?', 'otaConfirmUpdateNow': 'Aktualizovať teraz?',
'otaUpdate': 'Update', 'otaUpdate': 'Aktualizovať',
'otaUpgradeSuccess': 'Aktualizácia úspešná', 'otaUpgradeSuccess': 'Aktualizácia úspešná',
'otaUpgradeCompleteRepair': 'otaUpgradeCompleteRepair':
'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?', 'Aktualizácia firmvéru dokončená!\n\nAby zariadenie fungovalo správne, je potrebné ho znovu spárovať. Prejsť teraz na stránku párovania?',
'otaPairLater': 'Pair Later', 'otaPairLater': 'Spárovať neskôr',
'otaPairNow': 'Pair Now', 'otaPairNow': 'Spárovať teraz',
'okConfirm': 'OK', 'okConfirm': 'OK',
// OTA升级模块 - 设备检查 // OTA升级模块 - 设备检查
@ -1503,8 +1503,8 @@ const Map<String, String> skSK = {
'Nie je možné získať informácie o zariadení, skontrolujte pripojenie', 'Nie je možné získať informácie o zariadení, skontrolujte pripojenie',
'otaCannotGetProductInfoWithName': 'otaCannotGetProductInfoWithName':
'Nie je možné získať informácie o produkte, názov zariadenia: @deviceName', 'Nie je možné získať informácie o produkte, názov zariadenia: @deviceName',
'otaCannotGetBatteryInfo': 'Cannot get valid battery info', 'otaCannotGetBatteryInfo': 'Nie je možné získať platné informácie o batérii',
'otaLowBattery': 'Low Battery', 'otaLowBattery': 'Nízka batéria',
'otaSingleBatteryLow': 'otaSingleBatteryLow':
'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', 'Batéria zariadenia je príliš nízka na aktualizáciu firmvéru\nPožiadavka: batéria musí byť nad 20%\nAktuálne: @ear @battery%\nNabite a skúste to znova',
'otaDoubleBatteryLow': 'otaDoubleBatteryLow':
@ -1513,7 +1513,7 @@ const Map<String, String> skSK = {
// OTA升级模块 - 升级状态 // OTA升级模块 - 升级状态
'otaDefaultUpdateDesc': 'otaDefaultUpdateDesc':
'This update includes performance optimizations and bug fixes.', 'Táto aktualizácia obsahuje optimalizácie výkonu a opravy chýb.',
'otaGetLatestVersionFailed': 'otaGetLatestVersionFailed':
'Nepodarilo sa získať informácie o najnovšej verzii', 'Nepodarilo sa získať informácie o najnovšej verzii',
'otaGetVersionInfoFailed': 'Nepodarilo sa získať informácie o verzii', 'otaGetVersionInfoFailed': 'Nepodarilo sa získať informácie o verzii',
@ -1523,8 +1523,8 @@ const Map<String, String> skSK = {
'otaDownloadFailed': 'Sťahovanie zlyhalo', 'otaDownloadFailed': 'Sťahovanie zlyhalo',
'otaPreparingConnection': 'Pripravuje sa pripojenie zariadenia...', 'otaPreparingConnection': 'Pripravuje sa pripojenie zariadenia...',
'otaConnectingDevice': 'Pripája sa k zariadeniu...', 'otaConnectingDevice': 'Pripája sa k zariadeniu...',
'otaUpgradeStarted': 'OTA upgrade started...', 'otaUpgradeStarted': 'OTA aktualizácia sa začala...',
'otaUpgradeProgressWithPercent': 'Upgrade progress: @percent%', 'otaUpgradeProgressWithPercent': 'Priebeh aktualizácie: @percent%',
'otaUpgradeSuccessComplete': 'Aktualizácia bola úspešne dokončená', 'otaUpgradeSuccessComplete': 'Aktualizácia bola úspešne dokončená',
'otaUpgradeFailedWithCode': 'Aktualizácia zlyhala, kód chyby: @code', 'otaUpgradeFailedWithCode': 'Aktualizácia zlyhala, kód chyby: @code',
'otaUpgradeFailedTitle': 'Aktualizácia zlyhala', 'otaUpgradeFailedTitle': 'Aktualizácia zlyhala',
@ -1688,15 +1688,15 @@ const Map<String, String> skSK = {
"东帝汶": "Východný Timor", "东帝汶": "Východný Timor",
"斐济": "Fidži", "斐济": "Fidži",
"所罗门群岛": "Šalamúnove ostrovy", "所罗门群岛": "Šalamúnove ostrovy",
"刚果民主共和国": "Democratic Republic of the Congo", "刚果民主共和国": "Konžská demokratická republika",
"安哥拉": "Angola", "安哥拉": "Angola",
"苏丹": "Sudan", "苏丹": "Sudan",
"马尔代夫": "Maldives", "马尔代夫": "Maldivy",
"不丹": "Bhutan", "不丹": "Bhután",
"摩纳哥": "Monaco", "摩纳哥": "Monako",
"圣马力诺": "San Marino", "圣马力诺": "San Maríno",
"牙买加": "Jamaica", "牙买加": "Jamajka",
"巴哈马": "Bahamas", "巴哈马": "Bahamy",
"巴布亚新几内亚": "Papua New Guinea", "巴布亚新几内亚": "Papua-Nová Guinea",
"萨摩亚": "Samoa", "萨摩亚": "Samoa",
}; };

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

@ -219,7 +219,7 @@ const Map<String, String> slSI = {
"scene": "Scenarij", "scene": "Scenarij",
// 用量统计模块 // 用量统计模块
"aiChat": "AI Chat", "aiChat": "AI klepet",
"translationStats": "Statistika prevodov", "translationStats": "Statistika prevodov",
"meetingStats": "Statistika sestankov", "meetingStats": "Statistika sestankov",
"today": "Danes", "today": "Danes",
@ -238,36 +238,36 @@ const Map<String, String> slSI = {
"translationApi": "API prevajanja", "translationApi": "API prevajanja",
"asr": "ASR", "asr": "ASR",
"tts": "TTS", "tts": "TTS",
"dataVolumeStats": "Data Volume Stats", "dataVolumeStats": "Statistika količine podatkov",
"sourceTextCharacters": "Source Text Characters", "sourceTextCharacters": "Znaki izvornega besedila",
"ttsTextCharacters": "TTS Text Characters", "ttsTextCharacters": "Znaki besedila TTS",
"effectiveAudioDuration": "Effective Audio Duration", "effectiveAudioDuration": "Učinkovito trajanje zvoka",
"totalSessionDuration": "Total Session Duration", "totalSessionDuration": "Skupno trajanje seje",
"costStats": "Cost Stats", "costStats": "Statistika stroškov",
"estimatedCost": "Estimated Cost", "estimatedCost": "Ocenjeni strošek",
"dailyCostThreshold": "Daily Cost Threshold", "dailyCostThreshold": "Dnevna meja stroškov",
"monthlyCostThreshold": "Monthly Cost Threshold", "monthlyCostThreshold": "Mesečna meja stroškov",
"usageBehaviorStats": "Usage Behavior Stats", "usageBehaviorStats": "Statistika uporabe",
"mostUsedLanguagePair": "Most-used language pair", "mostUsedLanguagePair": "Najpogosteje uporabljeni jezikovni par",
"mostUsedMode": "Most-used mode", "mostUsedMode": "Najpogosteje uporabljen način",
"asrApiCalls": "ASR Calls", "asrApiCalls": "Klici ASR",
"totalAudioDuration": "Total Audio Duration", "totalAudioDuration": "Skupno trajanje zvoka",
"audioFileSize": "Audio File Size", "audioFileSize": "Velikost zvočne datoteke",
"transcriptBytes": "Transcript Bytes", "transcriptBytes": "Bajti prepisa",
"loadFailed": "Nalaganje ni uspelo", "loadFailed": "Nalaganje ni uspelo",
"statsLoadFailedTryLater": "statsLoadFailedTryLater":
"Statistike ni bilo mogoče naložiti. Poskusite znova pozneje.", "Statistike ni bilo mogoče naložiti. Poskusite znova pozneje.",
"cleanupComplete": "Cleanup Complete", "cleanupComplete": "Čiščenje dokončano",
"cleanedOldData": "Cleaned data older than 90 days", "cleanedOldData": "Očiščeni podatki starejši od 90 dni",
"exportFeature": "Export Feature", "exportFeature": "Funkcija izvoza",
"exportInDevelopment": "Data export is under development", "exportInDevelopment": "Izvoz podatkov je v razvoju",
// 商品模块 - 通用 // 商品模块 - 通用
'availablePackages': 'Available Packages', 'availablePackages': 'Razpoložljivi paketi',
'remainingQuota': 'Remaining Quota', 'remainingQuota': 'Preostala kvota',
'totalQuota': 'Total Quota', 'totalQuota': 'Skupna kvota',
'remaining': 'Remaining', 'remaining': 'Preostanek',
'featureDescription': 'Feature Description', 'featureDescription': 'Opis funkcije',
'paymentSuccess': 'Plačilo uspešno', 'paymentSuccess': 'Plačilo uspešno',
'paymentFailed': 'Plačilo ni uspelo', 'paymentFailed': 'Plačilo ni uspelo',
'gotIt': 'Razumem', 'gotIt': 'Razumem',
@ -327,109 +327,112 @@ const Map<String, String> slSI = {
'alipayPaymentLaunchFailed': 'Zagon Alipay ni uspel', 'alipayPaymentLaunchFailed': 'Zagon Alipay ni uspel',
'cannotLaunchAlipayPayment': 'Ni mogoče zagnati Alipay', 'cannotLaunchAlipayPayment': 'Ni mogoče zagnati Alipay',
'alipayPaymentException': 'Izjema Alipay', 'alipayPaymentException': 'Izjema Alipay',
"insufficientIntegral": "Insufficient integral", "insufficientIntegral": "Premalo točk",
"insufficientBalanceDesc": "insufficientBalanceDesc":
"Ni dovolj dobroimetja, pojdite na ustrezno stran za polnjenje in dopolnite.", "Ni dovolj dobroimetja, pojdite na ustrezno stran za polnjenje in dopolnite.",
"recharge": "Go to Recharge", "recharge": "Pojdi na polnjenje",
"aiMemberExpiredDesc": "aiMemberExpiredDesc":
"Članstvo AI je poteklo, pojdite na stran za polnjenje članstva in ga obnovite.", "Članstvo AI je poteklo, pojdite na stran za polnjenje članstva in ga obnovite.",
// 商品模块 - AI商品页 // 商品模块 - AI商品页
'musicAndRecommendation': 'Music & Recommendation', 'musicAndRecommendation': 'Glasba in priporočila',
'navigationAndRoutes': 'Navigation & Routes', 'navigationAndRoutes': 'Navigacija in poti',
'nearbySearch': 'Nearby Search', 'nearbySearch': 'Iskanje v bližini',
'newsInformation': 'News', 'newsInformation': 'Novice',
'communicationAssistant': 'Communication Assistant', 'communicationAssistant': 'Pomočnik za komunikacijo',
'aiHeaderDesc1': 'aiHeaderDesc1': 'Daljša kvota pogovora, več klicev orodij, daljši kontekst.',
'Longer conversation quota, more tool calls, extended context length.',
'aiHeaderDesc2': 'aiHeaderDesc2':
'Suitable for agent Q&A, summarization, analysis, and task execution.', 'Primerno za vprašanja in odgovore agenta, povzemanje, analizo in izvajanje nalog.',
'musicSearchPlaybackControl': 'Music library search and playback control', 'musicSearchPlaybackControl':
'Iskanje v glasbeni knjižnici in nadzor predvajanja',
'smartPlaylistAndSimilarRecommendations': 'smartPlaylistAndSimilarRecommendations':
'Smart playlist and similar song recommendations', 'Pametni seznami predvajanja in priporočila podobnih pesmi',
'routePlanningAndCongestionAvoidance': 'routePlanningAndCongestionAvoidance':
'Route planning and congestion avoidance', 'Načrtovanje poti in izogibanje zastojem',
'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'voiceBroadcastAndWaypoints': 'Glasovno vodenje in nastavitve vmesnih točk',
'realTimeWeatherForecast': 'Real-time weather and forecast', 'realTimeWeatherForecast': 'Vreme in napoved v realnem času',
'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', 'clothingAdviceAndTravelReminders':
'poiSearchFoodGasParking': 'POI search: dining / gas / parking', 'Nasveti za oblačila in potovalni opomniki',
'ratingsHoursAndDirectRoutes': 'Ratings, business hours, and direct routing', 'poiSearchFoodGasParking': 'Iskanje POI: hrana / gorivo / parkirišče',
'hotNewsAndTopicOverview': 'Hot news and topic overview', 'ratingsHoursAndDirectRoutes': 'Ocene, delovni čas in neposredna navigacija',
'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'hotNewsAndTopicOverview': 'Pregled vročih novic in tem',
'helpCallAndSMS': 'Help with calls and SMS', 'longArticleSummariesAndKeyPoints':
'Povzetki dolgih člankov in ključne točke',
'helpCallAndSMS': 'Pomoč pri klicih in SMS',
'templatedMessagesAndScheduleReminders': 'templatedMessagesAndScheduleReminders':
'Template messages and schedule reminders', 'Predloge sporočil in časovno načrtovani opomniki',
'aiDisclaimer': 'aiDisclaimer':
'Funkcije so odvisne od dovoljenj naprave, razpoložljivosti storitev in omrežnih razmer.', 'Funkcije so odvisne od dovoljenj naprave, razpoložljivosti storitev in omrežnih razmer.',
// 商品模块 - 翻译商品页 // 商品模块 - 翻译商品页
'realtimeTranscription': 'Real-time Transcription', 'realtimeTranscription': 'Prepis v realnem času',
'sceneLexicon': 'Scenario Glossary', 'sceneLexicon': 'Slovar konteksta',
'subtitleDisplay': 'Subtitles', 'subtitleDisplay': 'Podnapisi',
'transHeaderDesc1': 'transHeaderDesc1':
'Sočasno tolmačenje in prevajanje besedila v realnem času z nizko zakasnitvijo zvoka.', 'Sočasno tolmačenje in prevajanje besedila v realnem času z nizko zakasnitvijo zvoka.',
'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'transHeaderDesc2': 'Primerno za potovanja, posel, govore in poučevanje.',
'translateZhEn': 'Prevajanje kitajščina–angleščina', 'translateZhEn': 'Prevajanje kitajščina–angleščina',
'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'lowLatencyVoiceBroadcast': 'Glasovno predvajanje z nizko zakasnitvijo',
'multiLangTextTranslation': 'Večjezično prevajanje besedila', 'multiLangTextTranslation': 'Večjezično prevajanje besedila',
'termOptimizationContextPreserve': 'termOptimizationContextPreserve':
'Terminology optimization and context preservation', 'Optimizacija terminologije in ohranjanje konteksta',
'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'lexiconTourBusinessLife': 'Slovarji za potovanja/posel/življenje',
'personalVocabularyMemory': 'Personal vocabulary memory', 'personalVocabularyMemory': 'Osebni slovar',
'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'conversationSubtitleLargeText':
'colorHighContrast': 'High color contrast', 'Podnapisi pogovora / način velikega besedila',
'colorHighContrast': 'Visok barvni kontrast',
'transDisclaimer': 'transDisclaimer':
'Učinkovitost prevajanja je odvisna od mikrofona, zakasnitve omrežja in hrupa okolice.', 'Učinkovitost prevajanja je odvisna od mikrofona, zakasnitve omrežja in hrupa okolice.',
// 商品模块 - 会议商品页 // 商品模块 - 会议商品页
'meetingRecording': 'Snemanje sestankov', 'meetingRecording': 'Snemanje sestankov',
'transcriptionAndSummary': 'Transcription & Summary', 'transcriptionAndSummary': 'Prepis in povzetek',
'keywordSearch': 'Keyword Search', 'keywordSearch': 'Iskanje ključnih besed',
'collaborationSharing': 'Collaboration & Sharing', 'collaborationSharing': 'Sodelovanje in deljenje',
'meetingHeaderDesc1': 'meetingHeaderDesc1':
'Snemanje zvoka, prepis, iskanje ključnih besed in samodejni povzetek za večjo učinkovitost sestankov.', 'Snemanje zvoka, prepis, iskanje ključnih besed in samodejni povzetek za večjo učinkovitost sestankov.',
'meetingHeaderDesc2': 'meetingHeaderDesc2':
'Suitable for business meetings, class notes, and interview minutes.', 'Primerno za poslovne sestanke, zapiske pri pouku in zapisnike intervjujev.',
'meetingAutoRecording': 'Samodejno snemanje in segmentacija', 'meetingAutoRecording': 'Samodejno snemanje in segmentacija',
'meetingSpeakerTagging': 'Speaker labeling', 'meetingSpeakerTagging': 'Označevanje govorcev',
'meetingLongAudioTranscription': 'Long audio transcription', 'meetingLongAudioTranscription': 'Prepis dolgega zvoka',
'meetingKeyPointSummary': 'Key point extraction', 'meetingKeyPointSummary': 'Izluščanje ključnih točk',
'meetingTopicNameSearch': 'Search by topic/name', 'meetingTopicNameSearch': 'Iskanje po temi/imenu',
'meetingTimelineJump': 'Timeline jump', 'meetingTimelineJump': 'Skok po časovnici',
'meetingExportSummary': 'Export minutes', 'meetingExportSummary': 'Izvoz zapisnika',
'meetingMultiPlatformShare': 'Share across platforms', 'meetingMultiPlatformShare': 'Deljenje med platformami',
'meetingDisclaimer': 'meetingDisclaimer':
'Uporabljajte v tihem okolju; delovanje je odvisno od mikrofona in omrežja.', 'Uporabljajte v tihem okolju; delovanje je odvisno od mikrofona in omrežja.',
// 商品模块 - VIP会员页 // 商品模块 - VIP会员页
'benefitsOverview': 'Benefits overview', 'benefitsOverview': 'Pregled ugodnosti',
'higherQuota': 'Higher usage quota', 'higherQuota': 'Višja kvota uporabe',
'lowerUnitPrice': 'Lower unit price', 'lowerUnitPrice': 'Nižja cena na enoto',
'priorityService': 'Priority service', 'priorityService': 'Prednostna podpora',
'exclusiveSupportChannel': 'Dedicated support channel', 'exclusiveSupportChannel': 'Namenski kanal podpore',
'fastResponse': 'Fast issue response', 'fastResponse': 'Hiter odziv na težave',
'eventsAndDiscounts': 'Events and discounts', 'eventsAndDiscounts': 'Dogodki in popusti',
'memberExclusiveEvents': 'Member-exclusive events', 'memberExclusiveEvents': 'Ekskluzivni dogodki za člane',
'longTermDiscountPlan': 'Long-term discount plan', 'longTermDiscountPlan': 'Dolgoročni popustni načrt',
'generalPrivileges': 'General privileges', 'generalPrivileges': 'Splošne ugodnosti',
'earlyAccessNewFeatures': 'Early access to new features', 'earlyAccessNewFeatures': 'Zgodnji dostop do novih funkcij',
'crossDeviceSync': 'Sinhronizacija med napravami', 'crossDeviceSync': 'Sinhronizacija med napravami',
'vipDisclaimer': 'vipDisclaimer':
'Actual benefits depend on the package details and may change with versions.', 'Dejanske ugodnosti so odvisne od podrobnosti paketa in se lahko spreminjajo z različicami.',
// 商品模块 - 商品名称与描述 // 商品模块 - 商品名称与描述
'ai_001_name': 'AI Basic 100', 'ai_001_name': 'AI Osnovni 100',
'ai_002_name': 'AI Basic 500', 'ai_002_name': 'AI Osnovni 500',
'ai_003_name': 'AI Basic 1000', 'ai_003_name': 'AI Osnovni 1000',
'meet_001_name': 'Meeting Basic 100', 'meet_001_name': 'Sestanek Osnovni 100',
'meet_002_name': 'Meeting Basic 500', 'meet_002_name': 'Sestanek Osnovni 500',
'meet_003_name': 'Meeting Basic 1000', 'meet_003_name': 'Sestanek Osnovni 1000',
'trans_001_name': 'Prevod Osnovni 100', 'trans_001_name': 'Prevod Osnovni 100',
'trans_002_name': 'Prevod Osnovni 500', 'trans_002_name': 'Prevod Osnovni 500',
'trans_003_name': 'Prevod Osnovni 1000', 'trans_003_name': 'Prevod Osnovni 1000',
'ai_001_desc': 'Includes 100 uses. Access core AI features.', 'ai_001_desc': 'Vključuje 100 uporab. Dostop do osnovnih funkcij AI.',
'ai_002_desc': 'Includes 500 uses. Access core AI features.', 'ai_002_desc': 'Vključuje 500 uporab. Dostop do osnovnih funkcij AI.',
'ai_003_desc': 'Includes 1000 uses. Access core AI features.', 'ai_003_desc': 'Vključuje 1000 uporab. Dostop do osnovnih funkcij AI.',
'meet_001_desc': 'Vključuje 100 snemanj/prepisov sestankov.', 'meet_001_desc': 'Vključuje 100 snemanj/prepisov sestankov.',
'meet_002_desc': 'Vključuje 500 snemanj/prepisov sestankov.', 'meet_002_desc': 'Vključuje 500 snemanj/prepisov sestankov.',
'meet_003_desc': 'Vključuje 1000 snemanj/prepisov sestankov.', 'meet_003_desc': 'Vključuje 1000 snemanj/prepisov sestankov.',
@ -438,46 +441,48 @@ const Map<String, String> slSI = {
'trans_003_desc': 'Vključuje 1000 prevodov (glas/besedilo).', 'trans_003_desc': 'Vključuje 1000 prevodov (glas/besedilo).',
// 商品模块 - 页脚 // 商品模块 - 页脚
'appNameProvider': 'App: VoiTrans · Provided by: VoiTrans', 'appNameProvider': 'Aplikacija: VoiTrans · Ponudnik: VoiTrans',
'iapCustomerServiceQQLabel': 'IAP customer service QQ: @qq', 'iapCustomerServiceQQLabel': 'QQ za podporo IAP: @qq',
'copyrightVoitrans': '© 2025 Voitrans Technologies', 'copyrightVoitrans': '© 2025 Voitrans Technologies',
// 新手引导 // 新手引导
'skip': 'Preskoči', 'skip': 'Preskoči',
'next': 'Next', 'next': 'Naprej',
'sayLilyHint': 'Say "Lily Lily" to the mic', 'sayLilyHint': 'Recite "Lily Lily" v mikrofon',
'imHere': 'I’m here~', 'imHere': 'Tukaj sem~',
'guideWelcomeWakeAI': 'Welcome to Voitrans! First, wake your AI “Lily”.', 'guideWelcomeWakeAI':
'aiReplyCompleted': 'Lily has finished the reply!', 'Dobrodošli v Voitrans! Najprej zbudite svojo AI “Lily”.',
'aiThinking': 'Lily is thinking…', 'aiReplyCompleted': 'Lily je zaključila odgovor!',
'guideAwakenSuccess': 'Great! Lily is awake—ask it to help.', 'aiThinking': 'Lily razmišlja…',
'confirmInput': 'Confirm Input', 'guideAwakenSuccess': 'Odlično! Lily je budna — vprašajte jo za pomoč.',
'guideClickSendPrefix': 'Tap send, ', 'confirmInput': 'Potrdi vnos',
'guideWeatherStart': 'Tell Lily: “What’s the weather today?”', 'guideClickSendPrefix': 'Tapnite pošlji, ',
'guideWeatherInput': 'What’s the weather today?', 'guideWeatherStart': 'Recite Lily: “Kakšno bo danes vreme?”',
'guideWeatherSend': 'Lily will report the weather in real time', 'guideWeatherInput': 'Kakšno bo danes vreme?',
'guideWeatherEnd': 'Lily can report weather live—try other commands', 'guideWeatherSend': 'Lily bo v realnem času poročala o vremenu',
'guideMusicStart': 'Tell Lily: “Play some rock music”', 'guideWeatherEnd':
'guideMusicInput': 'Play some rock music', 'Lily lahko poroča o vremenu v živo — poskusite druge ukaze',
'guideMusicSend': 'Lily will find music for you', 'guideMusicStart': 'Recite Lily: “Predvajaj rock glasbo”',
'guideMusicEnd': 'Lily found music—try other commands', 'guideMusicInput': 'Predvajaj rock glasbo',
'guideNavStart': 'Tell Lily: “Navigate to Shenzhen Airport”', 'guideMusicSend': 'Lily bo poiskala glasbo za vas',
'guideNavInput': 'Navigate to Shenzhen Airport', 'guideMusicEnd': 'Lily je našla glasbo — poskusite druge ukaze',
'guideNavSend': 'Lily will plan the route', 'guideNavStart': 'Recite Lily: “Navigiraj do letališča”',
'guideNavEnd': 'Navigation set—try other commands', 'guideNavInput': 'Navigiraj do letališča',
'guideNavSend': 'Lily bo načrtovala pot',
'guideNavEnd': 'Navigacija je nastavljena — poskusite druge ukaze',
'guideMeetingStart': 'guideMeetingStart':
'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'Recite Lily: “Ustvari opomnik za sestanek za jutri ob 15:00”',
'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingInput': 'Ustvari opomnik za sestanek za jutri ob 15:00',
'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingSend': 'Lily bo ustvarila opomnik za sestanek',
'guideMeetingEnd': 'Reminder created—try other commands', 'guideMeetingEnd': 'Opomnik ustvarjen — poskusite druge ukaze',
'guidePhoneStart': 'Tell Lily: “Call Mom”', 'guidePhoneStart': 'Recite Lily: “Pokliči mamo”',
'guidePhoneInput': 'Call Mom', 'guidePhoneInput': 'Pokliči mamo',
'guidePhoneSend': 'Lily will make the call', 'guidePhoneSend': 'Lily bo opravila klic',
'guidePhoneEnd': 'Call placed—try other commands', 'guidePhoneEnd': 'Klic opravljen — poskusite druge ukaze',
'guideSmsStart': 'Tell Lily: “Send Dad a text: I’ll be home for dinner”', 'guideSmsStart': 'Recite Lily: “Pošlji očetu sporočilo: Pridem na večerjo”',
'guideSmsInput': 'Text Dad: I’ll be home for dinner', 'guideSmsInput': 'Pošlji očetu: Pridem na večerjo',
'guideSmsSend': 'Lily will send the message', 'guideSmsSend': 'Lily bo poslala sporočilo',
'guideSmsEnd': 'Message sent—voice control is convenient', 'guideSmsEnd': 'Sporočilo poslano — glasovno upravljanje je priročno',
// Meeting模块 - 首页与导航 // Meeting模块 - 首页与导航
"startMeeting": "Začni sestanek", "startMeeting": "Začni sestanek",
@ -491,24 +496,24 @@ const Map<String, String> slSI = {
'recordingDetails': 'Podrobnosti posnetka', 'recordingDetails': 'Podrobnosti posnetka',
'aiSummary': 'Povzetek AI', 'aiSummary': 'Povzetek AI',
'meetingTranscript': 'Prepis sestanka', 'meetingTranscript': 'Prepis sestanka',
'files': 'Files', 'files': 'Datoteke',
'mine': 'Mine', 'mine': 'Moje',
'connect': 'Poveži', 'connect': 'Poveži',
'allFiles': 'All Files', 'allFiles': 'Vse datoteke',
'searchInAllFiles': 'Search in all files', 'searchInAllFiles': 'Išči v vseh datotekah',
'from': 'From', 'from': 'Od',
'sortBy': 'Sort by', 'sortBy': 'Razvrsti po',
'creationTime': 'Creation Time', 'creationTime': 'Čas ustvarjanja',
'bluetoothConnection': 'Povezava Bluetooth', 'bluetoothConnection': 'Povezava Bluetooth',
'meetingReconnect': 'Ponovno poveži', 'meetingReconnect': 'Ponovno poveži',
'searching': 'Searching...', 'searching': 'Iskanje...',
'searchFailed': 'Iskanje ni uspelo, preverite, ali je Bluetooth vklopljen', 'searchFailed': 'Iskanje ni uspelo, preverite, ali je Bluetooth vklopljen',
'aiPenNotFound': 'Naprave AI PEN ni mogoče najti', 'aiPenNotFound': 'Naprave AI PEN ni mogoče najti',
'connectedToAiPen': 'Povezano z napravo AI PEN', 'connectedToAiPen': 'Povezano z napravo AI PEN',
'checkingNewFiles': 'Preverjanje novih datotek za uvoz', 'checkingNewFiles': 'Preverjanje novih datotek za uvoz',
'startingWifi': 'Starting Wi-Fi...', 'startingWifi': 'Zaganjanje Wi-Fi...',
'newFilesDetected': 'New files detected, preparing to import', 'newFilesDetected': 'Zaznane nove datoteke, priprava na uvoz',
'noNewFiles': 'No new files to import', 'noNewFiles': 'Ni novih datotek za uvoz',
'connectingWifi': 'Povezovanje z Wi‑Fi...', 'connectingWifi': 'Povezovanje z Wi‑Fi...',
'wifiConnected': 'Wi‑Fi je uspešno povezan', 'wifiConnected': 'Wi‑Fi je uspešno povezan',
'downloadingFiles': 'Prenašanje datotek...', 'downloadingFiles': 'Prenašanje datotek...',
@ -523,7 +528,7 @@ const Map<String, String> slSI = {
'liveRecording': 'Snemanje v živo', 'liveRecording': 'Snemanje v živo',
'audioVideoRecording': 'Snemanje avdia/videa', 'audioVideoRecording': 'Snemanje avdia/videa',
'callRecording': 'Snemanje klica', 'callRecording': 'Snemanje klica',
'importAudio': 'Import Audio', 'importAudio': 'Uvozi zvok',
'meetingRecordExitTitle': 'Izhod iz snemanja', // 退出录音 'meetingRecordExitTitle': 'Izhod iz snemanja', // 退出录音
'meetingRecordExitMessage': 'Izberite dejanje po izhodu', // 请选择离开后的操作 'meetingRecordExitMessage': 'Izberite dejanje po izhodu', // 请选择离开后的操作
'meetingRecordEndAndSave': 'Končaj in shrani', // 结束录音并保存 'meetingRecordEndAndSave': 'Končaj in shrani', // 结束录音并保存
@ -545,30 +550,30 @@ const Map<String, String> slSI = {
'Za prikaz plavajoče vrstice snemanja (časovnik/premor/nadaljuj) med snemanjem potrebujemo dovoljenje za prekrivanje.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 'Za prikaz plavajoče vrstice snemanja (časovnik/premor/nadaljuj) med snemanjem potrebujemo dovoljenje za prekrivanje.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。
'overlayPermissionOpenSettingsFailed': 'overlayPermissionOpenSettingsFailed':
'Sistemskih nastavitev ni bilo mogoče samodejno odpreti. Odprite Nastavitve in ročno omogočite dovoljenje za prekrivanje.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'Sistemskih nastavitev ni bilo mogoče samodejno odpreti. Odprite Nastavitve in ročno omogočite dovoljenje za prekrivanje.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。
'transcribing': 'Transcribing...', 'transcribing': 'Prepisovanje...',
'summarizing': 'Summarizing...', 'summarizing': 'Povzemanje...',
'analyzing': 'Analyzing...', 'analyzing': 'Analiziranje...',
'summaryComplete': 'Summary Complete', 'summaryComplete': 'Povzetek dokončan',
'generate': 'Generate', 'generate': 'Ustvari',
'overview': 'Overview', 'overview': 'Pregled',
'transcription': 'Transcription', 'transcription': 'Prepis',
'summary': 'Summary', 'summary': 'Povzetek',
'mindMap': 'Mind Map', 'mindMap': 'Miselni zemljevid',
'editSpeaker': 'Edit', 'editSpeaker': 'Uredi',
'nameSpeaker': 'Name Speaker', 'nameSpeaker': 'Poimenuj govorca',
// Meeting模块 - 转写与总结 // Meeting模块 - 转写与总结
'reSummarize': 'Re-summarize', 'reSummarize': 'Ponovno povzemanje',
'dateAndTime': 'Date & Time', 'dateAndTime': 'Datum in čas',
'location': 'Location', 'location': 'Lokacija',
'attendees': 'Attendees', 'attendees': 'Udeleženci',
'inputLocation': 'Enter Location', 'inputLocation': 'Vnesite lokacijo',
'inputAttendees': 'Enter Attendees', 'inputAttendees': 'Vnesite udeležence',
// Meeting模块 - 模版与生成 // Meeting模块 - 模版与生成
'selectSummaryTemplate': 'Select Summary Template', 'selectSummaryTemplate': 'Izberite predlogo povzetka',
'useThisTemplate': 'Use This Template', 'useThisTemplate': 'Uporabi to predlogo',
'lastUsed': 'Last Used', 'lastUsed': 'Nazadnje uporabljeno',
'create': 'Ustvari', 'create': 'Ustvari',
'templateDetails': 'Podrobnosti predloge', 'templateDetails': 'Podrobnosti predloge',
'tag': 'Oznaka', 'tag': 'Oznaka',
@ -586,63 +591,63 @@ const Map<String, String> slSI = {
'inputDescHint': 'Prosimo vnesite opis', 'inputDescHint': 'Prosimo vnesite opis',
'custom': 'Po meri', 'custom': 'Po meri',
'pleaseEnter': 'Prosimo vnesite', 'pleaseEnter': 'Prosimo vnesite',
'viewAll': 'View All', 'viewAll': 'Prikaži vse',
'recordingLanguage': 'Jezik snemanja', 'recordingLanguage': 'Jezik snemanja',
'chineseSimplified': 'Chinese Mandarin (Simplified)', 'chineseSimplified': 'Kitajščina mandarinščina (poenostavljena)',
'meetingGenerateNow': 'Generate Now', 'meetingGenerateNow': 'Ustvari zdaj',
'keyEventsAnalyzed': 'Analyzed {count} key events.', 'keyEventsAnalyzed': 'Analiziranih {count} ključnih dogodkov.',
'aiAnalysisDesc': 'aiAnalysisDesc':
'AI analiza prepozna ključne dogodke v posnetkih, kar vam omogoča izbiro pomembnih dogodkov za generiranje z AI.', 'AI analiza prepozna ključne dogodke v posnetkih, kar vam omogoča izbiro pomembnih dogodkov za generiranje z AI.',
// Meeting模块 - 文件操作 // Meeting模块 - 文件操作
'importing': 'Importing...', 'importing': 'Uvažanje...',
'batchImporting': 'Batch importing...', 'batchImporting': 'Paketno uvažanje...',
'importingLocalRecordings': 'Uvažanje lokalnih posnetkov...', 'importingLocalRecordings': 'Uvažanje lokalnih posnetkov...',
'importFailed': 'Uvoz datoteke ni uspel: {filePath}, napaka: {error}', 'importFailed': 'Uvoz datoteke ni uspel: {filePath}, napaka: {error}',
'importSuccess': 'Uspešno uvoženih {count} lokalnih posnetkov', 'importSuccess': 'Uspešno uvoženih {count} lokalnih posnetkov',
'importError': 'Uvoz ni uspel: {error}', 'importError': 'Uvoz ni uspel: {error}',
'pleaseSelectAudioFile': 'Izberite zvočno datoteko', 'pleaseSelectAudioFile': 'Izberite zvočno datoteko',
'shareAudio': 'Share Meeting Audio', 'shareAudio': 'Deli zvok sestanka',
'shareComplete': 'Share complete!', 'shareComplete': 'Deljenje dokončano!',
'shareFailed': 'Deljenje ni uspelo: {error}', 'shareFailed': 'Deljenje ni uspelo: {error}',
'fileProcessingFailed': 'fileProcessingFailed':
'Obdelava datoteke ni uspela: {filePath}, napaka: {error}', 'Obdelava datoteke ni uspela: {filePath}, napaka: {error}',
// Meeting模块 - 思维导图 // Meeting模块 - 思维导图
'saveMindMap': 'Shrani miselni zemljevid', 'saveMindMap': 'Shrani miselni zemljevid',
'shareMindMap': 'Share Mind Map', 'shareMindMap': 'Deli miselni zemljevid',
'shareSuccess': 'Deljenje uspešno', 'shareSuccess': 'Deljenje uspešno',
// Meeting模块 - AI问答 // Meeting模块 - AI问答
'askAI': 'Ask AI ...', 'askAI': 'Vprašaj AI ...',
'askAIPrompt': 'What can I help you with today?', 'askAIPrompt': 'Kako vam lahko danes pomagam?',
'continueAsk': 'Continue Asking', 'continueAsk': 'Nadaljuj z vprašanji',
'todoList': 'To-Do List', 'todoList': 'Seznam opravil',
'extractConclusion': 'Extract Conclusion', 'extractConclusion': 'Izlušči zaključek',
'generateKeyIndicators': 'Generate Key Indicators', 'generateKeyIndicators': 'Ustvari ključne kazalnike',
// Meeting模块 - 分享与导出 // Meeting模块 - 分享与导出
'shareLink': 'Share Link', 'shareLink': 'Deli povezavo',
'copyTranscript': 'Copy Transcript', 'copyTranscript': 'Kopiraj prepis',
'copySummary': 'Copy Summary', 'copySummary': 'Kopiraj povzetek',
'exportAudio': 'Export Audio', 'exportAudio': 'Izvozi zvok',
'exportTranscript': 'Export Transcript', 'exportTranscript': 'Izvozi prepis',
'shareMeetingAudio': 'Share Meeting Audio', 'shareMeetingAudio': 'Deli zvok sestanka',
'exportSummary': 'Export Summary', 'exportSummary': 'Izvozi povzetek',
'exportAs': 'Export As', 'exportAs': 'Izvozi kot',
'exportingPDF': 'Exporting PDF...', 'exportingPDF': 'Izvoz PDF...',
'export': 'Izvozi', 'export': 'Izvozi',
// Meeting模块 - 发言者 // Meeting模块 - 发言者
'applyToAllParagraphs': 'Uporabi za vse odstavke tega govorca', 'applyToAllParagraphs': 'Uporabi za vse odstavke tega govorca',
'summaryWillBeUpdatedAutomatically': 'summaryWillBeUpdatedAutomatically':
'Povzetek se bo samodejno posodabljal glede na predlogo', 'Povzetek se bo samodejno posodabljal glede na predlogo',
'nameCurrentSpeaker': 'Name Current Speaker', 'nameCurrentSpeaker': 'Poimenuj trenutnega govorca',
'recentlyUsedNames': 'Recently Used Names', 'recentlyUsedNames': 'Nedavno uporabljena imena',
'applyToCurrentParagraph': 'Apply to Current Paragraph', 'applyToCurrentParagraph': 'Uporabi za trenutni odstavek',
'totalTime': 'Total Time', 'totalTime': 'Skupni čas',
'summarySpeakerWillBeUpdatedAutomatically': 'summarySpeakerWillBeUpdatedAutomatically':
'Summary speakers will be updated automatically', 'Govorci v povzetku se bodo samodejno posodobili',
// Meeting模块 - 云端同步 // Meeting模块 - 云端同步
'syncToCloud': 'Sinhroniziraj v oblak', 'syncToCloud': 'Sinhroniziraj v oblak',
@ -653,95 +658,95 @@ const Map<String, String> slSI = {
// Meeting模块 - 我的页面 // Meeting模块 - 我的页面
'transcriptionRecords': 'Zapisi prepisov', 'transcriptionRecords': 'Zapisi prepisov',
'templateCommunity': 'Template Community', 'templateCommunity': 'Skupnost predlog',
'comingSoon': 'Coming Soon', 'comingSoon': 'Kmalu na voljo',
'integration': 'Integration', 'integration': 'Integracija',
'voitransPrivateCloud': 'VOITRANS PRIVATE CLOUD', 'voitransPrivateCloud': 'VOITRANS PRIVATE CLOUD',
'enabled': 'Omogočeno', 'enabled': 'Omogočeno',
'disabled': 'Onemogočeno', 'disabled': 'Onemogočeno',
'myVoitransDevice': 'Moja naprava VOITRANS', 'myVoitransDevice': 'Moja naprava VOITRANS',
'helpAndFeedback': 'Help & Feedback', 'helpAndFeedback': 'Pomoč in povratne informacije',
'aboutVoitrans': 'About VOITRANS', 'aboutVoitrans': 'O VOITRANS',
'meetingDays': 'Days', 'meetingDays': 'Dnevi',
'meetingHours': 'Hours', 'meetingHours': 'Ure',
'voitransAiMember': 'Voitrans AI Member', 'voitransAiMember': 'Član Voitrans AI',
'unlockStarterMember': 'Unlock Starter Member', 'unlockStarterMember': 'Odkleni Starter članstvo',
'bindDeviceToActivate': 'bindDeviceToActivate':
'Povežite napravo Voitrans za aktivacijo Starter članstva', 'Povežite napravo Voitrans za aktivacijo Starter članstva',
'unlockNow': 'Unlock Now', 'unlockNow': 'Odkleni zdaj',
// Meeting模块 - 会员与升级 // Meeting模块 - 会员与升级
'comparison': 'Comparison', 'comparison': 'Primerjava',
'detailedInfo': 'Detailed Information', 'detailedInfo': 'Podrobne informacije',
'monthlyTranscriptionTime': 'Monthly Transcription Time', 'monthlyTranscriptionTime': 'Mesečni čas prepisa',
'unlimited': 'Unlimited', 'unlimited': 'Neomejeno',
'professionalTemplates': 'Professional Templates', 'professionalTemplates': 'Profesionalne predloge',
'limited': 'Limited', 'limited': 'Omejeno',
'fullTemplates': 'Full Templates', 'fullTemplates': 'Polne predloge',
'professionalTerms': 'Professional Terms', 'professionalTerms': 'Profesionalni izrazi',
'customTemplates': 'Custom Templates', 'customTemplates': 'Predloge po meri',
'visualMindMap': 'Visual Mind Map', 'visualMindMap': 'Vizualni miselni zemljevid',
'speakerIdentification': 'Speaker Identification', 'speakerIdentification': 'Prepoznavanje govorcev',
'aiVoiceEnhancement': 'AI Voice Enhancement', 'aiVoiceEnhancement': 'Izboljšava glasu z AI',
'audioImport': 'Audio Import', 'audioImport': 'Uvoz zvoka',
'multipleExportFormats': 'Multiple Export Formats', 'multipleExportFormats': 'Več formatov izvoza',
'professionalSummaryTemplates': 'Professional Summary Templates', 'professionalSummaryTemplates': 'Profesionalne predloge povzetkov',
'professionalTemplateDesc': 'professionalTemplateDesc':
'Professional template design to improve your work efficiency. Customized according to industry needs.', 'Profesionalna zasnova predlog za večjo učinkovitost pri delu. Prilagojeno potrebam panoge.',
'customTemplateDesc': 'customTemplateDesc':
'You can customize summary prompts according to your needs and use them to generate the required summaries.', 'Pozive za povzetek lahko prilagodite svojim potrebam in jih uporabite za ustvarjanje želenih povzetkov.',
'askAiDesc': 'askAiDesc':
'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.', 'Pametno izluščite globlje informacije iz posnetkov; z enim klikom ustvarite podatkovne tabele, ključne zaključke razprave, sezname opravil, poročilna e‑sporočila in drugo formatirano vsebino.',
'visualMindMapDesc': 'visualMindMapDesc':
'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', 'Več kot povzetki: s miselnimi zemljevidi uredite in vizualizirajte ključne točke za boljše razumevanje celotnega besedila.',
'templateCommunityDesc': 'templateCommunityDesc':
'Discover, share, and get inspiration from the template library created by users.', 'Odkrijte, delite in se navdihnite v knjižnici predlog, ki so jih ustvarili uporabniki.',
'speakerIdentificationDesc': 'speakerIdentificationDesc':
'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', 'Prepis zvoka bo podpiral prepoznavanje govorcev, da bo vsebina sestanka ali klica bolj jasno obnovljena. Hkrati bo povzetek natančnejši.',
'privateCloudSyncDesc': 'privateCloudSyncDesc':
'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.', 'Vaši posnetki in prepisi bodo varno shranjeni na namenskih strežnikih v oblaku, z popolnim šifriranjem med nalaganjem in prenašanjem, za zagotavljanje zasebnosti in varnosti.',
'aiVoiceEnhancementDesc': 'aiVoiceEnhancementDesc':
'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', 'Izboljšava glasu z AI podpira več nastavitev zmanjševanja šuma, pametno odstranjuje hrup v ozadju, izboljša jasnost glasu in kakovost predvajanja.',
'audioImportDesc': 'audioImportDesc':
'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', 'Zvočne datoteke preprosto uvozite iz lokalnih ali drugih aplikacij, kot so glasovni zapiski, Google Drive itd.',
'multipleExportFormatsDesc': 'multipleExportFormatsDesc':
'Izvozite zvočne posnetke, besedilo prepisa in povzetke v različnih formatih (TXT, PDF, JPEG) po svojih potrebah.', 'Izvozite zvočne posnetke, besedilo prepisa in povzetke v različnih formatih (TXT, PDF, JPEG) po svojih potrebah.',
'upgradeMembership': 'Upgrade Your Membership', 'upgradeMembership': 'Nadgradi članstvo',
'yearlySubscription': 'Yearly Subscription', 'yearlySubscription': 'Letna naročnina',
'monthlySubscription': 'Monthly Subscription', 'monthlySubscription': 'Mesečna naročnina',
'proMonthly': 'Pro ¥60/month', 'proMonthly': 'Pro ¥60/mesec',
'proMonthlyDesc': 'proMonthlyDesc':
'7-day free trial, then ¥800/year. Cancel anytime before trial ends.', '7-dnevni brezplačni preizkus, nato ¥800/leto. Prekličete lahko pred koncem preizkusa.',
'sevenDayTrial': '7-day Free Trial', 'sevenDayTrial': '7-dnevni brezplačni preizkus',
'unlimitedMonthly': 'Unlimited ¥120/month', 'unlimitedMonthly': 'Neomejeno ¥120/mesec',
'unlimitedMonthlyDesc': 'unlimitedMonthlyDesc':
'7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', '7-dnevni brezplačni preizkus, nato ¥1600/leto. Prekličete lahko pred koncem preizkusa.',
'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'trialNote':
'*7-dnevni brezplačni preizkus, nato letno zaračunavanje; prekličete lahko kadarkoli.',
'proPrice': 'Pro ¥120', 'proPrice': 'Pro ¥120',
'proMonthlyPrice': '¥120/month', 'proMonthlyPrice': '¥120/mesec',
'subscribe': 'Subscribe', 'subscribe': 'Naroči se',
'unlimitedPrice': 'Unlimited ¥198', 'unlimitedPrice': 'Unlimited ¥198',
'unlimitedMonthlyPrice': '¥198/month', 'unlimitedMonthlyPrice': '¥198/mesec',
'upgradeNote': 'upgradeNote':
'*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', '*Po nadgradnji naročnine se bodo preostali dnevi prvotne naročnine samodejno izračunali in povrnili na vaš plačilni račun',
'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'buyMoreTranscriptionTime': 'Kupi dodatni čas prepisa',
'sixThousandMinutes': '6,000 minutes', 'sixThousandMinutes': '6.000 minut',
'threeThousandMinutes': '3,000 minutes', 'threeThousandMinutes': '3.000 minut',
'sixHundredMinutes': '600 minutes', 'sixHundredMinutes': '600 minut',
'oneHundredTwentyMinutes': '120 minutes', 'oneHundredTwentyMinutes': '120 minut',
'validityPeriod': '*Validity Period: ', 'validityPeriod': '*Obdobje veljavnosti: ',
'validityNote': 'validityNote': 'Aktivira se takoj po nakupu in velja 2 leti po aktivaciji.',
'Activated immediately after purchase, valid for 2 years after activation.', 'purchase': 'Kupi',
'purchase': 'Purchase',
// Meeting模块 - 录音语言 // Meeting模块 - 录音语言
'recordLanguage': 'Jezik snemanja', 'recordLanguage': 'Jezik snemanja',
'cantonese': 'Cantonese', 'cantonese': 'Kantonščina',
'sichuan': 'Sichuan Dialect', 'sichuan': 'Sečuanski dialekt',
'shanghai': 'Shanghai Dialect', 'shanghai': 'Šanghajski dialekt',
// Meeting模块 - 错误提示 // Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Unknown Language', 'meetingUnknownLanguage': 'Neznan jezik',
'analysisFailed': 'Analiza ni uspela, poskusite znova pozneje', 'analysisFailed': 'Analiza ni uspela, poskusite znova pozneje',
'transcriptionFailed': 'Prepis ni uspel, poskusite znova pozneje', 'transcriptionFailed': 'Prepis ni uspel, poskusite znova pozneje',
'summaryFailed': 'Povzetek ni uspel, poskusite znova pozneje', 'summaryFailed': 'Povzetek ni uspel, poskusite znova pozneje',
@ -817,15 +822,15 @@ const Map<String, String> slSI = {
// 设备管理模块 // 设备管理模块
"deviceTypeUnknown": "Neznana naprava", "deviceTypeUnknown": "Neznana naprava",
"deviceTypeClassicBluetoothHeadset": "Classic Bluetooth Headset", "deviceTypeClassicBluetoothHeadset": "Klasične Bluetooth slušalke",
"deviceTypeBleBluetoothHeadset": "BLE Bluetooth Headset", "deviceTypeBleBluetoothHeadset": "BLE Bluetooth slušalke",
"deviceTypeSmartVoiceRecorder": "Pametni glasovni snemalnik", "deviceTypeSmartVoiceRecorder": "Pametni glasovni snemalnik",
"deviceTypeSmartEye": "Smart Glasses", "deviceTypeSmartEye": "Pametna očala",
"unbind": "Prekini povezavo", "unbind": "Prekini povezavo",
"noDevicesBound": "Še ni povezanih naprav", "noDevicesBound": "Še ni povezanih naprav",
"pleaseBindDeviceFirst": "Najprej povežite napravo za upravljanje", "pleaseBindDeviceFirst": "Najprej povežite napravo za upravljanje",
"noMacAddress": "No MAC Address", "noMacAddress": "Ni MAC naslova",
"licenseCode": "License Code", "licenseCode": "Licenčna koda",
"confirmUnbind": "Potrdi prekinitev povezave", "confirmUnbind": "Potrdi prekinitev povezave",
"confirmUnbindMessage": "confirmUnbindMessage":
"Ali ste prepričani, da želite prekiniti povezavo z napravo \"{deviceName}\"?", "Ali ste prepričani, da želite prekiniti povezavo z napravo \"{deviceName}\"?",
@ -920,11 +925,11 @@ const Map<String, String> slSI = {
'generatedByAi': 'Generirano s strani AI', 'generatedByAi': 'Generirano s strani AI',
// Agent模块 - 工具调用 // Agent模块 - 工具调用
'toolCall': 'Tool Call', 'toolCall': 'Klic orodja',
'noResult': 'No Result', 'noResult': 'Ni rezultata',
'noToolCallContentToCopy': 'No tool call content to copy', 'noToolCallContentToCopy': 'Ni vsebine klica orodja za kopiranje',
'toolCallDetails': 'Tool Call Details:', 'toolCallDetails': 'Podrobnosti klica orodja:',
'toolCallContentCopied': 'Tool call content copied to clipboard', 'toolCallContentCopied': 'Vsebina klica orodja kopirana v odložišče',
// Agent模块 - 音乐卡片 // Agent模块 - 音乐卡片
'recommendedMusic': 'Tukaj je nekaj priporočene glasbe:', 'recommendedMusic': 'Tukaj je nekaj priporočene glasbe:',
@ -947,26 +952,26 @@ const Map<String, String> slSI = {
"tsransit": "Javni prevoz", "tsransit": "Javni prevoz",
// Agent模块 - 导航选择 // Agent模块 - 导航选择
'selectNavigationApp': 'Select Navigation App', 'selectNavigationApp': 'Izberite navigacijsko aplikacijo',
'amapMap': 'Amap', 'amapMap': 'Amap',
'useAmapNavigation': 'Navigate with Amap', 'useAmapNavigation': 'Navigiraj z Amap',
'baiduMap': 'Baidu Maps', 'baiduMap': 'Baidu Maps',
'useBaiduNavigation': 'Navigate with Baidu Maps', 'useBaiduNavigation': 'Navigiraj z Baidu Maps',
'googleMap': 'Google Maps', 'googleMap': 'Google Maps',
'useGoogleNavigation': 'Navigate with Google Maps', 'useGoogleNavigation': 'Navigiraj z Google Maps',
'appleMap': 'Apple Maps', 'appleMap': 'Apple Maps',
'useAppleNavigation': 'Navigate with Apple Maps', 'useAppleNavigation': 'Navigiraj z Apple Maps',
'builtInNavigation': 'Built-in Navigation', 'builtInNavigation': 'Vgrajena navigacija',
'useBuiltInNavigation': 'Navigate with built-in map', 'useBuiltInNavigation': 'Navigiraj z vgrajenim zemljevidom',
'navigationStartFailed': 'Zagon navigacije ni uspel', 'navigationStartFailed': 'Zagon navigacije ni uspel',
'cannotPlayMusicListRetryLater': 'cannotPlayMusicListRetryLater':
'Seznama glasbe ni mogoče predvajati, poskusite znova pozneje', 'Seznama glasbe ni mogoče predvajati, poskusite znova pozneje',
'cannotPlaySong': 'Cannot play song', 'cannotPlaySong': 'Ni mogoče predvajati pesmi',
'openMapError': 'Napaka pri odpiranju zemljevida', 'openMapError': 'Napaka pri odpiranju zemljevida',
'pleaseInstallAmapApp': 'Najprej namestite aplikacijo Amap', 'pleaseInstallAmapApp': 'Najprej namestite aplikacijo Amap',
'pleaseInstallBaiduMapApp': 'Najprej namestite aplikacijo Baidu Maps', 'pleaseInstallBaiduMapApp': 'Najprej namestite aplikacijo Baidu Maps',
'appleMapStartFailed': 'Apple Maps se ni uspel zagnati', 'appleMapStartFailed': 'Apple Maps se ni uspel zagnati',
'appleMapUnavailable': 'Apple Maps unavailable', 'appleMapUnavailable': 'Apple Maps ni na voljo',
'openAppleMapError': 'Napaka pri odpiranju Apple Maps', 'openAppleMapError': 'Napaka pri odpiranju Apple Maps',
// Agent模块 - 天气卡片 // Agent模块 - 天气卡片
@ -1033,11 +1038,11 @@ const Map<String, String> slSI = {
"phoneUser": "Uporabnik telefona", "phoneUser": "Uporabnik telefona",
"selectSourceLanguage": "Izberi izvorni jezik", "selectSourceLanguage": "Izberi izvorni jezik",
"selectTargetLanguage": "Izberi ciljni jezik", "selectTargetLanguage": "Izberi ciljni jezik",
"me": "Me", "me": "Jaz",
"counterPart": "Counterpart", "counterPart": "Sogovornik",
"bluetoothCallStateError": "bluetoothCallStateError":
"Preverite, ali so Bluetooth slušalke povezane s telefonom in v stanju klica", "Preverite, ali so Bluetooth slušalke povezane s telefonom in v stanju klica",
"autoDetect": "Auto Detect", // 自动检测 "autoDetect": "Samodejno zaznaj", // 自动检测
// 翻译模块 - 文本翻译 // 翻译模块 - 文本翻译
"languageDetectionFailed": "Prepoznavanje jezika ni uspelo", "languageDetectionFailed": "Prepoznavanje jezika ni uspelo",
@ -1050,16 +1055,16 @@ const Map<String, String> slSI = {
'Za snemanje je potrebno dovoljenje mikrofona', 'Za snemanje je potrebno dovoljenje mikrofona',
'deleteTranslationRecordError': 'Napaka pri brisanju zapisa prevoda: @error', 'deleteTranslationRecordError': 'Napaka pri brisanju zapisa prevoda: @error',
"translationFailed": "Prevajanje ni uspelo", "translationFailed": "Prevajanje ni uspelo",
"translating": "Translating", "translating": "Prevajanje",
"translate": "Prevedi", "translate": "Prevedi",
"pleaseInputText": "Vnesite besedilo", "pleaseInputText": "Vnesite besedilo",
"inputTextToTranslate": "Vnesite besedilo za prevod", "inputTextToTranslate": "Vnesite besedilo za prevod",
"textTooLong": "Text too long, max 5000 characters", "textTooLong": "Besedilo je predolgo, največ 5000 znakov",
// 翻译模块 - 历史记录 // 翻译模块 - 历史记录
"noTranslationHistory": "Ni zgodovine", "noTranslationHistory": "Ni zgodovine",
"historyRecords": "Zgodovina", "historyRecords": "Zgodovina",
"clearResults": "Clear Results", "clearResults": "Počisti rezultate",
"clearHistory": "Počisti zgodovino", "clearHistory": "Počisti zgodovino",
"clearHistoryConfirm": "clearHistoryConfirm":
"Ali ste prepričani, da želite počistiti vso zgodovino prevodov? Tega dejanja ni mogoče razveljaviti.", "Ali ste prepričani, da želite počistiti vso zgodovino prevodov? Tega dejanja ni mogoče razveljaviti.",
@ -1069,40 +1074,40 @@ const Map<String, String> slSI = {
"Ali ste prepričani, da želite izbrisati vse zapise prevodov za to sejo? Tega dejanja ni mogoče razveljaviti.", "Ali ste prepričani, da želite izbrisati vse zapise prevodov za to sejo? Tega dejanja ni mogoče razveljaviti.",
// 翻译模块 - 图片翻译 // 翻译模块 - 图片翻译
"selectImageSource": "Select Image Source", "selectImageSource": "Izberi vir slike",
"imagePreview": "Image Preview", "imagePreview": "Predogled slike",
"translationResult": "Rezultat prevoda", "translationResult": "Rezultat prevoda",
"recognitionResult": "Recognition Result", "recognitionResult": "Rezultat prepoznave",
"translatedImagePreview": "Predogled prevedene slike", "translatedImagePreview": "Predogled prevedene slike",
"translatedImageLoadFailed": "Prevedene slike ni bilo mogoče naložiti", "translatedImageLoadFailed": "Prevedene slike ni bilo mogoče naložiti",
"pleaseSelectImage": "Izberite sliko", "pleaseSelectImage": "Izberite sliko",
"imageLoadFailed": "Nalaganje slike ni uspelo", "imageLoadFailed": "Nalaganje slike ni uspelo",
"imageQuality": "Image Quality", "imageQuality": "Kakovost slike",
"maxSize": "Max Size", "maxSize": "Največja velikost",
"close": "Close", "close": "Zapri",
"setImageQuality": "Set Image Quality", "setImageQuality": "Nastavi kakovost slike",
"currentQuality": "Current quality: @value%", "currentQuality": "Trenutna kakovost: @value%",
"setMaxSize": "Set Max Size", "setMaxSize": "Nastavi največjo velikost",
"currentMaxSize": "Current: @pxpx", "currentMaxSize": "Trenutno: @pxpx",
"waitingForAction": "Waiting for action", "waitingForAction": "Čakanje na dejanje",
"pleaseSelectImageToStart": "Za začetek izberite sliko", "pleaseSelectImageToStart": "Za začetek izberite sliko",
"chooseImage": "Choose Image", "chooseImage": "Izberi sliko",
"openingCamera": "Opening camera...", "openingCamera": "Odpiranje kamere...",
"openingPhotoAlbum": "Opening photo album...", "openingPhotoAlbum": "Odpiranje fotoalbuma...",
"cancelled": "Cancelled", "cancelled": "Preklicano",
"userCancelledSelection": "User cancelled selection", "userCancelledSelection": "Uporabnik je preklical izbiro",
"translatingImage": "Translating Image", "translatingImage": "Prevajanje slike",
"callingImageTranslateService": "Klicanje storitve za prevajanje slik...", "callingImageTranslateService": "Klicanje storitve za prevajanje slik...",
"savingRecord": "Shranjevanje zapisa", "savingRecord": "Shranjevanje zapisa",
"savingTranslationResult": "Shranjevanje rezultata prevoda...", "savingTranslationResult": "Shranjevanje rezultata prevoda...",
"translationCompleted": "Prevajanje dokončano", "translationCompleted": "Prevajanje dokončano",
"allStepsCompleted": "All steps completed", "allStepsCompleted": "Vsi koraki so dokončani",
"processingFailed": "Obdelava ni uspela", "processingFailed": "Obdelava ni uspela",
"imageProcessingOrTranslationFailed": "imageProcessingOrTranslationFailed":
"Obdelava slike ali prevajanje ni uspelo. Poskusite znova.\nNapaka: {error}", "Obdelava slike ali prevajanje ni uspelo. Poskusite znova.\nNapaka: {error}",
"imageTooLarge": "Image size exceeds 4MB limit", "imageTooLarge": "Velikost slike presega omejitev 4 MB",
"imageTooLargeHint": "imageTooLargeHint":
"Image size exceeds 4MB. Reduce quality or dimensions and retry", "Velikost slike presega 4 MB. Znižajte kakovost ali dimenzije in poskusite znova",
"emptyTranslationResult": "API za prevajanje slik je vrnil prazen rezultat", "emptyTranslationResult": "API za prevajanje slik je vrnil prazen rezultat",
"imageTranslationFailedTryLater": "imageTranslationFailedTryLater":
"Prevajanje slike ni uspelo. Težava z omrežjem ali omejitev hitrosti. Poskusite pozneje", "Prevajanje slike ni uspelo. Težava z omrežjem ali omejitev hitrosti. Poskusite pozneje",
@ -1113,11 +1118,11 @@ const Map<String, String> slSI = {
"photoAlbumPermissionRequired": "photoAlbumPermissionRequired":
"Za izbiro slik je potrebno dovoljenje za fotografije", "Za izbiro slik je potrebno dovoljenje za fotografije",
"translationDetails": "Podrobnosti prevoda", "translationDetails": "Podrobnosti prevoda",
"originalImage": "Original Image", "originalImage": "Originalna slika",
"sourceLanguage": "Source Language", "sourceLanguage": "Izvorni jezik",
"targetLanguage": "Target Language", "targetLanguage": "Ciljni jezik",
"translationTime": "Čas prevajanja", "translationTime": "Čas prevajanja",
"shareInDevelopment": "Sharing feature under development", "shareInDevelopment": "Funkcija deljenja je v razvoju",
// 翻译模块 - 录音文件 // 翻译模块 - 录音文件
"translateAudioFiles": "Prevedi zvočne datoteke", "translateAudioFiles": "Prevedi zvočne datoteke",
@ -1170,8 +1175,8 @@ const Map<String, String> slSI = {
'deleteAccount': 'Izbriši račun', 'deleteAccount': 'Izbriši račun',
'deleteAccountTips': 'deleteAccountTips':
'Ali ste prepričani, da želite trajno izbrisati svoj račun? Tega dejanja ni mogoče razveljaviti', 'Ali ste prepričani, da želite trajno izbrisati svoj račun? Tega dejanja ni mogoče razveljaviti',
'clean': 'Clear Cache', 'clean': 'Počisti predpomnilnik',
'cleanTips': 'Are you sure you want to clear personal cache?', 'cleanTips': 'Ali ste prepričani, da želite počistiti osebni predpomnilnik?',
'networkConnectionFailed': 'networkConnectionFailed':
'Napaka v omrežni povezavi, preverite nastavitve omrežja in poskusite znova', 'Napaka v omrežni povezavi, preverite nastavitve omrežja in poskusite znova',
'serverTemporarilyUnavailable': 'serverTemporarilyUnavailable':
@ -1229,8 +1234,8 @@ const Map<String, String> slSI = {
'locationPermissions': 'Dovoljenja za lokacijo', 'locationPermissions': 'Dovoljenja za lokacijo',
'phone': 'Telefon', 'phone': 'Telefon',
'sms': 'SMS', 'sms': 'SMS',
'contacts': 'Contacts', 'contacts': 'Stiki',
'notification': 'Notification', 'notification': 'Obvestilo',
'alarm': 'Alarm', 'alarm': 'Alarm',
'calendarWrite': 'Pisanje v koledar', 'calendarWrite': 'Pisanje v koledar',
'calendarFullAccess': 'Poln dostop do koledarja', 'calendarFullAccess': 'Poln dostop do koledarja',
@ -1238,7 +1243,7 @@ const Map<String, String> slSI = {
'phonePermissionDesc': 'Uporablja se za funkcijo klicanja', 'phonePermissionDesc': 'Uporablja se za funkcijo klicanja',
'smsPermissionDesc': 'Uporablja se za funkcijo pošiljanja SMS', 'smsPermissionDesc': 'Uporablja se za funkcijo pošiljanja SMS',
'alarmPermissionDesc': 'alarmPermissionDesc':
'Used to set exact alarms to ensure reminders trigger on time', 'Uporablja se za nastavitev natančnih alarmov, da se opomniki sprožijo pravočasno',
'calendarWritePermissionDesc': 'calendarWritePermissionDesc':
'Uporablja se za ustvarjanje dogodkov in opomnikov v koledarju', 'Uporablja se za ustvarjanje dogodkov in opomnikov v koledarju',
'calendarFullAccessPermissionDesc': 'calendarFullAccessPermissionDesc':
@ -1265,7 +1270,7 @@ const Map<String, String> slSI = {
'Upravljanje dogodkov v koledarju zahteva polno dovoljenje za koledar', 'Upravljanje dogodkov v koledarju zahteva polno dovoljenje za koledar',
'locationPermissionDetailDesc': 'locationPermissionDetailDesc':
'Pridobivanje informacij o lokaciji zahteva dovoljenje za lokacijo', 'Pridobivanje informacij o lokaciji zahteva dovoljenje za lokacijo',
'contactsPermissionDesc': 'Used for accessing contact information', 'contactsPermissionDesc': 'Uporablja se za dostop do informacij o stikih',
'contactsPermissionDetailDesc': 'contactsPermissionDetailDesc':
'Funkciji klicanja in SMS zahtevata dovoljenje za stike, da lahko izberete stike', 'Funkciji klicanja in SMS zahtevata dovoljenje za stike, da lahko izberete stike',
'bluetoothPermissionDesc': 'bluetoothPermissionDesc':
@ -1280,7 +1285,7 @@ const Map<String, String> slSI = {
'Uporablja se za povezovanje z Bluetooth napravami', 'Uporablja se za povezovanje z Bluetooth napravami',
'bluetoothConnectPermissionDetailDesc': 'bluetoothConnectPermissionDetailDesc':
'Za povezovanje z Bluetooth napravami je potrebno dovoljenje za povezavo Bluetooth', 'Za povezovanje z Bluetooth napravami je potrebno dovoljenje za povezavo Bluetooth',
'notificationPermissionDesc': 'Used for sending notification messages', 'notificationPermissionDesc': 'Uporablja se za pošiljanje obvestil',
'notificationPermissionDetailDesc': 'notificationPermissionDetailDesc':
'Aplikacija potrebuje dovoljenje za obvestila, da vam lahko pošilja pomembna opozorila in sporočila', 'Aplikacija potrebuje dovoljenje za obvestila, da vam lahko pošilja pomembna opozorila in sporočila',
'appNeedsPermissionForFullFunction': 'appNeedsPermissionForFullFunction':
@ -1288,7 +1293,7 @@ const Map<String, String> slSI = {
'permanentDenialText': 'permanentDenialText':
'Trajno ste zavrnili dovoljenje za {permission}, pojdite v nastavitve aplikacije, da ga omogočite', 'Trajno ste zavrnili dovoljenje za {permission}, pojdite v nastavitve aplikacije, da ga omogočite',
'goToSettings': 'Pojdi na nastavitve', 'goToSettings': 'Pojdi na nastavitve',
'bluetoothScan': 'Bluetooth Scan', 'bluetoothScan': 'Skeniranje Bluetooth',
'bluetoothConnect': 'Povezava Bluetooth', 'bluetoothConnect': 'Povezava Bluetooth',
'bluetoothScanExplanation': 'bluetoothScanExplanation':
'Aplikacija potrebuje dovoljenje za skeniranje Bluetooth za iskanje bližnjih Bluetooth naprav.', 'Aplikacija potrebuje dovoljenje za skeniranje Bluetooth za iskanje bližnjih Bluetooth naprav.',
@ -1302,8 +1307,8 @@ const Map<String, String> slSI = {
'Dovoljenje za povezavo Bluetooth je bilo trajno zavrnjeno, pojdite v nastavitve in ga ročno omogočite.', 'Dovoljenje za povezavo Bluetooth je bilo trajno zavrnjeno, pojdite v nastavitve in ga ročno omogočite.',
'locationPermanentDenial': 'locationPermanentDenial':
'Dovoljenje za lokacijo je bilo trajno zavrnjeno, pojdite v nastavitve in ga ročno omogočite.', 'Dovoljenje za lokacijo je bilo trajno zavrnjeno, pojdite v nastavitve in ga ročno omogočite.',
'notificationPermission': 'Notification', 'notificationPermission': 'Obvestila',
'locationPermission': 'Location', 'locationPermission': 'Lokacija',
'notificationPermissionExplanation': 'notificationPermissionExplanation':
'Dovoljenje za obvestila je potrebno za prikaz stanja predvajanja glasbe.', 'Dovoljenje za obvestila je potrebno za prikaz stanja predvajanja glasbe.',
'locationPermissionExplanation': 'locationPermissionExplanation':
@ -1312,7 +1317,7 @@ const Map<String, String> slSI = {
'Trajno ste zavrnili dovoljenje za obvestila, pojdite v nastavitve in ga omogočite.', 'Trajno ste zavrnili dovoljenje za obvestila, pojdite v nastavitve in ga omogočite.',
'locationPermissionPermanentDenial': 'locationPermissionPermanentDenial':
'Trajno ste zavrnili dovoljenje za lokacijo, pojdite v nastavitve in ga omogočite.', 'Trajno ste zavrnili dovoljenje za lokacijo, pojdite v nastavitve in ga omogočite.',
'storagePermission': 'Storage', 'storagePermission': 'Shramba',
'microphonePermissionExplanation': 'microphonePermissionExplanation':
'Potrebujemo dovoljenje mikrofona za snemanje zvočne vsebine.', 'Potrebujemo dovoljenje mikrofona za snemanje zvočne vsebine.',
'storagePermissionExplanation': 'storagePermissionExplanation':
@ -1321,7 +1326,7 @@ const Map<String, String> slSI = {
'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.', 'Zaznali smo, da ste trajno zavrnili dovoljenje za mikrofon. Za nadaljnjo uporabo te funkcije pojdite v nastavitve aplikacije in ročno omogočite dovoljenje za mikrofon.',
'storagePermissionPermanentDenial': 'storagePermissionPermanentDenial':
'Zaznali smo, da ste trajno zavrnili dovoljenje za shrambo. Za nadaljnjo uporabo te funkcije pojdite v nastavitve aplikacije in ročno omogočite dovoljenje za shrambo.', 'Zaznali smo, da ste trajno zavrnili dovoljenje za shrambo. Za nadaljnjo uporabo te funkcije pojdite v nastavitve aplikacije in ročno omogočite dovoljenje za shrambo.',
'permissionUtilNeed': 'Need ', 'permissionUtilNeed': 'Potrebno ',
'permissionUtilPermission': ' Dovoljenje', 'permissionUtilPermission': ' Dovoljenje',
'permissionUtilRestricted': ' Dovoljenje omejeno', 'permissionUtilRestricted': ' Dovoljenje omejeno',
'permissionUtilRestrictedMessage': 'permissionUtilRestrictedMessage':
@ -1484,14 +1489,14 @@ const Map<String, String> slSI = {
"Odstranite obe slušalki in se prepričajte, da je baterija obeh nad 20%", "Odstranite obe slušalki in se prepričajte, da je baterija obeh nad 20%",
// OTA升级模块 - 弹窗与对话框 // OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': 'New version @version found', 'otaNewVersionFoundWithVersion': 'Najdena nova različica @version',
'otaConfirmUpdateNow': 'Update now?', 'otaConfirmUpdateNow': 'Posodobi zdaj?',
'otaUpdate': 'Update', 'otaUpdate': 'Posodobi',
'otaUpgradeSuccess': 'Nadgradnja uspešna', 'otaUpgradeSuccess': 'Nadgradnja uspešna',
'otaUpgradeCompleteRepair': 'otaUpgradeCompleteRepair':
'Nadgradnja vdelane programske opreme dokončana!\n\nZa pravilno delovanje je treba napravo znova seznaniti. Želite zdaj na stran za seznanjanje?', 'Nadgradnja vdelane programske opreme dokončana!\n\nZa pravilno delovanje je treba napravo znova seznaniti. Želite zdaj na stran za seznanjanje?',
'otaPairLater': 'Pair Later', 'otaPairLater': 'Seznani pozneje',
'otaPairNow': 'Pair Now', 'otaPairNow': 'Seznani zdaj',
'okConfirm': 'OK', 'okConfirm': 'OK',
// OTA升级模块 - 设备检查 // OTA升级模块 - 设备检查
@ -1507,8 +1512,8 @@ const Map<String, String> slSI = {
'Ni mogoče pridobiti informacij o napravi, preverite povezavo naprave', 'Ni mogoče pridobiti informacij o napravi, preverite povezavo naprave',
'otaCannotGetProductInfoWithName': 'otaCannotGetProductInfoWithName':
'Ni mogoče pridobiti informacij o izdelku, ime naprave: @deviceName', 'Ni mogoče pridobiti informacij o izdelku, ime naprave: @deviceName',
'otaCannotGetBatteryInfo': 'Cannot get valid battery info', 'otaCannotGetBatteryInfo': 'Ni mogoče pridobiti podatkov o bateriji',
'otaLowBattery': 'Low Battery', 'otaLowBattery': 'Nizka baterija',
'otaSingleBatteryLow': 'otaSingleBatteryLow':
'Baterija naprave je prenizka za nadgradnjo vdelane programske opreme\nZahteva: baterija mora biti nad 20%\nTrenutno: @ear @battery%\nNapolnite in poskusite znova', 'Baterija naprave je prenizka za nadgradnjo vdelane programske opreme\nZahteva: baterija mora biti nad 20%\nTrenutno: @ear @battery%\nNapolnite in poskusite znova',
'otaDoubleBatteryLow': 'otaDoubleBatteryLow':
@ -1517,7 +1522,7 @@ const Map<String, String> slSI = {
// OTA升级模块 - 升级状态 // OTA升级模块 - 升级状态
'otaDefaultUpdateDesc': 'otaDefaultUpdateDesc':
'This update includes performance optimizations and bug fixes.', 'Ta posodobitev vključuje optimizacije zmogljivosti in popravke napak.',
'otaGetLatestVersionFailed': 'otaGetLatestVersionFailed':
'Pridobivanje informacij o najnovejši različici ni uspelo', 'Pridobivanje informacij o najnovejši različici ni uspelo',
'otaGetVersionInfoFailed': 'Pridobivanje informacij o različici ni uspelo', 'otaGetVersionInfoFailed': 'Pridobivanje informacij o različici ni uspelo',
@ -1527,8 +1532,8 @@ const Map<String, String> slSI = {
'otaDownloadFailed': 'Prenos ni uspel', 'otaDownloadFailed': 'Prenos ni uspel',
'otaPreparingConnection': 'Priprava povezave naprave...', 'otaPreparingConnection': 'Priprava povezave naprave...',
'otaConnectingDevice': 'Povezovanje z napravo...', 'otaConnectingDevice': 'Povezovanje z napravo...',
'otaUpgradeStarted': 'OTA upgrade started...', 'otaUpgradeStarted': 'Nadgradnja OTA se je začela...',
'otaUpgradeProgressWithPercent': 'Upgrade progress: @percent%', 'otaUpgradeProgressWithPercent': 'Napredek nadgradnje: @percent%',
'otaUpgradeSuccessComplete': 'Nadgradnja je bila uspešno dokončana', 'otaUpgradeSuccessComplete': 'Nadgradnja je bila uspešno dokončana',
'otaUpgradeFailedWithCode': 'Nadgradnja ni uspela, koda napake: @code', 'otaUpgradeFailedWithCode': 'Nadgradnja ni uspela, koda napake: @code',
'otaUpgradeFailedTitle': 'Nadgradnja ni uspela', 'otaUpgradeFailedTitle': 'Nadgradnja ni uspela',
@ -1692,15 +1697,15 @@ const Map<String, String> slSI = {
"东帝汶": "Vzhodni Timor", "东帝汶": "Vzhodni Timor",
"斐济": "Fidži", "斐济": "Fidži",
"所罗门群岛": "Salomonovi otoki", "所罗门群岛": "Salomonovi otoki",
"刚果民主共和国": "Democratic Republic of the Congo", "刚果民主共和国": "Demokratična republika Kongo",
"安哥拉": "Angola", "安哥拉": "Angola",
"苏丹": "Sudan", "苏丹": "Sudan",
"马尔代夫": "Maldives", "马尔代夫": "Maldivi",
"不丹": "Bhutan", "不丹": "Butan",
"摩纳哥": "Monaco", "摩纳哥": "Monako",
"圣马力诺": "San Marino", "圣马力诺": "San Marino",
"牙买加": "Jamaica", "牙买加": "Jamajka",
"巴哈马": "Bahamas", "巴哈马": "Bahami",
"巴布亚新几内亚": "Papua New Guinea", "巴布亚新几内亚": "Papua Nova Gvineja",
"萨摩亚": "Samoa", "萨摩亚": "Samoa",
}; };

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

@ -265,11 +265,11 @@ const Map<String, String> tlPH = {
"exportInDevelopment": "Ginagawa pa ang pag-export ng data", "exportInDevelopment": "Ginagawa pa ang pag-export ng data",
// 商品模块 - 通用 // 商品模块 - 通用
'availablePackages': 'Available Packages', 'availablePackages': 'Mga available na package',
'remainingQuota': 'Remaining Quota', 'remainingQuota': 'Natitirang quota',
'totalQuota': 'Total Quota', 'totalQuota': 'Kabuuang quota',
'remaining': 'Remaining', 'remaining': 'Natitira',
'featureDescription': 'Feature Description', 'featureDescription': 'Paglalarawan ng feature',
'paymentSuccess': 'Matagumpay ang pagbabayad', 'paymentSuccess': 'Matagumpay ang pagbabayad',
'paymentFailed': 'Nabigo ang pagbabayad', 'paymentFailed': 'Nabigo ang pagbabayad',
'gotIt': 'Naintindihan', 'gotIt': 'Naintindihan',
@ -330,7 +330,7 @@ const Map<String, String> tlPH = {
'alipayPaymentLaunchFailed': 'Hindi mabukas ang Alipay', 'alipayPaymentLaunchFailed': 'Hindi mabukas ang Alipay',
'cannotLaunchAlipayPayment': 'Hindi mabukas ang Alipay', 'cannotLaunchAlipayPayment': 'Hindi mabukas ang Alipay',
'alipayPaymentException': 'May problema sa Alipay', 'alipayPaymentException': 'May problema sa Alipay',
"insufficientIntegral": "Insufficient integral", "insufficientIntegral": "Kulang ang puntos",
"insufficientBalanceDesc": "insufficientBalanceDesc":
"Kulang ang balanse, mangyaring pumunta sa kaukulang pahina ng pag-recharge upang mag-recharge.", "Kulang ang balanse, mangyaring pumunta sa kaukulang pahina ng pag-recharge upang mag-recharge.",
"recharge": "Pumunta sa Pag-recharge", "recharge": "Pumunta sa Pag-recharge",
@ -338,30 +338,33 @@ const Map<String, String> tlPH = {
"Nag-expire na ang AI membership, mangyaring pumunta sa pahina ng membership recharge upang mag-renew.", "Nag-expire na ang AI membership, mangyaring pumunta sa pahina ng membership recharge upang mag-renew.",
// 商品模块 - AI商品页 // 商品模块 - AI商品页
'musicAndRecommendation': 'Music & Recommendation', 'musicAndRecommendation': 'Musika at rekomendasyon',
'navigationAndRoutes': 'Navigation & Routes', 'navigationAndRoutes': 'Nabigasyon at mga ruta',
'nearbySearch': 'Nearby Search', 'nearbySearch': 'Paghahanap sa malapit',
'newsInformation': 'News', 'newsInformation': 'Balita',
'communicationAssistant': 'Communication Assistant', 'communicationAssistant': 'Katulong sa komunikasyon',
'aiHeaderDesc1': 'aiHeaderDesc1':
'Longer conversation quota, more tool calls, extended context length.', 'Mas mahabang quota sa pag-uusap, mas maraming tool call, mas mahabang context.',
'aiHeaderDesc2': 'aiHeaderDesc2':
'Suitable for agent Q&A, summarization, analysis, and task execution.', 'Angkop para sa Q&A ng agent, pagbubuod, pagsusuri, at pagsasagawa ng mga gawain.',
'musicSearchPlaybackControl': 'Music library search and playback control', 'musicSearchPlaybackControl':
'Paghahanap sa music library at kontrol sa playback',
'smartPlaylistAndSimilarRecommendations': 'smartPlaylistAndSimilarRecommendations':
'Smart playlist and similar song recommendations', 'Matalinong playlist at rekomendasyon ng kahalintulad na kanta',
'routePlanningAndCongestionAvoidance': 'routePlanningAndCongestionAvoidance':
'Route planning and congestion avoidance', 'Pagplano ng ruta at pag-iwas sa trapiko',
'voiceBroadcastAndWaypoints': 'Voice broadcast and waypoint settings', 'voiceBroadcastAndWaypoints': 'Voice broadcast at mga setting ng waypoint',
'realTimeWeatherForecast': 'Real-time weather and forecast', 'realTimeWeatherForecast': 'Real-time na panahon at forecast',
'clothingAdviceAndTravelReminders': 'Clothing advice and travel reminders', 'clothingAdviceAndTravelReminders':
'poiSearchFoodGasParking': 'POI search: dining / gas / parking', 'Payo sa kasuotan at mga paalala sa biyahe',
'ratingsHoursAndDirectRoutes': 'Ratings, business hours, and direct routing', 'poiSearchFoodGasParking': 'Paghahanap ng POI: kainan / gas / parking',
'hotNewsAndTopicOverview': 'Hot news and topic overview', 'ratingsHoursAndDirectRoutes': 'Ratings, oras ng negosyo, at direktang ruta',
'longArticleSummariesAndKeyPoints': 'Long-article summaries and key points', 'hotNewsAndTopicOverview': 'Mainit na balita at buod ng paksa',
'helpCallAndSMS': 'Help with calls and SMS', 'longArticleSummariesAndKeyPoints':
'Buod ng mahahabang artikulo at mahahalagang punto',
'helpCallAndSMS': 'Tulong sa tawag at SMS',
'templatedMessagesAndScheduleReminders': 'templatedMessagesAndScheduleReminders':
'Template messages and schedule reminders', 'Mga mensaheng template at naka-iskedyul na paalala',
'aiDisclaimer': 'aiDisclaimer':
'Nakadepende ang mga feature sa mga pahintulot ng device, availability ng serbisyo, at kondisyon ng network.', 'Nakadepende ang mga feature sa mga pahintulot ng device, availability ng serbisyo, at kondisyon ng network.',
@ -388,21 +391,21 @@ const Map<String, String> tlPH = {
// 商品模块 - 会议商品页 // 商品模块 - 会议商品页
'meetingRecording': 'Pagre-record ng pulong', 'meetingRecording': 'Pagre-record ng pulong',
'transcriptionAndSummary': 'Transcription & Summary', 'transcriptionAndSummary': 'Transkripsyon at buod',
'keywordSearch': 'Keyword Search', 'keywordSearch': 'Paghahanap ng keyword',
'collaborationSharing': 'Collaboration & Sharing', 'collaborationSharing': 'Pakikipagtulungan at pag-share',
'meetingHeaderDesc1': 'meetingHeaderDesc1':
'Audio recording, transcription, keyword search, at auto summary para mapabilis ang kahusayan ng pulong.', 'Audio recording, transcription, keyword search, at auto summary para mapabilis ang kahusayan ng pulong.',
'meetingHeaderDesc2': 'meetingHeaderDesc2':
'Suitable for business meetings, class notes, and interview minutes.', 'Angkop para sa mga business meeting, class notes, at minutes ng interview.',
'meetingAutoRecording': 'Awtomatikong pagre-record at pagse-segment', 'meetingAutoRecording': 'Awtomatikong pagre-record at pagse-segment',
'meetingSpeakerTagging': 'Speaker labeling', 'meetingSpeakerTagging': 'Pag-label ng tagapagsalita',
'meetingLongAudioTranscription': 'Long audio transcription', 'meetingLongAudioTranscription': 'Transkripsyon ng mahabang audio',
'meetingKeyPointSummary': 'Key point extraction', 'meetingKeyPointSummary': 'Pagkuha ng mahahalagang punto',
'meetingTopicNameSearch': 'Search by topic/name', 'meetingTopicNameSearch': 'Maghanap ayon sa paksa/pangalan',
'meetingTimelineJump': 'Timeline jump', 'meetingTimelineJump': 'Tumalon sa timeline',
'meetingExportSummary': 'Export minutes', 'meetingExportSummary': 'I-export ang minutes ng pulong',
'meetingMultiPlatformShare': 'Share across platforms', 'meetingMultiPlatformShare': 'I-share sa iba\'t ibang platform',
'meetingDisclaimer': 'meetingDisclaimer':
'Gamitin sa tahimik na lugar; nakadepende ang performance sa mikropono at network.', 'Gamitin sa tahimik na lugar; nakadepende ang performance sa mikropono at network.',
@ -420,7 +423,7 @@ const Map<String, String> tlPH = {
'earlyAccessNewFeatures': 'Maagang access sa mga bagong feature', 'earlyAccessNewFeatures': 'Maagang access sa mga bagong feature',
'crossDeviceSync': 'Pag-sync sa iba’t ibang device', 'crossDeviceSync': 'Pag-sync sa iba’t ibang device',
'vipDisclaimer': 'vipDisclaimer':
'Actual benefits depend on the package details and may change with versions.', 'Ang aktwal na benepisyo ay nakadepende sa detalye ng package at maaaring magbago ayon sa bersyon.',
// 商品模块 - 商品名称与描述 // 商品模块 - 商品名称与描述
'ai_001_name': 'AI Basic 100', 'ai_001_name': 'AI Basic 100',
@ -432,9 +435,12 @@ const Map<String, String> tlPH = {
'trans_001_name': 'Pangunahing Pagsasalin 100', 'trans_001_name': 'Pangunahing Pagsasalin 100',
'trans_002_name': 'Pangunahing Pagsasalin 500', 'trans_002_name': 'Pangunahing Pagsasalin 500',
'trans_003_name': 'Pangunahing Pagsasalin 1000', 'trans_003_name': 'Pangunahing Pagsasalin 1000',
'ai_001_desc': 'Includes 100 uses. Access core AI features.', 'ai_001_desc':
'ai_002_desc': 'Includes 500 uses. Access core AI features.', 'Kasama ang 100 paggamit. I-access ang pangunahing AI feature.',
'ai_003_desc': 'Includes 1000 uses. Access core AI features.', 'ai_002_desc':
'Kasama ang 500 paggamit. I-access ang pangunahing AI feature.',
'ai_003_desc':
'Kasama ang 1000 paggamit. I-access ang pangunahing AI feature.',
'meet_001_desc': 'Kasama ang 100 pagre-record/pag-transcribe ng meeting.', 'meet_001_desc': 'Kasama ang 100 pagre-record/pag-transcribe ng meeting.',
'meet_002_desc': 'Kasama ang 500 pagre-record/pag-transcribe ng meeting.', 'meet_002_desc': 'Kasama ang 500 pagre-record/pag-transcribe ng meeting.',
'meet_003_desc': 'Kasama ang 1000 pagre-record/pag-transcribe ng meeting.', 'meet_003_desc': 'Kasama ang 1000 pagre-record/pag-transcribe ng meeting.',
@ -443,46 +449,50 @@ const Map<String, String> tlPH = {
'trans_003_desc': 'Kasama ang 1000 pagsasalin (boses/teksto).', 'trans_003_desc': 'Kasama ang 1000 pagsasalin (boses/teksto).',
// 商品模块 - 页脚 // 商品模块 - 页脚
'appNameProvider': 'App: VoiTrans · Provided by: VoiTrans', 'appNameProvider': 'App: VoiTrans · Ibinigay ng: VoiTrans',
'iapCustomerServiceQQLabel': 'IAP customer service QQ: @qq', 'iapCustomerServiceQQLabel': 'QQ ng customer service ng IAP: @qq',
'copyrightVoitrans': '© 2025 Voitrans Technologies', 'copyrightVoitrans': '© 2025 Voitrans Technologies',
// 新手引导 // 新手引导
'skip': 'Laktawan', 'skip': 'Laktawan',
'next': 'Next', 'next': 'Susunod',
'sayLilyHint': 'Say "Lily Lily" to the mic', 'sayLilyHint': 'Sabihin ang "Lily Lily" sa mikropono',
'imHere': 'I’m here~', 'imHere': 'Nandito ako~',
'guideWelcomeWakeAI': 'Welcome to Voitrans! First, wake your AI “Lily”.', 'guideWelcomeWakeAI':
'aiReplyCompleted': 'Lily has finished the reply!', 'Maligayang pagdating sa Voitrans! Una, gisingin ang AI mong “Lily”.',
'aiThinking': 'Lily is thinking…', 'aiReplyCompleted': 'Tapos na ang sagot ni Lily!',
'guideAwakenSuccess': 'Great! Lily is awake—ask it to help.', 'aiThinking': 'Nag-iisip si Lily…',
'confirmInput': 'Confirm Input', 'guideAwakenSuccess': 'Ayos! Gising na si Lily—magpatulong na.',
'guideClickSendPrefix': 'Tap send, ', 'confirmInput': 'Kumpirmahin ang input',
'guideWeatherStart': 'Tell Lily: “What’s the weather today?”', 'guideClickSendPrefix': 'I-tap ang ipadala, ',
'guideWeatherInput': 'What’s the weather today?', 'guideWeatherStart': 'Sabihin kay Lily: “Ano ang panahon ngayon?”',
'guideWeatherSend': 'Lily will report the weather in real time', 'guideWeatherInput': 'Ano ang panahon ngayon?',
'guideWeatherEnd': 'Lily can report weather live—try other commands', 'guideWeatherSend': 'Iuulat ni Lily ang panahon sa real time',
'guideMusicStart': 'Tell Lily: “Play some rock music”', 'guideWeatherEnd':
'guideMusicInput': 'Play some rock music', 'Kaya ni Lily mag-ulat ng live na panahon—subukan ang iba pang utos',
'guideMusicSend': 'Lily will find music for you', 'guideMusicStart': 'Sabihin kay Lily: “Magpatugtog ng rock na musika”',
'guideMusicEnd': 'Lily found music—try other commands', 'guideMusicInput': 'Magpatugtog ng rock na musika',
'guideNavStart': 'Tell Lily: “Navigate to Shenzhen Airport”', 'guideMusicSend': 'Maghahanap si Lily ng musika para sa iyo',
'guideNavInput': 'Navigate to Shenzhen Airport', 'guideMusicEnd': 'Nakahanap na si Lily ng musika—subukan ang iba pang utos',
'guideNavSend': 'Lily will plan the route', 'guideNavStart':
'guideNavEnd': 'Navigation set—try other commands', 'Sabihin kay Lily: “Mag-navigate papuntang Shenzhen Airport”',
'guideNavInput': 'Mag-navigate papuntang Shenzhen Airport',
'guideNavSend': 'Magpaplano si Lily ng ruta',
'guideNavEnd': 'Naitakda na ang nabigasyon—subukan ang iba pang utos',
'guideMeetingStart': 'guideMeetingStart':
'Tell Lily: “Create a meeting reminder for 3pm tomorrow”', 'Sabihin kay Lily: “Gumawa ng meeting reminder para 3pm bukas”',
'guideMeetingInput': 'Create a meeting reminder for 3pm tomorrow', 'guideMeetingInput': 'Gumawa ng meeting reminder para 3pm bukas',
'guideMeetingSend': 'Lily will create a meeting reminder', 'guideMeetingSend': 'Gagawa si Lily ng meeting reminder',
'guideMeetingEnd': 'Reminder created—try other commands', 'guideMeetingEnd': 'Nagawa na ang reminder—subukan ang iba pang utos',
'guidePhoneStart': 'Tell Lily: “Call Mom”', 'guidePhoneStart': 'Sabihin kay Lily: “Tawagan si Nanay”',
'guidePhoneInput': 'Call Mom', 'guidePhoneInput': 'Tawagan si Nanay',
'guidePhoneSend': 'Lily will make the call', 'guidePhoneSend': 'Tatawagan ni Lily',
'guidePhoneEnd': 'Call placed—try other commands', 'guidePhoneEnd': 'Naitawag na—subukan ang iba pang utos',
'guideSmsStart': 'Tell Lily: “Send Dad a text: I’ll be home for dinner”', 'guideSmsStart':
'guideSmsInput': 'Text Dad: I’ll be home for dinner', 'Sabihin kay Lily: “Mag-text kay Tatay: Uuwi ako para sa hapunan”',
'guideSmsSend': 'Lily will send the message', 'guideSmsInput': 'I-text si Tatay: Uuwi ako para sa hapunan',
'guideSmsEnd': 'Message sent—voice control is convenient', 'guideSmsSend': 'Ipapadala ni Lily ang mensahe',
'guideSmsEnd': 'Naipadala na ang mensahe—maginhawa ang voice control',
// Meeting模块 - 首页与导航 // Meeting模块 - 首页与导航
"startMeeting": "Simulan ang Pulong", "startMeeting": "Simulan ang Pulong",
@ -496,17 +506,17 @@ const Map<String, String> tlPH = {
'recordingDetails': 'Mga Detalye ng Pag-record', 'recordingDetails': 'Mga Detalye ng Pag-record',
'aiSummary': 'Buod ng AI', 'aiSummary': 'Buod ng AI',
'meetingTranscript': 'Transkripsyon ng Pulong', 'meetingTranscript': 'Transkripsyon ng Pulong',
'files': 'Files', 'files': 'Mga file',
'mine': 'Mine', 'mine': 'Akin',
'connect': 'Kumonekta', 'connect': 'Kumonekta',
'allFiles': 'All Files', 'allFiles': 'Lahat ng file',
'searchInAllFiles': 'Search in all files', 'searchInAllFiles': 'Maghanap sa lahat ng file',
'from': 'Mula', 'from': 'Mula',
'sortBy': 'Iayos ayon sa', 'sortBy': 'Iayos ayon sa',
'creationTime': 'Oras ng paggawa', 'creationTime': 'Oras ng paggawa',
'bluetoothConnection': 'Koneksyon sa Bluetooth', 'bluetoothConnection': 'Koneksyon sa Bluetooth',
'meetingReconnect': 'Kumonekta muli', 'meetingReconnect': 'Kumonekta muli',
'searching': 'Searching...', 'searching': 'Naghahanap...',
'searchFailed': 'searchFailed':
'Nabigo ang paghahanap, pakisuri kung naka-enable ang Bluetooth', 'Nabigo ang paghahanap, pakisuri kung naka-enable ang Bluetooth',
'aiPenNotFound': 'Hindi nakita ang AI PEN device', 'aiPenNotFound': 'Hindi nakita ang AI PEN device',
@ -529,7 +539,7 @@ const Map<String, String> tlPH = {
'liveRecording': 'Live na pagre-record', 'liveRecording': 'Live na pagre-record',
'audioVideoRecording': 'Pagre-record ng audio/video', 'audioVideoRecording': 'Pagre-record ng audio/video',
'callRecording': 'Pagre-record ng tawag', 'callRecording': 'Pagre-record ng tawag',
'importAudio': 'Import Audio', 'importAudio': 'Mag-import ng audio',
'meetingRecordExitTitle': 'Lumabas sa Pag-record', // 退出录音 'meetingRecordExitTitle': 'Lumabas sa Pag-record', // 退出录音
'meetingRecordExitMessage': 'Pumili ng aksyon pagkatapos umalis', // 请选择离开后的操作 'meetingRecordExitMessage': 'Pumili ng aksyon pagkatapos umalis', // 请选择离开后的操作
'meetingRecordEndAndSave': 'Tapusin at I-save', // 结束录音并保存 'meetingRecordEndAndSave': 'Tapusin at I-save', // 结束录音并保存
@ -552,204 +562,205 @@ const Map<String, String> tlPH = {
'Para maipakita ang lumulutang na bar ng pagre-record (timer/pause/ituloy) habang nagre-record, kailangan namin ang overlay permission.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。 'Para maipakita ang lumulutang na bar ng pagre-record (timer/pause/ituloy) habang nagre-record, kailangan namin ang overlay permission.', // 为了在录音过程中显示录音悬浮条(计时/暂停/继续),需要悬浮窗权限。
'overlayPermissionOpenSettingsFailed': 'overlayPermissionOpenSettingsFailed':
'Hindi awtomatikong mabuksan ang system settings. Pakibuksan ang Settings at i-enable nang manu-mano ang overlay permission.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。 'Hindi awtomatikong mabuksan ang system settings. Pakibuksan ang Settings at i-enable nang manu-mano ang overlay permission.', // 无法自动跳转到系统设置,请手动前往系统设置开启悬浮窗权限。
'transcribing': 'Transcribing...', 'transcribing': 'Nagtatranscribe...',
'summarizing': 'Summarizing...', 'summarizing': 'Binubuod...',
'analyzing': 'Analyzing...', 'analyzing': 'Sinusuri...',
'summaryComplete': 'Summary Complete', 'summaryComplete': 'Tapos na ang buod',
'generate': 'Generate', 'generate': 'Bumuo',
'overview': 'Overview', 'overview': 'Pangkalahatang-ideya',
'transcription': 'Transcription', 'transcription': 'Transkripsyon',
'summary': 'Summary', 'summary': 'Buod',
'mindMap': 'Mind Map', 'mindMap': 'Mind Map',
'editSpeaker': 'Edit', 'editSpeaker': 'I-edit',
'nameSpeaker': 'Name Speaker', 'nameSpeaker': 'Pangalanan ang tagapagsalita',
// Meeting模块 - 转写与总结 // Meeting模块 - 转写与总结
'reSummarize': 'Re-summarize', 'reSummarize': 'Muling ibuod',
'dateAndTime': 'Date & Time', 'dateAndTime': 'Petsa at oras',
'location': 'Location', 'location': 'Lokasyon',
'attendees': 'Attendees', 'attendees': 'Mga dadalo',
'inputLocation': 'Enter Location', 'inputLocation': 'Ilagay ang lokasyon',
'inputAttendees': 'Enter Attendees', 'inputAttendees': 'Ilagay ang mga dadalo',
// Meeting模块 - 模版与生成 // Meeting模块 - 模版与生成
'selectSummaryTemplate': 'Select Summary Template', 'selectSummaryTemplate': 'Pumili ng template ng buod',
'useThisTemplate': 'Use This Template', 'useThisTemplate': 'Gamitin ang template na ito',
'lastUsed': 'Last Used', 'lastUsed': 'Huling ginamit',
'create': 'Gumawa', 'create': 'Gumawa',
'templateDetails': 'Mga Detalye ng Template', 'templateDetails': 'Mga detalye ng plantilla',
'tag': 'Tag', 'tag': 'Tag',
'description': 'Paglalarawan', 'description': 'Paglalarawan',
'template': 'Template', 'template': 'Plantilla',
'deleteTemplate': 'Tanggalin ang Template', 'deleteTemplate': 'Tanggalin ang plantilla',
'deleteTemplateConfirm': 'deleteTemplateConfirm':
'Sigurado ka bang gusto mong tanggalin ang template na ito?', 'Sigurado ka bang gusto mong tanggalin ang plantilla na ito?',
'editTemplate': 'I-edit ang Template', 'editTemplate': 'I-edit ang plantilla',
'createTemplate': 'Gumawa ng Template', 'createTemplate': 'Gumawa ng plantilla',
'name': 'Pangalan', 'name': 'Pangalan',
'templateContentHint': 'templateContentHint':
'Pakiusap maglagay ng nilalaman ng template! Tip: Pindutin ang AI button sa itaas para mabilis na bumuo ng nilalaman ng template batay sa pangalan at paglalarawan na inilagay mo', 'Pakiusap maglagay ng nilalaman ng plantilla! Tip: Pindutin ang AI button sa itaas para mabilis na bumuo ng nilalaman ng plantilla batay sa pangalan at paglalarawan na inilagay mo',
'inputNameHint': 'Pakiusap maglagay ng pangalan', 'inputNameHint': 'Pakiusap maglagay ng pangalan',
'inputDescHint': 'Pakiusap maglagay ng paglalarawan', 'inputDescHint': 'Pakiusap maglagay ng paglalarawan',
'custom': 'Pasadya', 'custom': 'Pasadya',
'pleaseEnter': 'Mangyaring ilagay', 'pleaseEnter': 'Mangyaring ilagay',
'viewAll': 'Tingnan lahat', 'viewAll': 'Tingnan lahat',
'recordingLanguage': 'Wika ng pagre-record', 'recordingLanguage': 'Wika ng pagre-record',
'chineseSimplified': 'Chinese Mandarin (Simplified)', 'chineseSimplified': 'Chinese Mandarin (Pinasimple)',
'meetingGenerateNow': 'Generate Now', 'meetingGenerateNow': 'Bumuo ngayon',
'keyEventsAnalyzed': 'Analyzed {count} key events.', 'keyEventsAnalyzed': 'Analyzed {count} key events.',
'aiAnalysisDesc': 'aiAnalysisDesc':
'Tinutukoy ng AI analysis ang mga pangunahing pangyayari sa mga recording, na nagbibigay-daan sa iyo na pumili ng mahahalagang pangyayari para sa AI generation.', 'Tinutukoy ng AI analysis ang mga pangunahing pangyayari sa mga recording, na nagbibigay-daan sa iyo na pumili ng mahahalagang pangyayari para sa AI generation.',
// Meeting模块 - 文件操作 // Meeting模块 - 文件操作
'importing': 'Importing...', 'importing': 'Ini-import...',
'batchImporting': 'Batch importing...', 'batchImporting': 'Ini-import nang maramihan...',
'importingLocalRecordings': 'Ini-import ang mga lokal na recording...', 'importingLocalRecordings': 'Ini-import ang mga lokal na recording...',
'importFailed': 'importFailed':
'Nabigo ang pag-import ng file: {filePath}, kamalian: {error}', 'Nabigo ang pag-import ng file: {filePath}, kamalian: {error}',
'importSuccess': 'Matagumpay na na-import ang {count} lokal na recording', 'importSuccess': 'Matagumpay na na-import ang {count} lokal na recording',
'importError': 'Nabigo ang pag-import: {error}', 'importError': 'Nabigo ang pag-import: {error}',
'pleaseSelectAudioFile': 'Mangyaring pumili ng audio file', 'pleaseSelectAudioFile': 'Mangyaring pumili ng audio file',
'shareAudio': 'Share Meeting Audio', 'shareAudio': 'I-share ang audio ng pulong',
'shareComplete': 'Share complete!', 'shareComplete': 'Tapos na ang pag-share!',
'shareFailed': 'Nabigo ang pag-share: {error}', 'shareFailed': 'Nabigo ang pag-share: {error}',
'fileProcessingFailed': 'fileProcessingFailed':
'Nabigo ang pagproseso ng file: {filePath}, kamalian: {error}', 'Nabigo ang pagproseso ng file: {filePath}, kamalian: {error}',
// Meeting模块 - 思维导图 // Meeting模块 - 思维导图
'saveMindMap': 'I-save ang Mind Map', 'saveMindMap': 'I-save ang Mind Map',
'shareMindMap': 'Share Mind Map', 'shareMindMap': 'I-share ang Mind Map',
'shareSuccess': 'Matagumpay ang pag-share', 'shareSuccess': 'Matagumpay ang pag-share',
// Meeting模块 - AI问答 // Meeting模块 - AI问答
'askAI': 'Ask AI ...', 'askAI': 'Magtanong sa AI ...',
'askAIPrompt': 'What can I help you with today?', 'askAIPrompt': 'Ano ang maitutulong ko sa iyo ngayon?',
'continueAsk': 'Continue Asking', 'continueAsk': 'Magpatuloy sa pagtatanong',
'todoList': 'To-Do List', 'todoList': 'Listahan ng gagawin',
'extractConclusion': 'Extract Conclusion', 'extractConclusion': 'Kunin ang konklusyon',
'generateKeyIndicators': 'Generate Key Indicators', 'generateKeyIndicators': 'Bumuo ng mga pangunahing sukatan',
// Meeting模块 - 分享与导出 // Meeting模块 - 分享与导出
'shareLink': 'Share Link', 'shareLink': 'I-share ang link',
'copyTranscript': 'Copy Transcript', 'copyTranscript': 'Kopyahin ang transcript',
'copySummary': 'Copy Summary', 'copySummary': 'Kopyahin ang buod',
'exportAudio': 'Export Audio', 'exportAudio': 'I-export ang audio',
'exportTranscript': 'Export Transcript', 'exportTranscript': 'I-export ang transcript',
'shareMeetingAudio': 'Share Meeting Audio', 'shareMeetingAudio': 'I-share ang audio ng pulong',
'exportSummary': 'Export Summary', 'exportSummary': 'I-export ang buod',
'exportAs': 'Export As', 'exportAs': 'I-export bilang',
'exportingPDF': 'Exporting PDF...', 'exportingPDF': 'Ini-export ang PDF...',
'export': 'I-export', 'export': 'I-export',
// Meeting模块 - 发言者 // Meeting模块 - 发言者
'applyToAllParagraphs': 'Ilapat sa lahat ng talata ng tagapagsalitang ito', 'applyToAllParagraphs': 'Ilapat sa lahat ng talata ng tagapagsalitang ito',
'summaryWillBeUpdatedAutomatically': 'summaryWillBeUpdatedAutomatically':
'Awtomatikong maa-update ang buod batay sa template', 'Awtomatikong maa-update ang buod batay sa template',
'nameCurrentSpeaker': 'Name Current Speaker', 'nameCurrentSpeaker': 'Pangalanan ang kasalukuyang tagapagsalita',
'recentlyUsedNames': 'Recently Used Names', 'recentlyUsedNames': 'Mga kamakailang ginamit na pangalan',
'applyToCurrentParagraph': 'Apply to Current Paragraph', 'applyToCurrentParagraph': 'Ilapat sa kasalukuyang talata',
'totalTime': 'Total Time', 'totalTime': 'Kabuuang oras',
'summarySpeakerWillBeUpdatedAutomatically': 'summarySpeakerWillBeUpdatedAutomatically':
'Summary speakers will be updated automatically', 'Awtomatikong maa-update ang mga tagapagsalita sa buod',
// Meeting模块 - 云端同步 // Meeting模块 - 云端同步
'syncToCloud': 'Sync to Cloud', 'syncToCloud': 'I-sync sa cloud',
'syncToCloudTip': 'syncToCloudTip':
'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).', 'Awtomatikong i-sync ang iyong mga recording sa cloud; maaari mong i-play, i-manage, at i-share ang mga ito sa anumang VOITRANS app o VOITRANS Web (web.voitrans.com).',
'syncToVoitransApp': 'Sync VOITRANS APP', 'syncToVoitransApp': 'I-sync ang VOITRANS app',
'transcriptionRecord': 'Record ng transkripsyon', 'transcriptionRecord': 'Talaan ng transkripsyon',
// Meeting模块 - 我的页面 // Meeting模块 - 我的页面
'transcriptionRecords': 'Mga record ng transkripsyon', 'transcriptionRecords': 'Mga record ng transkripsyon',
'templateCommunity': 'Template Community', 'templateCommunity': 'Komunidad ng plantilla',
'comingSoon': 'Coming Soon', 'comingSoon': 'Darating na',
'integration': 'Integration', 'integration': 'Integrasyon',
'voitransPrivateCloud': 'VOITRANS PRIVATE CLOUD', 'voitransPrivateCloud': 'VOITRANS PRIVATE CLOUD',
'enabled': 'Naka-enable', 'enabled': 'Naka-enable',
'disabled': 'Naka-disable', 'disabled': 'Naka-disable',
'myVoitransDevice': 'Aking VOITRANS device', 'myVoitransDevice': 'Aking VOITRANS device',
'helpAndFeedback': 'Help & Feedback', 'helpAndFeedback': 'Tulong at feedback',
'aboutVoitrans': 'About VOITRANS', 'aboutVoitrans': 'Tungkol sa VOITRANS',
'meetingDays': 'Days', 'meetingDays': 'Mga araw',
'meetingHours': 'Hours', 'meetingHours': 'Mga oras',
'voitransAiMember': 'Voitrans AI Member', 'voitransAiMember': 'Voitrans AI Member',
'unlockStarterMember': 'Unlock Starter Member', 'unlockStarterMember': 'Unlock Starter Member',
'bindDeviceToActivate': 'bindDeviceToActivate':
'I-bind ang Voitrans device para i-activate ang Starter membership', 'I-bind ang Voitrans device para i-activate ang Starter membership',
'unlockNow': 'Unlock Now', 'unlockNow': 'I-unlock ngayon',
// Meeting模块 - 会员与升级 // Meeting模块 - 会员与升级
'comparison': 'Comparison', 'comparison': 'Paghahambing',
'detailedInfo': 'Detailed Information', 'detailedInfo': 'Detalyadong impormasyon',
'monthlyTranscriptionTime': 'Monthly Transcription Time', 'monthlyTranscriptionTime': 'Buwanang oras ng transkripsyon',
'unlimited': 'Unlimited', 'unlimited': 'Walang limit',
'professionalTemplates': 'Professional Templates', 'professionalTemplates': 'Mga propesyonal na template',
'limited': 'Limited', 'limited': 'May limit',
'fullTemplates': 'Full Templates', 'fullTemplates': 'Kumpletong template',
'professionalTerms': 'Professional Terms', 'professionalTerms': 'Professional Terms',
'customTemplates': 'Custom Templates', 'customTemplates': 'Pasadyang template',
'visualMindMap': 'Visual Mind Map', 'visualMindMap': 'Visual Mind Map',
'speakerIdentification': 'Speaker Identification', 'speakerIdentification': 'Speaker Identification',
'aiVoiceEnhancement': 'AI Voice Enhancement', 'aiVoiceEnhancement': 'AI Voice Enhancement',
'audioImport': 'Audio Import', 'audioImport': 'Pag-import ng audio',
'multipleExportFormats': 'Multiple Export Formats', 'multipleExportFormats': 'Maramihang format ng export',
'professionalSummaryTemplates': 'Professional Summary Templates', 'professionalSummaryTemplates': 'Mga propesyonal na template ng buod',
'professionalTemplateDesc': 'professionalTemplateDesc':
'Professional template design to improve your work efficiency. Customized according to industry needs.', 'Propesyonal na disenyo ng template para mapataas ang iyong kahusayan sa trabaho. Nakaayon sa pangangailangan ng industriya.',
'customTemplateDesc': 'customTemplateDesc':
'You can customize summary prompts according to your needs and use them to generate the required summaries.', 'Maaari mong i-customize ang mga prompt ng buod ayon sa iyong pangangailangan at gamitin ito para bumuo ng kinakailangang mga buod.',
'askAiDesc': 'askAiDesc':
'Matalinong kumuha ng mas malalim na impormasyon mula sa mga recording, gumawa ng mga data table, pangunahing konklusyon ng diskusyon, To-Do list, report email at iba pang naka-format na nilalaman sa isang click.', 'Matalinong kumuha ng mas malalim na impormasyon mula sa mga recording, gumawa ng mga data table, pangunahing konklusyon ng diskusyon, To-Do list, report email at iba pang naka-format na nilalaman sa isang click.',
'visualMindMapDesc': 'visualMindMapDesc':
'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', 'Higit pa sa mga buod: ayusin at i-visualize ang mahahalagang punto gamit ang mind map para mas madaling maunawaan ang buong teksto.',
'templateCommunityDesc': 'templateCommunityDesc':
'Discover, share, and get inspiration from the template library created by users.', 'Tuklasin, ibahagi, at kumuha ng inspirasyon mula sa library ng template na ginawa ng mga user.',
'speakerIdentificationDesc': 'speakerIdentificationDesc':
'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', 'Susuportahan ng transkripsyon ng audio ang pagkilala sa tagapagsalita para mas malinaw na maibalik ang nilalaman ng meeting o tawag. Mas magiging tumpak din ang buod.',
'privateCloudSyncDesc': 'privateCloudSyncDesc':
'Ang iyong mga recording at transcription ay ligtas na iiimbak sa mga dedikadong cloud server, na may ganap na encryption sa pag-upload at pag-download upang matiyak ang privacy at seguridad.', 'Ang iyong mga recording at transcription ay ligtas na iiimbak sa mga dedikadong cloud server, na may ganap na encryption sa pag-upload at pag-download upang matiyak ang privacy at seguridad.',
'aiVoiceEnhancementDesc': 'aiVoiceEnhancementDesc':
'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', 'Sinusuportahan ng AI voice enhancement ang iba\'t ibang setting ng noise reduction, matalinong inaalis ang ingay sa background, pinapalinaw ang boses, at pinapaganda ang kalidad ng playback.',
'audioImportDesc': 'audioImportDesc':
'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', 'Madaling mag-import ng mga audio file mula sa lokal o third-party app, gaya ng voice memos, Google Drive, atbp.',
'multipleExportFormatsDesc': 'multipleExportFormatsDesc':
'I-export ang iyong mga audio recording, transcription text at summary sa iba\'t ibang format (TXT, PDF, JPEG) upang matugunan ang iyong mga pangangailangan.', 'I-export ang iyong mga audio recording, transcription text at summary sa iba\'t ibang format (TXT, PDF, JPEG) upang matugunan ang iyong mga pangangailangan.',
'upgradeMembership': 'Upgrade Your Membership', 'upgradeMembership': 'I-upgrade ang membership',
'yearlySubscription': 'Yearly Subscription', 'yearlySubscription': 'Taunang subscription',
'monthlySubscription': 'Monthly Subscription', 'monthlySubscription': 'Buwanang subscription',
'proMonthly': 'Pro ¥60/month', 'proMonthly': 'Pro ¥60/buwan',
'proMonthlyDesc': 'proMonthlyDesc':
'7-day free trial, then ¥800/year. Cancel anytime before trial ends.', 'Libreng trial sa loob ng 7 araw, pagkatapos ay ¥800/taon. Maaaring kanselahin bago matapos ang trial.',
'sevenDayTrial': '7-day Free Trial', 'sevenDayTrial': '7-araw na libreng trial',
'unlimitedMonthly': 'Unlimited ¥120/month', 'unlimitedMonthly': 'Walang limit ¥120/buwan',
'unlimitedMonthlyDesc': 'unlimitedMonthlyDesc':
'7-day free trial, then ¥1600/year. Cancel anytime before trial ends.', 'Libreng trial sa loob ng 7 araw, pagkatapos ay ¥1600/taon. Maaaring kanselahin bago matapos ang trial.',
'trialNote': '*Free trial for 7 days, then charged annually, cancel anytime.', 'trialNote':
'*7-araw na libreng trial, pagkatapos ay taunang singil; maaaring kanselahin anumang oras.',
'proPrice': 'Pro ¥120', 'proPrice': 'Pro ¥120',
'proMonthlyPrice': '¥120/month', 'proMonthlyPrice': '¥120/buwan',
'subscribe': 'Subscribe', 'subscribe': 'Mag-subscribe',
'unlimitedPrice': 'Unlimited ¥198', 'unlimitedPrice': 'Unlimited ¥198',
'unlimitedMonthlyPrice': '¥198/month', 'unlimitedMonthlyPrice': '¥198/buwan',
'upgradeNote': 'upgradeNote':
'*After upgrading subscription, the remaining days of the original subscription will be automatically calculated and refunded to your payment account', '*Pagkatapos i-upgrade ang subscription, awtomatikong kakalkulahin ang natitirang araw ng dating subscription at ire-refund sa iyong payment account',
'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'buyMoreTranscriptionTime': 'Bumili ng dagdag na oras ng transkripsyon',
'sixThousandMinutes': '6,000 minutes', 'sixThousandMinutes': '6,000 minuto',
'threeThousandMinutes': '3,000 minutes', 'threeThousandMinutes': '3,000 minuto',
'sixHundredMinutes': '600 minutes', 'sixHundredMinutes': '600 minuto',
'oneHundredTwentyMinutes': '120 minutes', 'oneHundredTwentyMinutes': '120 minuto',
'validityPeriod': '*Validity Period: ', 'validityPeriod': '*Panahon ng bisa: ',
'validityNote': 'validityNote':
'Activated immediately after purchase, valid for 2 years after activation.', 'Awtomatikong maa-activate pagkatapos bumili, at valid sa loob ng 2 taon pagkatapos ma-activate.',
'purchase': 'Purchase', 'purchase': 'Bumili',
// Meeting模块 - 录音语言 // Meeting模块 - 录音语言
'recordLanguage': 'Wika ng pagre-record', 'recordLanguage': 'Wika ng pagre-record',
'cantonese': 'Cantonese', 'cantonese': 'Kantones',
'sichuan': 'Sichuan Dialect', 'sichuan': 'Dayalekto ng Sichuan',
'shanghai': 'Shanghai Dialect', 'shanghai': 'Dayalekto ng Shanghai',
// Meeting模块 - 错误提示 // Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Unknown Language', 'meetingUnknownLanguage': 'Hindi kilalang wika',
'analysisFailed': 'Nabigo ang pagsusuri, pakisubukang muli mamaya', 'analysisFailed': 'Nabigo ang pagsusuri, pakisubukang muli mamaya',
'transcriptionFailed': 'Nabigo ang transcription, pakisubukang muli mamaya', 'transcriptionFailed': 'Nabigo ang transcription, pakisubukang muli mamaya',
'summaryFailed': 'Nabigo ang buod, pakisubukang muli mamaya', 'summaryFailed': 'Nabigo ang buod, pakisubukang muli mamaya',
@ -833,11 +844,11 @@ const Map<String, String> tlPH = {
"unbind": "Alisin sa pagkaka-bind", "unbind": "Alisin sa pagkaka-bind",
"noDevicesBound": "Wala pang naka-bind na device", "noDevicesBound": "Wala pang naka-bind na device",
"pleaseBindDeviceFirst": "Mangyaring mag-bind muna ng device para pamahalaan", "pleaseBindDeviceFirst": "Mangyaring mag-bind muna ng device para pamahalaan",
"noMacAddress": "No MAC Address", "noMacAddress": "Walang MAC Address",
"licenseCode": "License Code", "licenseCode": "Code ng lisensya",
"confirmUnbind": "Confirm Unbind", "confirmUnbind": "Kumpirmahin ang pag-unbind",
"confirmUnbindMessage": "Are you sure you want to unbind device \\", "confirmUnbindMessage": "Sigurado ka bang gusto mong i-unbind ang device \\",
"confirmUnbindAction": "Confirm Unbind", "confirmUnbindAction": "Kumpirmahin ang pag-unbind",
// Agent模块 - 主界面 // Agent模块 - 主界面
"Lily": "Lily", "Lily": "Lily",
@ -1074,7 +1085,7 @@ const Map<String, String> tlPH = {
"clearHistoryConfirm": "clearHistoryConfirm":
"Sigurado ka bang gusto mong burahin ang lahat ng kasaysayan ng pagsasalin? Hindi na ito maibabalik.", "Sigurado ka bang gusto mong burahin ang lahat ng kasaysayan ng pagsasalin? Hindi na ito maibabalik.",
"unknownLanguage": "Hindi Kilalang Wika", "unknownLanguage": "Hindi Kilalang Wika",
"deleteSessionRecord": "Burahin ang Record ng Session", "deleteSessionRecord": "Burahin ang talaan ng session",
"deleteSessionConfirm": "deleteSessionConfirm":
"Sigurado ka bang gusto mong burahin ang lahat ng record ng pagsasalin para sa session na ito? Hindi na ito maibabalik.", "Sigurado ka bang gusto mong burahin ang lahat ng record ng pagsasalin para sa session na ito? Hindi na ito maibabalik.",
@ -1158,7 +1169,7 @@ const Map<String, String> tlPH = {
"regenerate": "Muling buuin", "regenerate": "Muling buuin",
"summaryTimeoutMessage": "summaryTimeoutMessage":
"Nag-time out ang kahilingan sa pagbuo ng buod, maaaring dahil sa problema sa network o abala ang server.", "Nag-time out ang kahilingan sa pagbuo ng buod, maaaring dahil sa problema sa network o abala ang server.",
"deleteTranslationRecord": "Burahin ang Record ng Pagsasalin", "deleteTranslationRecord": "Burahin ang talaan ng pagsasalin",
"deleteTranslationConfirm": "deleteTranslationConfirm":
"Sigurado ka bang gusto mong burahin ang record ng pagsasalin na ito? Hindi na ito maibabalik.", "Sigurado ka bang gusto mong burahin ang record ng pagsasalin na ito? Hindi na ito maibabalik.",
"originalText": "Orihinal na Teksto", "originalText": "Orihinal na Teksto",
@ -1166,7 +1177,7 @@ const Map<String, String> tlPH = {
"sessionSummary": "Buod ng Session", "sessionSummary": "Buod ng Session",
"cannotShare": "Hindi maibahagi", "cannotShare": "Hindi maibahagi",
"generateSummaryFirst": "Mangyaring bumuo muna ng buod", "generateSummaryFirst": "Mangyaring bumuo muna ng buod",
"translationSessionRecord": "Record ng Session ng Pagsasalin", "translationSessionRecord": "Talaan ng session ng pagsasalin",
// 个人资料模块 // 个人资料模块
"editProfile": "I-edit ang Personal na Impormasyon", "editProfile": "I-edit ang Personal na Impormasyon",
@ -1245,16 +1256,16 @@ const Map<String, String> tlPH = {
'locationPermissions': 'Mga Pahintulot sa Lokasyon', 'locationPermissions': 'Mga Pahintulot sa Lokasyon',
'phone': 'Telepono', 'phone': 'Telepono',
'sms': 'SMS', 'sms': 'SMS',
'contacts': 'Contacts', 'contacts': 'Mga contact',
'notification': 'Notification', 'notification': 'Abiso',
'alarm': 'Alarm', 'alarm': 'Alarm',
'calendarWrite': 'Pagsulat sa Kalendaryo', 'calendarWrite': 'Pagsulat sa Kalendaryo',
'calendarFullAccess': 'Buong Access sa Kalendaryo', 'calendarFullAccess': 'Buong pahintulot sa kalendaryo',
'locationInfo': 'Impormasyon sa Lokasyon', 'locationInfo': 'Impormasyon sa Lokasyon',
'phonePermissionDesc': 'Ginagamit para sa function ng pagtawag', 'phonePermissionDesc': 'Ginagamit para sa function ng pagtawag',
'smsPermissionDesc': 'Ginagamit para sa function ng pagpapadala ng SMS', 'smsPermissionDesc': 'Ginagamit para sa function ng pagpapadala ng SMS',
'alarmPermissionDesc': 'alarmPermissionDesc':
'Used to set exact alarms to ensure reminders trigger on time', 'Ginagamit para mag-set ng eksaktong alarm upang masigurong tumunog ang mga paalala sa oras',
'calendarWritePermissionDesc': 'calendarWritePermissionDesc':
'Ginagamit para sa paglikha ng mga kaganapan at paalala sa kalendaryo', 'Ginagamit para sa paglikha ng mga kaganapan at paalala sa kalendaryo',
'calendarFullAccessPermissionDesc': 'calendarFullAccessPermissionDesc':
@ -1319,8 +1330,8 @@ const Map<String, String> tlPH = {
'Permanenteng tinanggihan ang pahintulot sa Bluetooth connect, mangyaring pumunta sa mga setting para paganahin ito nang manu-mano.', 'Permanenteng tinanggihan ang pahintulot sa Bluetooth connect, mangyaring pumunta sa mga setting para paganahin ito nang manu-mano.',
'locationPermanentDenial': 'locationPermanentDenial':
'Permanenteng tinanggihan ang pahintulot sa lokasyon, mangyaring pumunta sa mga setting para paganahin ito nang manu-mano.', 'Permanenteng tinanggihan ang pahintulot sa lokasyon, mangyaring pumunta sa mga setting para paganahin ito nang manu-mano.',
'notificationPermission': 'Notification', 'notificationPermission': 'Abiso',
'locationPermission': 'Location', 'locationPermission': 'Lokasyon',
'notificationPermissionExplanation': 'notificationPermissionExplanation':
'Kailangan ang pahintulot sa notification para ipakita ang status ng pagpe-play ng musika.', 'Kailangan ang pahintulot sa notification para ipakita ang status ng pagpe-play ng musika.',
'locationPermissionExplanation': 'locationPermissionExplanation':
@ -1329,7 +1340,7 @@ const Map<String, String> tlPH = {
'Permanenteng tinanggihan mo ang pahintulot sa notification, mangyaring pumunta sa mga setting para paganahin ito.', 'Permanenteng tinanggihan mo ang pahintulot sa notification, mangyaring pumunta sa mga setting para paganahin ito.',
'locationPermissionPermanentDenial': 'locationPermissionPermanentDenial':
'Permanenteng tinanggihan mo ang pahintulot sa lokasyon, mangyaring pumunta sa mga setting para paganahin ito.', 'Permanenteng tinanggihan mo ang pahintulot sa lokasyon, mangyaring pumunta sa mga setting para paganahin ito.',
'storagePermission': 'Storage', 'storagePermission': 'Imbakan',
'microphonePermissionExplanation': 'microphonePermissionExplanation':
'Kailangan namin ang pahintulot sa mikropono para mag-record ng audio content.', 'Kailangan namin ang pahintulot sa mikropono para mag-record ng audio content.',
'storagePermissionExplanation': 'storagePermissionExplanation':
@ -1450,14 +1461,15 @@ const Map<String, String> tlPH = {
'iKnow': 'Naiintindihan ko', // 我知道了 'iKnow': 'Naiintindihan ko', // 我知道了
// 配对模块 - 绑定奖励 // 配对模块 - 绑定奖励
"firstBindRewardTitle": "Pembelian Terlebih Dahulu", "firstBindRewardTitle": "Gantimpala sa pag-bind",
"firstBindRewardDesc": "Anda telah menerima premi binding.", "firstBindRewardDesc":
"vipLevelLabel": "Level VIP:", "Naibigay na ang gantimpala para sa unang pag-bind ng device.",
"vipLevelLabel": "Antas ng VIP:",
"expiryLabel": "Petsa ng pag-expire:", "expiryLabel": "Petsa ng pag-expire:",
"notActivated": "Belum diaktifkan", "notActivated": "Hindi pa na-activate",
"aiChatCreditsLabel": "Kredit Chat AI:", "aiChatCreditsLabel": "Mga Kredito sa AI Chat:",
"translationCreditsLabel": "Mga Kredito sa Pagsasalin:", "translationCreditsLabel": "Mga Kredito sa Pagsasalin:",
"meetingCreditsLabel": "Kredity meeting:", "meetingCreditsLabel": "Mga Kredito sa Meeting:",
"ok": "OK", "ok": "OK",
// 用户反馈模块 // 用户反馈模块
@ -1548,8 +1560,8 @@ const Map<String, String> tlPH = {
'otaDownloadFailed': 'Nabigo ang pag-download', 'otaDownloadFailed': 'Nabigo ang pag-download',
'otaPreparingConnection': 'Inihahanda ang koneksyon ng device...', 'otaPreparingConnection': 'Inihahanda ang koneksyon ng device...',
'otaConnectingDevice': 'Kumokonekta sa device...', 'otaConnectingDevice': 'Kumokonekta sa device...',
'otaUpgradeStarted': 'OTA upgrade started...', 'otaUpgradeStarted': 'Nagsimula na ang OTA upgrade...',
'otaUpgradeProgressWithPercent': 'Upgrade progress: @percent%', 'otaUpgradeProgressWithPercent': 'Progress ng upgrade: @percent%',
'otaUpgradeSuccessComplete': 'Matagumpay na natapos ang pag-upgrade', 'otaUpgradeSuccessComplete': 'Matagumpay na natapos ang pag-upgrade',
'otaUpgradeFailedWithCode': 'Nabigo ang pag-upgrade, code ng error: @code', 'otaUpgradeFailedWithCode': 'Nabigo ang pag-upgrade, code ng error: @code',
'otaUpgradeFailedTitle': 'Nabigo ang pag-upgrade', 'otaUpgradeFailedTitle': 'Nabigo ang pag-upgrade',
@ -1677,7 +1689,7 @@ const Map<String, String> tlPH = {
"萨尔瓦多": "El Salvador", "萨尔瓦多": "El Salvador",
"洪都拉斯": "Honduras", "洪都拉斯": "Honduras",
"尼加拉瓜": "Nicaragua", "尼加拉瓜": "Nicaragua",
"哥斯达黎加": "Costa Rica", "哥斯达黎加": "Kosta Rika",
"巴拿马": "Panama", "巴拿马": "Panama",
"海地": "Haiti", "海地": "Haiti",
"玻利维亚": "Bolivia", "玻利维亚": "Bolivia",

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

@ -369,31 +369,31 @@ const Map<String, String> trTR = {
'lowLatencyVoiceBroadcast': 'Düşük gecikmeli sesli yayın', 'lowLatencyVoiceBroadcast': 'Düşük gecikmeli sesli yayın',
'multiLangTextTranslation': 'Çok dilli metin çevirisi', 'multiLangTextTranslation': 'Çok dilli metin çevirisi',
'termOptimizationContextPreserve': 'termOptimizationContextPreserve':
'Terminology optimization and context preservation', 'Terminoloji optimizasyonu ve bağlam koruma',
'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', 'lexiconTourBusinessLife': 'Seyahat/İş/Yaşam sözlükleri',
'personalVocabularyMemory': 'Personal vocabulary memory', 'personalVocabularyMemory': 'Kişisel kelime hafızası',
'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'conversationSubtitleLargeText': 'Konuşma altyazıları / Büyük metin modu',
'colorHighContrast': 'High color contrast', 'colorHighContrast': 'Yüksek renk kontrastı',
'transDisclaimer': 'transDisclaimer':
'Çeviri performansı mikrofona, ağ gecikmesine ve ortam gürültüsüne bağlıdır.', 'Çeviri performansı mikrofona, ağ gecikmesine ve ortam gürültüsüne bağlıdır.',
// 商品模块 - 会议商品页 // 商品模块 - 会议商品页
'meetingRecording': 'Toplantı Kaydı', 'meetingRecording': 'Toplantı Kaydı',
'transcriptionAndSummary': 'Transcription & Summary', 'transcriptionAndSummary': 'Transkripsiyon ve Özet',
'keywordSearch': 'Keyword Search', 'keywordSearch': 'Anahtar Kelime Araması',
'collaborationSharing': 'Collaboration & Sharing', 'collaborationSharing': 'İşbirliği ve Paylaşım',
'meetingHeaderDesc1': 'meetingHeaderDesc1':
'Toplantı verimliliğini artırmak için ses kaydı, transkripsiyon, anahtar kelime araması ve otomatik özet.', 'Toplantı verimliliğini artırmak için ses kaydı, transkripsiyon, anahtar kelime araması ve otomatik özet.',
'meetingHeaderDesc2': 'meetingHeaderDesc2':
'Suitable for business meetings, class notes, and interview minutes.', 'İş toplantıları, ders notları ve mülakat tutanakları için uygundur.',
'meetingAutoRecording': 'Otomatik kayıt ve bölümleme', 'meetingAutoRecording': 'Otomatik kayıt ve bölümleme',
'meetingSpeakerTagging': 'Speaker labeling', 'meetingSpeakerTagging': 'Konuşmacı etiketleme',
'meetingLongAudioTranscription': 'Long audio transcription', 'meetingLongAudioTranscription': 'Uzun ses transkripsiyonu',
'meetingKeyPointSummary': 'Key point extraction', 'meetingKeyPointSummary': 'Anahtar nokta çıkarımı',
'meetingTopicNameSearch': 'Search by topic/name', 'meetingTopicNameSearch': 'Konu/isme göre arama',
'meetingTimelineJump': 'Timeline jump', 'meetingTimelineJump': 'Zaman çizelgesine atlama',
'meetingExportSummary': 'Export minutes', 'meetingExportSummary': 'Tutanakları dışa aktar',
'meetingMultiPlatformShare': 'Share across platforms', 'meetingMultiPlatformShare': 'Platformlar arası paylaşım',
'meetingDisclaimer': 'meetingDisclaimer':
'Sessiz ortamlarda kullanın; performans mikrofona ve ağa bağlıdır.', 'Sessiz ortamlarda kullanın; performans mikrofona ve ağa bağlıdır.',
@ -435,7 +435,7 @@ const Map<String, String> trTR = {
// 商品模块 - 页脚 // 商品模块 - 页脚
'appNameProvider': 'App: VoiTrans · Provided by: VoiTrans', 'appNameProvider': 'App: VoiTrans · Provided by: VoiTrans',
'iapCustomerServiceQQLabel': 'IAP customer service QQ: @qq', 'iapCustomerServiceQQLabel': 'IAP müşteri hizmetleri QQ: @qq',
'copyrightVoitrans': '© 2025 Voitrans Technologies', 'copyrightVoitrans': '© 2025 Voitrans Technologies',
// 新手引导 // 新手引导
@ -455,10 +455,10 @@ const Map<String, String> trTR = {
'guideWeatherSend': 'Lily hava durumunu gerçek zamanlı bildirir', 'guideWeatherSend': 'Lily hava durumunu gerçek zamanlı bildirir',
'guideWeatherEnd': 'guideWeatherEnd':
'Lily canlı hava durumu bildirir — diğer komutları deneyin', 'Lily canlı hava durumu bildirir — diğer komutları deneyin',
'guideMusicStart': 'Tell Lily: “Play some rock music”', 'guideMusicStart': 'Lily\'e söyleyin: \u201cBiraz rock müziği çal\u201d',
'guideMusicInput': 'Play some rock music', 'guideMusicInput': 'Biraz rock müziği çal',
'guideMusicSend': 'Lily will find music for you', 'guideMusicSend': 'Lily sizin için müzik bulacak',
'guideMusicEnd': 'Lily found music—try other commands', 'guideMusicEnd': 'Lily müzik buldu \u2014 diğer komutları deneyin',
'guideNavStart': 'Lily\'e söyleyin: “Shenzhen Havalimanı\'na navigasyon”', 'guideNavStart': 'Lily\'e söyleyin: “Shenzhen Havalimanı\'na navigasyon”',
'guideNavInput': 'Shenzhen Havalimanı\'na navigasyon', 'guideNavInput': 'Shenzhen Havalimanı\'na navigasyon',
'guideNavSend': 'Lily rotayı planlayacak', 'guideNavSend': 'Lily rotayı planlayacak',
@ -522,7 +522,7 @@ const Map<String, String> trTR = {
'liveRecording': 'Canlı Kayıt', 'liveRecording': 'Canlı Kayıt',
'audioVideoRecording': 'Ses/Video Kaydı', 'audioVideoRecording': 'Ses/Video Kaydı',
'callRecording': 'Arama Kaydı', 'callRecording': 'Arama Kaydı',
'importAudio': 'Import Audio', 'importAudio': 'Ses İçe Aktar',
'meetingRecordExitTitle': 'Kayıttan Çık', // 退出录音 'meetingRecordExitTitle': 'Kayıttan Çık', // 退出录音
'meetingRecordExitMessage': 'meetingRecordExitMessage':
'Lütfen ayrıldıktan sonra bir işlem seçin', // 请选择离开后的操作 'Lütfen ayrıldıktan sonra bir işlem seçin', // 请选择离开后的操作
@ -594,15 +594,15 @@ const Map<String, String> trTR = {
'AI analizi kayıtlardaki önemli olayları belirler ve AI oluşturma için önemli olayları seçmenizi sağlar.', 'AI analizi kayıtlardaki önemli olayları belirler ve AI oluşturma için önemli olayları seçmenizi sağlar.',
// Meeting模块 - 文件操作 // Meeting模块 - 文件操作
'importing': 'Importing...', 'importing': 'İçe aktarılıyor...',
'batchImporting': 'Batch importing...', 'batchImporting': 'Toplu içe aktarılıyor...',
'importingLocalRecordings': 'Yerel kayıtlar içe aktarılıyor...', 'importingLocalRecordings': 'Yerel kayıtlar içe aktarılıyor...',
'importFailed': 'Dosya içe aktarılamadı: {filePath}, hata: {error}', 'importFailed': 'Dosya içe aktarılamadı: {filePath}, hata: {error}',
'importSuccess': '{count} yerel kayıt başarıyla içe aktarıldı', 'importSuccess': '{count} yerel kayıt başarıyla içe aktarıldı',
'importError': 'İçe aktarma başarısız: {error}', 'importError': 'İçe aktarma başarısız: {error}',
'pleaseSelectAudioFile': 'Lütfen bir ses dosyası seçin', 'pleaseSelectAudioFile': 'Lütfen bir ses dosyası seçin',
'shareAudio': 'Share Meeting Audio', 'shareAudio': 'Toplantı Sesini Paylaş',
'shareComplete': 'Share complete!', 'shareComplete': 'Paylaşım tamamlandı!',
'shareFailed': 'Paylaşım başarısız: {error}', 'shareFailed': 'Paylaşım başarısız: {error}',
'fileProcessingFailed': 'Dosya işleme başarısız: {filePath}, hata: {error}', 'fileProcessingFailed': 'Dosya işleme başarısız: {filePath}, hata: {error}',
@ -658,15 +658,15 @@ const Map<String, String> trTR = {
'enabled': 'Etkin', 'enabled': 'Etkin',
'disabled': 'Devre Dışı', 'disabled': 'Devre Dışı',
'myVoitransDevice': 'VOITRANS Cihazım', 'myVoitransDevice': 'VOITRANS Cihazım',
'helpAndFeedback': 'Help & Feedback', 'helpAndFeedback': 'Yardım ve Geri Bildirim',
'aboutVoitrans': 'About VOITRANS', 'aboutVoitrans': 'VOITRANS Hakkında',
'meetingDays': 'Days', 'meetingDays': 'Gün',
'meetingHours': 'Hours', 'meetingHours': 'Saat',
'voitransAiMember': 'Voitrans AI Member', 'voitransAiMember': 'Voitrans AI Üyesi',
'unlockStarterMember': 'Unlock Starter Member', 'unlockStarterMember': 'Başlangıç Üyeliğini Aç',
'bindDeviceToActivate': 'bindDeviceToActivate':
'Starter üyeliğini etkinleştirmek için Voitrans cihazını bağlayın', 'Starter üyeliğini etkinleştirmek için Voitrans cihazını bağlayın',
'unlockNow': 'Unlock Now', 'unlockNow': 'Şimdi Aç',
// Meeting模块 - 会员与升级 // Meeting模块 - 会员与升级
'comparison': 'Karşılaştırma', 'comparison': 'Karşılaştırma',
@ -685,23 +685,23 @@ const Map<String, String> trTR = {
'multipleExportFormats': 'Birden Çok Dışa Aktarma Formatı', 'multipleExportFormats': 'Birden Çok Dışa Aktarma Formatı',
'professionalSummaryTemplates': 'Profesyonel Özet Şablonları', 'professionalSummaryTemplates': 'Profesyonel Özet Şablonları',
'professionalTemplateDesc': 'professionalTemplateDesc':
'Professional template design to improve your work efficiency. Customized according to industry needs.', 'İş verimliliğinizi artırmak için profesyonel şablon tasarımı. Sektör ihtiyaçlarına göre özelleştirilmiş.',
'customTemplateDesc': 'customTemplateDesc':
'You can customize summary prompts according to your needs and use them to generate the required summaries.', 'Özet istemlerini ihtiyaçlarınıza göre özelleştirebilir ve gerekli özetleri oluşturmak için kullanabilirsiniz.',
'askAiDesc': 'askAiDesc':
'Kayıtlardan daha derin bilgileri akıllıca çıkarın; veri tabloları, temel tartışma sonuçları, yapılacaklar listeleri, rapor e-postaları ve diğer biçimlendirilmiş içerikleri tek tıkla oluşturun.', 'Kayıtlardan daha derin bilgileri akıllıca çıkarın; veri tabloları, temel tartışma sonuçları, yapılacaklar listeleri, rapor e-postaları ve diğer biçimlendirilmiş içerikleri tek tıkla oluşturun.',
'visualMindMapDesc': 'visualMindMapDesc':
'Beyond summaries - organize and visualize key points with mind maps for more effective understanding of the full text.', 'Özetlerin ötesine geçin - zihin haritalarıyla temel noktaları düzenleyin ve görselleştirerek tam metni daha etkin anlayın.',
'templateCommunityDesc': 'templateCommunityDesc':
'Discover, share, and get inspiration from the template library created by users.', 'Kullanıcılar tarafından oluşturulan şablon kitaplığından ilham alın, keşfedin ve paylaşın.',
'speakerIdentificationDesc': 'speakerIdentificationDesc':
'Audio transcription will support speaker identification, more intuitively restore meeting or phone call content. At the same time, the summary will be more accurate.', 'Ses transkripsiyonu konuşmacı tanımlama özelliğini destekleyecek, toplantı veya telefon görüşmesi içeriğini daha sezgisel biçimde geri yükleyecek. Aynı zamanda özet daha doğru olacaktır.',
'privateCloudSyncDesc': 'privateCloudSyncDesc':
'Kayıtlarınız ve transkripsiyonlarınız, gizlilik ve güvenliği sağlamak için yükleme ve indirme sırasında tam şifreleme ile özel bulut sunucularında güvenli şekilde saklanır.', 'Kayıtlarınız ve transkripsiyonlarınız, gizlilik ve güvenliği sağlamak için yükleme ve indirme sırasında tam şifreleme ile özel bulut sunucularında güvenli şekilde saklanır.',
'aiVoiceEnhancementDesc': 'aiVoiceEnhancementDesc':
'AI voice enhancement supports multiple noise reduction settings, intelligently eliminates background noise, enhances voice clarity, and improves audio playback quality.', 'AI ses iyileştirme, birden fazla gürültü azaltma ayarını destekler, arka plan gürültüsünü akıllıca ortadan kaldırır, ses netliğini artırır ve ses oynatma kalitesini iyileştirir.',
'audioImportDesc': 'audioImportDesc':
'Easily import audio files from local or third-party applications, such as voice memos, Google Drive, etc.', 'Sesli notlar, Google Drive gibi yerel veya üçüncü taraf uygulamalardan ses dosyalarını kolayca içe aktarın.',
'multipleExportFormatsDesc': 'multipleExportFormatsDesc':
'Ses kayıtlarınızı, transkripsiyon metinlerinizi ve özetlerinizi ihtiyaçlarınıza uygun çeşitli formatlarda (TXT, PDF, JPEG) dışa aktarın.', 'Ses kayıtlarınızı, transkripsiyon metinlerinizi ve özetlerinizi ihtiyaçlarınıza uygun çeşitli formatlarda (TXT, PDF, JPEG) dışa aktarın.',
'upgradeMembership': 'Üyeliğinizi Yükseltin', 'upgradeMembership': 'Üyeliğinizi Yükseltin',
@ -723,24 +723,24 @@ const Map<String, String> trTR = {
'unlimitedMonthlyPrice': '¥198/ay', 'unlimitedMonthlyPrice': '¥198/ay',
'upgradeNote': 'upgradeNote':
'*Aboneliği yükselttikten sonra, mevcut aboneliğin kalan günleri otomatik olarak hesaplanır ve ödeme hesabınıza iade edilir', '*Aboneliği yükselttikten sonra, mevcut aboneliğin kalan günleri otomatik olarak hesaplanır ve ödeme hesabınıza iade edilir',
'buyMoreTranscriptionTime': 'Buy More Transcription Time', 'buyMoreTranscriptionTime': 'Daha Fazla Transkripsiyon Süresi Satın Al',
'sixThousandMinutes': '6,000 minutes', 'sixThousandMinutes': '6.000 dakika',
'threeThousandMinutes': '3,000 minutes', 'threeThousandMinutes': '3.000 dakika',
'sixHundredMinutes': '600 minutes', 'sixHundredMinutes': '600 dakika',
'oneHundredTwentyMinutes': '120 minutes', 'oneHundredTwentyMinutes': '120 dakika',
'validityPeriod': '*Validity Period: ', 'validityPeriod': '*Geçerlilik Süresi: ',
'validityNote': 'validityNote':
'Activated immediately after purchase, valid for 2 years after activation.', 'Satın alma işleminin hemen ardından etkinleştirilir, etkinleştirmeden itibaren 2 yıl geçerlidir.',
'purchase': 'Purchase', 'purchase': 'Satın Al',
// Meeting模块 - 录音语言 // Meeting模块 - 录音语言
'recordLanguage': 'Kayıt Dili', 'recordLanguage': 'Kayıt Dili',
'cantonese': 'Cantonese', 'cantonese': 'Kantonca',
'sichuan': 'Sichuan Dialect', 'sichuan': 'Sichuan Lehçesi',
'shanghai': 'Shanghai Dialect', 'shanghai': 'Şangay Lehçesi',
// Meeting模块 - 错误提示 // Meeting模块 - 错误提示
'meetingUnknownLanguage': 'Unknown Language', 'meetingUnknownLanguage': 'Bilinmeyen Dil',
'analysisFailed': 'Analiz başarısız oldu, lütfen daha sonra tekrar deneyin', 'analysisFailed': 'Analiz başarısız oldu, lütfen daha sonra tekrar deneyin',
'transcriptionFailed': 'transcriptionFailed':
'Transkripsiyon başarısız oldu, lütfen daha sonra tekrar deneyin', 'Transkripsiyon başarısız oldu, lütfen daha sonra tekrar deneyin',
@ -757,11 +757,11 @@ const Map<String, String> trTR = {
// 设置页 // 设置页
"systemSettings": "Sistem Ayarları", "systemSettings": "Sistem Ayarları",
"vipRecharge": "Premium Üye Recharge", "vipRecharge": "VIP Üyelik Yükleme",
"aiRecharge": "Premium Üye", "aiRecharge": "AI Yükleme",
"translationRecharge": "Çeviri Toplantı Recharge", "translationRecharge": "Çeviri Yükleme",
"meetingAssistantRecharge": "Toplantı Asistanı Recharge", "meetingAssistantRecharge": "Toplantı Yükleme",
"cloudSync": "Bulut Sincronizasyonu", "cloudSync": "Bulut Senkronizasyonu",
"memberService": "Üye Hizmeti", "memberService": "Üye Hizmeti",
"bindRewardTitle": "Ödüller", "bindRewardTitle": "Ödüller",
"bindRewardSimpleDesc": "bindRewardSimpleDesc":
@ -1032,11 +1032,11 @@ const Map<String, String> trTR = {
"phoneUser": "Telefon Kullanıcısı", "phoneUser": "Telefon Kullanıcısı",
"selectSourceLanguage": "Kaynak Dil Seç", "selectSourceLanguage": "Kaynak Dil Seç",
"selectTargetLanguage": "Hedef Dil Seç", "selectTargetLanguage": "Hedef Dil Seç",
"me": "Me", "me": "Ben",
"counterPart": "Counterpart", "counterPart": "Karşı Taraf",
"bluetoothCallStateError": "bluetoothCallStateError":
"Lütfen Bluetooth kulaklığın telefona bağlı olduğundan ve arama durumunda olduğundan emin olun", "Lütfen Bluetooth kulaklığın telefona bağlı olduğundan ve arama durumunda olduğundan emin olun",
"autoDetect": "Auto Detect", // 自动检测 "autoDetect": "Otomatik Algıla", // 自动检测
// 翻译模块 - 悬浮窗与权限 // 翻译模块 - 悬浮窗与权限
'disableFloatingWindow': 'Yüzen Pencereyi Devre Dışı Bırak', 'disableFloatingWindow': 'Yüzen Pencereyi Devre Dışı Bırak',
@ -1048,16 +1048,16 @@ const Map<String, String> trTR = {
// 翻译模块 - 文本翻译 // 翻译模块 - 文本翻译
"languageDetectionFailed": "Dil algılama başarısız", "languageDetectionFailed": "Dil algılama başarısız",
"translationFailed": "Çeviri başarısız", "translationFailed": "Çeviri başarısız",
"translating": "Translating", "translating": "Çevriliyor",
"translate": "Çevir", "translate": "Çevir",
"pleaseInputText": "Lütfen metin girin", "pleaseInputText": "Lütfen metin girin",
"inputTextToTranslate": "Lütfen çevrilecek metni girin", "inputTextToTranslate": "Lütfen çevrilecek metni girin",
"textTooLong": "Text too long, max 5000 characters", "textTooLong": "Metin çok uzun, maksimum 5000 karakter",
// 翻译模块 - 历史记录 // 翻译模块 - 历史记录
"noTranslationHistory": "Henüz geçmiş yok", "noTranslationHistory": "Henüz geçmiş yok",
"historyRecords": "Geçmiş Kayıtlar", "historyRecords": "Geçmiş Kayıtlar",
"clearResults": "Clear Results", "clearResults": "Sonuçları Temizle",
"clearHistory": "Geçmişi Temizle", "clearHistory": "Geçmişi Temizle",
"clearHistoryConfirm": "clearHistoryConfirm":
"Tüm çeviri geçmişini temizlemek istediğinizden emin misiniz? Bu işlem geri alınamaz.", "Tüm çeviri geçmişini temizlemek istediğinizden emin misiniz? Bu işlem geri alınamaz.",
@ -1067,40 +1067,40 @@ const Map<String, String> trTR = {
"Bu oturumun tüm çeviri kayıtlarını silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.", "Bu oturumun tüm çeviri kayıtlarını silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.",
// 翻译模块 - 图片翻译 // 翻译模块 - 图片翻译
"selectImageSource": "Select Image Source", "selectImageSource": "Resim Kaynağı Seçin",
"imagePreview": "Image Preview", "imagePreview": "Resim Önizlemesi",
"translationResult": "Çeviri Sonucu", "translationResult": "Çeviri Sonucu",
"recognitionResult": "Recognition Result", "recognitionResult": "Tanıma Sonucu",
"translatedImagePreview": "Çevrilmiş Resim Önizlemesi", "translatedImagePreview": "Çevrilmiş Resim Önizlemesi",
"translatedImageLoadFailed": "Çevrilmiş resim yüklenemedi", "translatedImageLoadFailed": "Çevrilmiş resim yüklenemedi",
"pleaseSelectImage": "Lütfen bir resim seçin", "pleaseSelectImage": "Lütfen bir resim seçin",
"imageLoadFailed": "Resim yükleme başarısız", "imageLoadFailed": "Resim yükleme başarısız",
"imageQuality": "Image Quality", "imageQuality": "Resim Kalitesi",
"maxSize": "Max Size", "maxSize": "Maksimum Boyut",
"close": "Close", "close": "Kapat",
"setImageQuality": "Set Image Quality", "setImageQuality": "Resim Kalitesini Ayarla",
"currentQuality": "Current quality: @value%", "currentQuality": "Mevcut kalite: @value%",
"setMaxSize": "Set Max Size", "setMaxSize": "Maksimum Boyutu Ayarla",
"currentMaxSize": "Current: @pxpx", "currentMaxSize": "Mevcut: @pxpx",
"waitingForAction": "Waiting for action", "waitingForAction": "İşlem bekleniyor",
"pleaseSelectImageToStart": "Başlamak için lütfen bir resim seçin", "pleaseSelectImageToStart": "Başlamak için lütfen bir resim seçin",
"chooseImage": "Choose Image", "chooseImage": "Resim Seçin",
"openingCamera": "Opening camera...", "openingCamera": "Kamera açılıyor...",
"openingPhotoAlbum": "Opening photo album...", "openingPhotoAlbum": "Fotoğraf albümü açılıyor...",
"cancelled": "Cancelled", "cancelled": "İptal edildi",
"userCancelledSelection": "User cancelled selection", "userCancelledSelection": "Kullanıcı seçimi iptal etti",
"translatingImage": "Translating Image", "translatingImage": "Resim Çevriliyor",
"callingImageTranslateService": "Resim çeviri hizmeti çağrılıyor...", "callingImageTranslateService": "Resim çeviri hizmeti çağrılıyor...",
"savingRecord": "Kayıt kaydediliyor", "savingRecord": "Kayıt kaydediliyor",
"savingTranslationResult": "Çeviri sonucu kaydediliyor...", "savingTranslationResult": "Çeviri sonucu kaydediliyor...",
"translationCompleted": "Çeviri Tamamlandı", "translationCompleted": "Çeviri Tamamlandı",
"allStepsCompleted": "All steps completed", "allStepsCompleted": "Tüm adımlar tamamlandı",
"processingFailed": "İşleme Başarısız", "processingFailed": "İşleme Başarısız",
"imageProcessingOrTranslationFailed": "imageProcessingOrTranslationFailed":
"Resim işleme veya çeviri başarısız oldu. Lütfen tekrar deneyin.\nHata: {error}", "Resim işleme veya çeviri başarısız oldu. Lütfen tekrar deneyin.\nHata: {error}",
"imageTooLarge": "Image size exceeds 4MB limit", "imageTooLarge": "Resim boyutu 4MB sınırını aşıyor",
"imageTooLargeHint": "imageTooLargeHint":
"Image size exceeds 4MB. Reduce quality or dimensions and retry", "Resim boyutu 4MB'ı aşıyor. Kaliteyi veya boyutları azaltıp tekrar deneyin",
"emptyTranslationResult": "Resim çeviri API'si boş sonuç döndürdü", "emptyTranslationResult": "Resim çeviri API'si boş sonuç döndürdü",
"imageTranslationFailedTryLater": "imageTranslationFailedTryLater":
"Resim çevirisi başarısız oldu. Ağ sorunu veya hız sınırı olabilir. Lütfen daha sonra tekrar deneyin", "Resim çevirisi başarısız oldu. Ağ sorunu veya hız sınırı olabilir. Lütfen daha sonra tekrar deneyin",
@ -1111,11 +1111,11 @@ const Map<String, String> trTR = {
"photoAlbumPermissionRequired": "photoAlbumPermissionRequired":
"Resim seçmek için fotoğraf albümü izni gereklidir", "Resim seçmek için fotoğraf albümü izni gereklidir",
"translationDetails": "Çeviri Detayları", "translationDetails": "Çeviri Detayları",
"originalImage": "Original Image", "originalImage": "Orijinal Resim",
"sourceLanguage": "Source Language", "sourceLanguage": "Kaynak Dil",
"targetLanguage": "Target Language", "targetLanguage": "Hedef Dil",
"translationTime": "Çeviri Süresi", "translationTime": "Çeviri Süresi",
"shareInDevelopment": "Sharing feature under development", "shareInDevelopment": "Paylaşım özelliği geliştirme aşamasında",
// 翻译模块 - 录音文件 // 翻译模块 - 录音文件
"translateAudioFiles": "Ses Dosyalarını Çevir", "translateAudioFiles": "Ses Dosyalarını Çevir",
@ -1167,8 +1167,8 @@ const Map<String, String> trTR = {
'deleteAccount': 'Hesabı Sil', 'deleteAccount': 'Hesabı Sil',
'deleteAccountTips': 'deleteAccountTips':
'Hesabınızı kalıcı olarak silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.', 'Hesabınızı kalıcı olarak silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.',
'clean': 'Clear Cache', 'clean': 'Önbelleği Temizle',
'cleanTips': 'Are you sure you want to clear personal cache?', 'cleanTips': 'Kişisel önbelleği temizlemek istediğinizden emin misiniz?',
'networkConnectionFailed': 'networkConnectionFailed':
'Ağ bağlantısı başarısız, lütfen ağ ayarlarını kontrol edip tekrar deneyin', 'Ağ bağlantısı başarısız, lütfen ağ ayarlarını kontrol edip tekrar deneyin',
'serverTemporarilyUnavailable': 'serverTemporarilyUnavailable':
@ -1227,8 +1227,8 @@ const Map<String, String> trTR = {
'locationPermissions': 'Konum İzinleri', 'locationPermissions': 'Konum İzinleri',
'phone': 'Telefon', 'phone': 'Telefon',
'sms': 'SMS', 'sms': 'SMS',
'contacts': 'Contacts', 'contacts': 'Kişiler',
'notification': 'Notification', 'notification': 'Bildirim',
'alarm': 'Alarm', 'alarm': 'Alarm',
'calendarWrite': 'Takvime Yaz', 'calendarWrite': 'Takvime Yaz',
'calendarFullAccess': 'Tam Takvim Erişimi', 'calendarFullAccess': 'Tam Takvim Erişimi',
@ -1236,7 +1236,7 @@ const Map<String, String> trTR = {
'phonePermissionDesc': 'Telefon arama özelliği için kullanılır', 'phonePermissionDesc': 'Telefon arama özelliği için kullanılır',
'smsPermissionDesc': 'SMS gönderme özelliği için kullanılır', 'smsPermissionDesc': 'SMS gönderme özelliği için kullanılır',
'alarmPermissionDesc': 'alarmPermissionDesc':
'Used to set exact alarms to ensure reminders trigger on time', 'Hatırlatıcıların zamanında tetiklenmesini sağlamak için kesin alarm ayarlamak amacıyla kullanılır',
'calendarWritePermissionDesc': 'calendarWritePermissionDesc':
'Takvim etkinlikleri ve hatırlatıcılar oluşturmak için kullanılır', 'Takvim etkinlikleri ve hatırlatıcılar oluşturmak için kullanılır',
'calendarFullAccessPermissionDesc': 'calendarFullAccessPermissionDesc':
@ -1259,7 +1259,7 @@ const Map<String, String> trTR = {
'calendarFullAccessPermissionDetailDesc': 'calendarFullAccessPermissionDetailDesc':
'Takvim etkinliklerini yönetme tam takvim erişimi gerektirir', 'Takvim etkinliklerini yönetme tam takvim erişimi gerektirir',
'locationPermissionDetailDesc': 'Konum bilgisi alma konum izni gerektirir', 'locationPermissionDetailDesc': 'Konum bilgisi alma konum izni gerektirir',
'contactsPermissionDesc': 'Used for accessing contact information', 'contactsPermissionDesc': 'Kişi bilgilerine erişmek için kullanılır',
'contactsPermissionDetailDesc': 'contactsPermissionDetailDesc':
'Arama ve SMS işlevleri, kişileri seçebilmek için kişiler izni gerektirir', 'Arama ve SMS işlevleri, kişileri seçebilmek için kişiler izni gerektirir',
'bluetoothPermissionDesc': 'bluetoothPermissionDesc':
@ -1274,7 +1274,7 @@ const Map<String, String> trTR = {
'Bluetooth cihazlarına bağlanmak için kullanılır', 'Bluetooth cihazlarına bağlanmak için kullanılır',
'bluetoothConnectPermissionDetailDesc': 'bluetoothConnectPermissionDetailDesc':
'Bluetooth cihazlarına bağlanmak için Bluetooth bağlantı izni gerekir', 'Bluetooth cihazlarına bağlanmak için Bluetooth bağlantı izni gerekir',
'notificationPermissionDesc': 'Used for sending notification messages', 'notificationPermissionDesc': 'Bildirim mesajları göndermek için kullanılır',
'notificationPermissionDetailDesc': 'notificationPermissionDetailDesc':
'Uygulamanın önemli uyarılar ve mesajlar gönderebilmesi için bildirim iznine ihtiyacı var', 'Uygulamanın önemli uyarılar ve mesajlar gönderebilmesi için bildirim iznine ihtiyacı var',
'appNeedsPermissionForFullFunction': 'appNeedsPermissionForFullFunction':
@ -1282,7 +1282,7 @@ const Map<String, String> trTR = {
'permanentDenialText': 'permanentDenialText':
'{permission} iznini kalıcı olarak reddettiniz, lütfen etkinleştirmek için uygulama ayarlarına gidin', '{permission} iznini kalıcı olarak reddettiniz, lütfen etkinleştirmek için uygulama ayarlarına gidin',
'goToSettings': 'Ayarlara Git', 'goToSettings': 'Ayarlara Git',
'bluetoothScan': 'Bluetooth Scan', 'bluetoothScan': 'Bluetooth Tarama',
'bluetoothConnect': 'Bluetooth Bağlantısı', 'bluetoothConnect': 'Bluetooth Bağlantısı',
'bluetoothScanExplanation': 'bluetoothScanExplanation':
'Uygulamanın yakındaki Bluetooth cihazlarını taramak için Bluetooth tarama iznine ihtiyacı var.', 'Uygulamanın yakındaki Bluetooth cihazlarını taramak için Bluetooth tarama iznine ihtiyacı var.',
@ -1296,8 +1296,8 @@ const Map<String, String> trTR = {
'Bluetooth bağlantı izni kalıcı olarak reddedildi, lütfen ayarlara gidip manuel olarak etkinleştirin.', 'Bluetooth bağlantı izni kalıcı olarak reddedildi, lütfen ayarlara gidip manuel olarak etkinleştirin.',
'locationPermanentDenial': 'locationPermanentDenial':
'Konum izni kalıcı olarak reddedildi, lütfen ayarlara gidip manuel olarak etkinleştirin.', 'Konum izni kalıcı olarak reddedildi, lütfen ayarlara gidip manuel olarak etkinleştirin.',
'notificationPermission': 'Notification', 'notificationPermission': 'Bildirim',
'locationPermission': 'Location', 'locationPermission': 'Konum',
'notificationPermissionExplanation': 'notificationPermissionExplanation':
'Müzik çalma durumunu göstermek için bildirim izni gereklidir.', 'Müzik çalma durumunu göstermek için bildirim izni gereklidir.',
'locationPermissionExplanation': 'locationPermissionExplanation':
@ -1306,7 +1306,7 @@ const Map<String, String> trTR = {
'Bildirim iznini kalıcı olarak reddettiniz, lütfen etkinleştirmek için ayarlara gidin.', 'Bildirim iznini kalıcı olarak reddettiniz, lütfen etkinleştirmek için ayarlara gidin.',
'locationPermissionPermanentDenial': 'locationPermissionPermanentDenial':
'Konum iznini kalıcı olarak reddettiniz, lütfen etkinleştirmek için ayarlara gidin.', 'Konum iznini kalıcı olarak reddettiniz, lütfen etkinleştirmek için ayarlara gidin.',
'storagePermission': 'Storage', 'storagePermission': 'Depolama',
'microphonePermissionExplanation': 'microphonePermissionExplanation':
'Ses içeriğini kaydetmek için mikrofon iznine ihtiyacımız var.', 'Ses içeriğini kaydetmek için mikrofon iznine ihtiyacımız var.',
'storagePermissionExplanation': 'storagePermissionExplanation':
@ -1422,15 +1422,15 @@ const Map<String, String> trTR = {
'iKnow': 'Anladım', // 我知道了 'iKnow': 'Anladım', // 我知道了
// 配对模块 - 绑定奖励 // 配对模块 - 绑定奖励
"firstBindRewardTitle": "Pembelian Terlebih Dahulu", "firstBindRewardTitle": "Hoş Geldiniz Ödülü",
"firstBindRewardDesc": "Anda telah menerima premi binding.", "firstBindRewardDesc": "Bağlama ödüllerinizi aldınız.",
"vipLevelLabel": "Level VIP:", "vipLevelLabel": "VIP Seviyesi:",
"expiryLabel": "Son kullanma:", "expiryLabel": "Son Kullanma:",
"notActivated": "Belum diaktifkan", "notActivated": "Etkinleştirilmedi",
"aiChatCreditsLabel": "Kredit Chat AI:", "aiChatCreditsLabel": "AI Sohbet Kredisi:",
"translationCreditsLabel": "Kredity prevajanja:", "translationCreditsLabel": "Çeviri Kredisi:",
"meetingCreditsLabel": "Toplantı kredileri:", "meetingCreditsLabel": "Toplantı Kredisi:",
"ok": "OK", "ok": "Tamam",
// 用户反馈模块 // 用户反馈模块
"feedback": "Kullanıcı Geri Bildirimi", "feedback": "Kullanıcı Geri Bildirimi",
@ -1478,15 +1478,15 @@ const Map<String, String> trTR = {
"Her iki kulaklığı da çıkarın ve pil seviyelerinin %20'un üzerinde olduğundan emin olun", "Her iki kulaklığı da çıkarın ve pil seviyelerinin %20'un üzerinde olduğundan emin olun",
// OTA升级模块 - 弹窗与对话框 // OTA升级模块 - 弹窗与对话框
'otaNewVersionFoundWithVersion': 'New version @version found', 'otaNewVersionFoundWithVersion': 'Yeni sürüm @version bulundu',
'otaConfirmUpdateNow': 'Update now?', 'otaConfirmUpdateNow': 'Şimdi güncelle?',
'otaUpdate': 'Update', 'otaUpdate': 'Güncelle',
'otaUpgradeSuccess': 'Yükseltme Başarılı', 'otaUpgradeSuccess': 'Yükseltme Başarılı',
'otaUpgradeCompleteRepair': 'otaUpgradeCompleteRepair':
'Donanım yazılımı yükseltmesi tamamlandı!\n\nCihazın düzgün çalışması için yeniden eşleştirilmesi gerekir. Şimdi eşleştirme sayfasına gidilsin mi?', 'Donanım yazılımı yükseltmesi tamamlandı!\n\nCihazın düzgün çalışması için yeniden eşleştirilmesi gerekir. Şimdi eşleştirme sayfasına gidilsin mi?',
'otaPairLater': 'Pair Later', 'otaPairLater': 'Daha Sonra Eşleştir',
'otaPairNow': 'Pair Now', 'otaPairNow': 'Şimdi Eşleştir',
'okConfirm': 'OK', 'okConfirm': 'Tamam',
// OTA升级模块 - 设备检查 // OTA升级模块 - 设备检查
'otaBleCheckErrorWithError': 'BLE bağlantısı kontrol edilirken hata: @error', 'otaBleCheckErrorWithError': 'BLE bağlantısı kontrol edilirken hata: @error',
'otaBleNotConnected': 'BLE Cihazı Bağlı Değil', 'otaBleNotConnected': 'BLE Cihazı Bağlı Değil',
@ -1500,8 +1500,8 @@ const Map<String, String> trTR = {
'Cihaz bilgisi alınamıyor, lütfen cihaz bağlantısını kontrol edin', 'Cihaz bilgisi alınamıyor, lütfen cihaz bağlantısını kontrol edin',
'otaCannotGetProductInfoWithName': 'otaCannotGetProductInfoWithName':
'Ürün bilgisi alınamıyor, cihaz adı: @deviceName', 'Ürün bilgisi alınamıyor, cihaz adı: @deviceName',
'otaCannotGetBatteryInfo': 'Cannot get valid battery info', 'otaCannotGetBatteryInfo': 'Geçerli pil bilgisi alınamıyor',
'otaLowBattery': 'Low Battery', 'otaLowBattery': 'Düşük Pil',
'otaSingleBatteryLow': 'otaSingleBatteryLow':
'Cihaz pili donanım yazılımı yükseltmesi için çok düşük\nGereksinim: pil %20 üzerinde olmalı\nMevcut: @ear @battery%\nLütfen şarj edin ve tekrar deneyin', 'Cihaz pili donanım yazılımı yükseltmesi için çok düşük\nGereksinim: pil %20 üzerinde olmalı\nMevcut: @ear @battery%\nLütfen şarj edin ve tekrar deneyin',
'otaDoubleBatteryLow': 'otaDoubleBatteryLow':
@ -1509,7 +1509,7 @@ const Map<String, String> trTR = {
'otaBatteryCheckFailed': 'Pil Kontrolü Başarısız', 'otaBatteryCheckFailed': 'Pil Kontrolü Başarısız',
// OTA升级模块 - 升级状态 // OTA升级模块 - 升级状态
'otaDefaultUpdateDesc': 'otaDefaultUpdateDesc':
'This update includes performance optimizations and bug fixes.', 'Bu güncelleme performans optimizasyonları ve hata düzeltmeleri içermektedir.',
'otaGetLatestVersionFailed': 'En son sürüm bilgisi alınamadı', 'otaGetLatestVersionFailed': 'En son sürüm bilgisi alınamadı',
'otaGetVersionInfoFailed': 'Sürüm bilgisi alınamadı', 'otaGetVersionInfoFailed': 'Sürüm bilgisi alınamadı',
'otaCheckingDeviceStatus': 'Cihaz durumu kontrol ediliyor...', 'otaCheckingDeviceStatus': 'Cihaz durumu kontrol ediliyor...',
@ -1681,15 +1681,15 @@ const Map<String, String> trTR = {
"东帝汶": "Doğu Timor", "东帝汶": "Doğu Timor",
"斐济": "Fiji", "斐济": "Fiji",
"所罗门群岛": "Solomon Adaları", "所罗门群岛": "Solomon Adaları",
"刚果民主共和国": "Democratic Republic of the Congo", "刚果民主共和国": "Kongo Demokratik Cumhuriyeti",
"安哥拉": "Angola", "安哥拉": "Angola",
"苏丹": "Sudan", "苏丹": "Sudan",
"马尔代夫": "Maldives", "马尔代夫": "Maldivler",
"不丹": "Bhutan", "不丹": "Bhutan",
"摩纳哥": "Monaco", "摩纳哥": "Monako",
"圣马力诺": "San Marino", "圣马力诺": "San Marino",
"牙买加": "Jamaica", "牙买加": "Jamaika",
"巴哈马": "Bahamas", "巴哈马": "Bahamalar",
"巴布亚新几内亚": "Papua New Guinea", "巴布亚新几内亚": "Papua Yeni Gine",
"萨摩亚": "Samoa", "萨摩亚": "Samoa",
}; };

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

@ -418,7 +418,7 @@ const Map<String, String> ukUA = {
'earlyAccessNewFeatures': 'Ранній доступ до нових функцій', 'earlyAccessNewFeatures': 'Ранній доступ до нових функцій',
'crossDeviceSync': 'Синхронізація між пристроями', 'crossDeviceSync': 'Синхронізація між пристроями',
'vipDisclaimer': 'vipDisclaimer':
'Actual benefits depend on the package details and may change with versions.', 'Фактичні переваги залежать від деталей пакету та можуть змінюватися залежно від версії.',
// 商品模块 - 商品名称与描述 // 商品模块 - 商品名称与描述
'ai_001_name': 'AI Базовий 100', 'ai_001_name': 'AI Базовий 100',
@ -441,8 +441,8 @@ const Map<String, String> ukUA = {
'trans_003_desc': 'Містить 1000 перекладів (голос/текст).', 'trans_003_desc': 'Містить 1000 перекладів (голос/текст).',
// 商品模块 - 页脚 // 商品模块 - 页脚
'appNameProvider': 'App: VoiTrans · Provided by: VoiTrans', 'appNameProvider': 'Додаток: VoiTrans · Надається: VoiTrans',
'iapCustomerServiceQQLabel': 'IAP customer service QQ: @qq', 'iapCustomerServiceQQLabel': 'Служба підтримки IAP QQ: @qq',
'copyrightVoitrans': '© 2025 Voitrans Technologies', 'copyrightVoitrans': '© 2025 Voitrans Technologies',
// 新手引导 // 新手引导
@ -715,27 +715,27 @@ const Map<String, String> ukUA = {
'upgradeMembership': 'Оновити підписку', 'upgradeMembership': 'Оновити підписку',
'yearlySubscription': 'Річна підписка', 'yearlySubscription': 'Річна підписка',
'monthlySubscription': 'Місячна підписка', 'monthlySubscription': 'Місячна підписка',
'proMonthly': 'Pro ¥60/month', 'proMonthly': 'Pro ¥60/міс.',
'proMonthlyDesc': 'proMonthlyDesc':
'Безкоштовна пробна 7 днів, далі ¥800/рік. Можна скасувати до завершення пробного періоду.', 'Безкоштовна пробна 7 днів, далі ¥800/рік. Можна скасувати до завершення пробного періоду.',
'sevenDayTrial': 'Безкоштовна пробна 7 днів', 'sevenDayTrial': 'Безкоштовна пробна 7 днів',
'unlimitedMonthly': 'Unlimited ¥120/month', 'unlimitedMonthly': 'Unlimited ¥120/міс.',
'unlimitedMonthlyDesc': 'unlimitedMonthlyDesc':
'Безкоштовна пробна 7 днів, далі ¥1600/рік. Можна скасувати до завершення пробного періоду.', 'Безкоштовна пробна 7 днів, далі ¥1600/рік. Можна скасувати до завершення пробного періоду.',
'trialNote': 'trialNote':
'*Безкоштовно 7 днів, далі оплата щорічно; можна скасувати будь‑коли.', '*Безкоштовно 7 днів, далі оплата щорічно; можна скасувати будь‑коли.',
'proPrice': 'Pro ¥120', 'proPrice': 'Pro ¥120',
'proMonthlyPrice': '¥120/month', 'proMonthlyPrice': '¥120/міс.',
'subscribe': 'Підписатися', 'subscribe': 'Підписатися',
'unlimitedPrice': 'Unlimited ¥198', 'unlimitedPrice': 'Unlimited ¥198',
'unlimitedMonthlyPrice': '¥198/month', 'unlimitedMonthlyPrice': '¥198/міс.',
'upgradeNote': 'upgradeNote':
'*Після оновлення підписки залишок днів попередньої підписки буде автоматично перераховано та повернено на ваш платіжний рахунок', '*Після оновлення підписки залишок днів попередньої підписки буде автоматично перераховано та повернено на ваш платіжний рахунок',
'buyMoreTranscriptionTime': 'Купити більше часу транскрипції', 'buyMoreTranscriptionTime': 'Купити більше часу транскрипції',
'sixThousandMinutes': '6,000 minutes', 'sixThousandMinutes': '6 000 хвилин',
'threeThousandMinutes': '3,000 minutes', 'threeThousandMinutes': '3 000 хвилин',
'sixHundredMinutes': '600 minutes', 'sixHundredMinutes': '600 хвилин',
'oneHundredTwentyMinutes': '120 minutes', 'oneHundredTwentyMinutes': '120 хвилин',
'validityPeriod': '*Термін дії: ', 'validityPeriod': '*Термін дії: ',
'validityNote': 'validityNote':
'Активується одразу після покупки, діє 2 роки після активації.', 'Активується одразу після покупки, діє 2 роки після активації.',

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

@ -718,10 +718,10 @@ const Map<String, String> viVN = {
'upgradeNote': 'upgradeNote':
'*Sau khi nâng cấp đăng ký, số ngày còn lại của gói hiện tại sẽ được tính tự động và hoàn tiền vào tài khoản thanh toán của bạn', '*Sau khi nâng cấp đăng ký, số ngày còn lại của gói hiện tại sẽ được tính tự động và hoàn tiền vào tài khoản thanh toán của bạn',
'buyMoreTranscriptionTime': 'Mua thêm thời lượng chuyển biên', 'buyMoreTranscriptionTime': 'Mua thêm thời lượng chuyển biên',
'sixThousandMinutes': '6,000 minutes', 'sixThousandMinutes': '6.000 phút',
'threeThousandMinutes': '3,000 minutes', 'threeThousandMinutes': '3.000 phút',
'sixHundredMinutes': '600 minutes', 'sixHundredMinutes': '600 phút',
'oneHundredTwentyMinutes': '120 minutes', 'oneHundredTwentyMinutes': '120 phút',
'validityPeriod': '*Thời hạn: ', 'validityPeriod': '*Thời hạn: ',
'validityNote': 'validityNote':
'Kích hoạt ngay sau khi mua, có hiệu lực 2 năm kể từ khi kích hoạt.', 'Kích hoạt ngay sau khi mua, có hiệu lực 2 năm kể từ khi kích hoạt.',
@ -1156,8 +1156,8 @@ const Map<String, String> viVN = {
'deleteAccount': 'Xóa tài khoản', 'deleteAccount': 'Xóa tài khoản',
'deleteAccountTips': 'deleteAccountTips':
'Bạn có chắc chắn muốn xóa vĩnh viễn tài khoản của mình không? Thao tác này không thể hoàn tác', 'Bạn có chắc chắn muốn xóa vĩnh viễn tài khoản của mình không? Thao tác này không thể hoàn tác',
'clean': 'Clear Cache', 'clean': 'Xóa bộ nhớ cache',
'cleanTips': 'Are you sure you want to clear personal cache?', 'cleanTips': 'Bạn có chắc chắn muốn xóa bộ nhớ cache cá nhân không?',
'networkConnectionFailed': 'networkConnectionFailed':
'Kết nối mạng thất bại, vui lòng kiểm tra cài đặt mạng và thử lại', 'Kết nối mạng thất bại, vui lòng kiểm tra cài đặt mạng và thử lại',
'serverTemporarilyUnavailable': 'serverTemporarilyUnavailable':
@ -1213,9 +1213,9 @@ const Map<String, String> viVN = {
'locationPermissions': 'Quyền vị trí', 'locationPermissions': 'Quyền vị trí',
'phone': 'Điện thoại', 'phone': 'Điện thoại',
'sms': 'SMS', 'sms': 'SMS',
'contacts': 'Contacts', 'contacts': 'Danh bạ',
'notification': 'Notification', 'notification': 'Thông báo',
'alarm': 'Alarm', 'alarm': 'Báo thức',
'calendarWrite': 'Ghi lịch', 'calendarWrite': 'Ghi lịch',
'calendarFullAccess': 'Truy cập lịch đầy đủ', 'calendarFullAccess': 'Truy cập lịch đầy đủ',
'locationInfo': 'Thông tin vị trí', 'locationInfo': 'Thông tin vị trí',
@ -1559,7 +1559,7 @@ const Map<String, String> viVN = {
"邮箱": "Email", "邮箱": "Email",
"中国": "Trung Quốc", "中国": "Trung Quốc",
"美国": "Hoa Kỳ", "美国": "Hoa Kỳ",
"加拿大": "Canada", "加拿大": "Ca-na-đa",
"俄罗斯": "Nga", "俄罗斯": "Nga",
"英国": "Vương quốc Anh", "英国": "Vương quốc Anh",
"德国": "Đức", "德国": "Đức",
@ -1571,20 +1571,20 @@ const Map<String, String> viVN = {
"土耳其": "Thổ Nhĩ Kỳ", "土耳其": "Thổ Nhĩ Kỳ",
"日本": "Nhật Bản", "日本": "Nhật Bản",
"韩国": "Hàn Quốc", "韩国": "Hàn Quốc",
"新加坡": "Singapore", "新加坡": "Xinh-ga-po",
"马来西亚": "Malaysia", "马来西亚": "Ma-lai-xi-a",
"泰国": "Thái Lan", "泰国": "Thái Lan",
"越南": "Việt Nam", "越南": "Việt Nam",
"印度": "Ấn Độ", "印度": "Ấn Độ",
"巴基斯坦": "Pakistan", "巴基斯坦": "Pa-ki-xtan",
"菲律宾": "Philippines", "菲律宾": "Phi-líp-pin",
"印度尼西亚": "Indonesia", "印度尼西亚": "In-đô-nê-xi-a",
"阿联酋": "Các Tiểu vương quốc Ả Rập Thống nhất", "阿联酋": "Các Tiểu vương quốc Ả Rập Thống nhất",
"墨西哥": "Mexico", "墨西哥": "Mê-hi-cô",
"巴西": "Brazil", "巴西": "Bra-xin",
"阿根廷": "Argentina", "阿根廷": "Ác-hen-ti-na",
"澳大利亚": "Úc", "澳大利亚": "Úc",
"新西兰": "New Zealand", "新西兰": "Niu Di-lân",
"中国香港": "Hồng Kông (Trung Quốc)", "中国香港": "Hồng Kông (Trung Quốc)",
"中国澳门": "Macao (Trung Quốc)", "中国澳门": "Macao (Trung Quốc)",
"中国台湾": "Đài Loan (Trung Quốc)", "中国台湾": "Đài Loan (Trung Quốc)",
@ -1592,85 +1592,85 @@ const Map<String, String> viVN = {
"希腊": "Hy Lạp", "希腊": "Hy Lạp",
"荷兰": "Hà Lan", "荷兰": "Hà Lan",
"比利时": "Bỉ", "比利时": "Bỉ",
"匈牙利": "Hungary", "匈牙利": "Hung-ga-ri",
"罗马尼亚": "Romania", "罗马尼亚": "Ru-ma-ni",
"瑞士": "Thụy Sĩ", "瑞士": "Thụy Sĩ",
"奥地利": "Áo", "奥地利": "Áo",
"丹麦": "Đan Mạch", "丹麦": "Đan Mạch",
"瑞典": "Thụy Điển", "瑞典": "Thụy Điển",
"挪威": "Na Uy", "挪威": "Na Uy",
"波兰": "Ba Lan", "波兰": "Ba Lan",
"秘鲁": "Peru", "秘鲁": "Pê-ru",
"智利": "Chile", "智利": "Chi-lê",
"哥伦比亚": "Colombia", "哥伦比亚": "Cô-lôm-bi-a",
"委内瑞拉": "Venezuela", "委内瑞拉": "Vê-nê-zu-ê-la",
"葡萄牙": "Bồ Đào Nha", "葡萄牙": "Bồ Đào Nha",
"卢森堡": "Luxembourg", "卢森堡": "Lúc-xăm-bua",
"爱尔兰": "Ireland", "爱尔兰": "Ai-len",
"冰岛": "Iceland", "冰岛": "Ai-xlen",
"阿尔巴尼亚": "Albania", "阿尔巴尼亚": "An-ba-ni",
"马耳他": "Malta", "马耳他": "Man-ta",
"塞浦路斯": "Síp", "塞浦路斯": "Síp",
"芬兰": "Phần Lan", "芬兰": "Phần Lan",
"保加利亚": "Bulgaria", "保加利亚": "Bun-ga-ri",
"立陶宛": "Litva", "立陶宛": "Litva",
"拉脱维亚": "Latvia", "拉脱维亚": "Lát-vi-a",
"爱沙尼亚": "Estonia", "爱沙尼亚": "Ê-xtô-ni-a",
"乌克兰": "Ukraina", "乌克兰": "Ukraina",
"塞尔维亚": "Serbia", "塞尔维亚": "Séc-bi-a",
"克罗地亚": "Croatia", "克罗地亚": "Crô-a-ti-a",
"斯洛文尼亚": "Slovenia", "斯洛文尼亚": "Xlô-ven-ni-a",
"捷克": "Cộng hòa Séc", "捷克": "Cộng hòa Séc",
"斯洛伐克": "Slovakia", "斯洛伐克": "Xlô-va-ki-a",
"危地马拉": "Guatemala", "危地马拉": "Goa-tê-ma-la",
"萨尔瓦多": "El Salvador", "萨尔瓦多": "En Xan-va-đo",
"洪都拉斯": "Honduras", "洪都拉斯": "Hôn-đu-rát",
"尼加拉瓜": "Nicaragua", "尼加拉瓜": "Ni-ca-ra-goa",
"哥斯达黎加": "Costa Rica", "哥斯达黎加": "Cô-xta Ri-ca",
"巴拿马": "Panama", "巴拿马": "Pa-na-ma",
"海地": "Haiti", "海地": "Ha-i-ti",
"玻利维亚": "Bolivia", "玻利维亚": "Bô-li-vi-a",
"厄瓜多尔": "Ecuador", "厄瓜多尔": "Ê-cua-đo",
"巴拉圭": "Paraguay", "巴拉圭": "Pa-ra-goay",
"乌拉圭": "Uruguay", "乌拉圭": "U-ru-goay",
"摩洛哥": "Ma Rốc", "摩洛哥": "Ma Rốc",
"阿尔及利亚": "Algeria", "阿尔及利亚": "An-giê-ri",
"突尼斯": "Tunisia", "突尼斯": "Tuy-ni-di",
"尼日利亚": "Nigeria", "尼日利亚": "Ni-giê-ri-a",
"加纳": "Ghana", "加纳": "Gha-na",
"埃塞俄比亚": "Ethiopia", "埃塞俄比亚": "Ê-ti-ô-pi-a",
"肯尼亚": "Kenya", "肯尼亚": "Kê-ni-a",
"坦桑尼亚": "Tanzania", "坦桑尼亚": "Tan-da-ni-a",
"乌干达": "Uganda", "乌干达": "U-gan-đa",
"孟加拉国": "Bangladesh", "孟加拉国": "Băng-la-đét",
"以色列": "Israel", "以色列": "I-xra-en",
"黎巴嫩": "Lebanon", "黎巴嫩": "Li-băng",
"约旦": "Jordan", "约旦": "Gioóc-đa-ni",
"伊拉克": "Iraq", "伊拉克": "I-rắc",
"科威特": "Kuwait", "科威特": "Cô-oét",
"巴林": "Bahrain", "巴林": "Ba-ren",
"卡塔尔": "Qatar", "卡塔尔": "Ca-ta",
"阿曼": "Oman", "阿曼": "Ô-man",
"阿富汗": "Afghanistan", "阿富汗": "Áp-ga-ni-xtan",
"斯里兰卡": "Sri Lanka", "斯里兰卡": "Sri Lan-ca",
"缅甸": "Myanmar", "缅甸": "Mi-an-ma",
"尼泊尔": "Nepal", "尼泊尔": "Nê-pan",
"蒙古": "Mông Cổ", "蒙古": "Mông Cổ",
"柬埔寨": "Campuchia", "柬埔寨": "Campuchia",
"老挝": "Lào", "老挝": "Lào",
"文莱": "Brunei", "文莱": "Bru-nây",
"东帝汶": "Timor-Leste", "东帝汶": "Đông Ti-mo",
"斐济": "Fiji", "斐济": "Phi-ji",
"所罗门群岛": "Quần đảo Solomon", "所罗门群岛": "Quần đảo Solomon",
"刚果民主共和国": "Democratic Republic of the Congo", "刚果民主共和国": "Cộng hòa Dân chủ Congo",
"安哥拉": "Angola", "安哥拉": "Ăng-gô-la",
"苏丹": "Sudan", "苏丹": "Xu-đăng",
"马尔代夫": "Maldives", "马尔代夫": "Mal-đi-vơ",
"不丹": "Bhutan", "不丹": "Bu-tan",
"摩纳哥": "Monaco", "摩纳哥": "Mô-na-cô",
"圣马力诺": "San Marino", "圣马力诺": "Xan Ma-ri-nô",
"牙买加": "Jamaica", "牙买加": "Gia-mai-ca",
"巴哈马": "Bahamas", "巴哈马": "Ba-ha-ma",
"巴布亚新几内亚": "Papua New Guinea", "巴布亚新几内亚": "Pa-pua Niu Ghi-nê",
"萨摩亚": "Samoa", "萨摩亚": "Sa-moa",
}; };

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

@ -1104,7 +1104,7 @@ const Map<String, String> zhCN = {
'deleteAccountProcessError': '删除账号过程发生错误', 'deleteAccountProcessError': '删除账号过程发生错误',
'userDataClearSuccess': '用户数据清理成功', 'userDataClearSuccess': '用户数据清理成功',
'allUserDataClearSuccess': '所有用户数据清理成功', 'allUserDataClearSuccess': '所有用户数据清理成功',
'accountServiceInitialized': 'AccountService 已初始化', 'accountServiceInitialized': '账号服务已初始化',
// 权限模块 // 权限模块
'meetingStoragePermission': '存储', 'meetingStoragePermission': '存储',

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

@ -415,39 +415,38 @@ const Map<String, String> zhHK = {
// 新手引导 // 新手引导
'skip': "跳過", 'skip': "跳過",
'next': '下一步', 'next': '下一步',
'sayLilyHint': "Say \"Lily Lily\" to the mic", 'sayLilyHint': '對着麥克風說「Lily Lily」',
'imHere': "I’m here~", 'imHere': "我在這呢~",
'guideWelcomeWakeAI': "Welcome to Voitrans! First, wake your AI “Lily”.", 'guideWelcomeWakeAI': "歡迎使用Voitrans!首先,喚醒您的AI「Lily」。",
'aiReplyCompleted': "Lily has finished the reply!", 'aiReplyCompleted': "Lily已完成回覆!",
'aiThinking': "Lily is thinking…", 'aiThinking': "Lily正在思考…",
'guideAwakenSuccess': "Great! Lily is awake—ask it to help.", 'guideAwakenSuccess': "太好了!Lily已喚醒—向它提問吧。",
'confirmInput': "Confirm Input", 'confirmInput': "確認輸入",
'guideClickSendPrefix': "Tap send, ", 'guideClickSendPrefix': "點擊發送,",
'guideWeatherStart': "Tell Lily: “What’s the weather today?”", 'guideWeatherStart': "告訴Lily:「今天天氣如何?」",
'guideWeatherInput': "What’s the weather today?", 'guideWeatherInput': "今天天氣如何?",
'guideWeatherSend': "Lily will report the weather in real time", 'guideWeatherSend': "Lily會即時報告天氣",
'guideWeatherEnd': "Lily can report weather live—try other commands", 'guideWeatherEnd': "Lily可以即時報告天氣—試試其他指令",
'guideMusicStart': "Tell Lily: “Play some rock music”", 'guideMusicStart': "告訴Lily:「播放一些搖滾樂」",
'guideMusicInput': "Play some rock music", 'guideMusicInput': "播放一些搖滾樂",
'guideMusicSend': "Lily will find music for you", 'guideMusicSend': "Lily會為您尋找音樂",
'guideMusicEnd': "Lily found music—try other commands", 'guideMusicEnd': "Lily已找到音樂—試試其他指令",
'guideNavStart': "Tell Lily: “Navigate to Shenzhen Airport”", 'guideNavStart': "告訴Lily:「導航到深圳機場」",
'guideNavInput': "Navigate to Shenzhen Airport", 'guideNavInput': "導航到深圳機場",
'guideNavSend': "Lily will plan the route", 'guideNavSend': "Lily會規劃路線",
'guideNavEnd': "Navigation set—try other commands", 'guideNavEnd': "導航已設定—試試其他指令",
'guideMeetingStart': 'guideMeetingStart': "告訴Lily:「為明天下午3點建立會議提醒」",
"Tell Lily: “Create a meeting reminder for 3pm tomorrow”", 'guideMeetingInput': "為明天下午3點建立會議提醒",
'guideMeetingInput': "Create a meeting reminder for 3pm tomorrow", 'guideMeetingSend': "Lily會建立會議提醒",
'guideMeetingSend': "Lily will create a meeting reminder", 'guideMeetingEnd': "提醒已建立—試試其他指令",
'guideMeetingEnd': "Reminder created—try other commands", 'guidePhoneStart': "告訴Lily:「致電媽媽」",
'guidePhoneStart': "Tell Lily: “Call Mom”", 'guidePhoneInput': "致電媽媽",
'guidePhoneInput': "Call Mom", 'guidePhoneSend': "Lily會幫您撥打電話",
'guidePhoneSend': "Lily will make the call", 'guidePhoneEnd': "電話已撥出—試試其他指令",
'guidePhoneEnd': "Call placed—try other commands", 'guideSmsStart': "告訴Lily:「發短訊給爸爸:我回家吃晚飯」",
'guideSmsStart': "Tell Lily: “Send Dad a text: I’ll be home for dinner”", 'guideSmsInput': "發短訊給爸爸:我回家吃晚飯",
'guideSmsInput': "Text Dad: I’ll be home for dinner", 'guideSmsSend': "Lily會幫您發送短訊",
'guideSmsSend': "Lily will send the message", 'guideSmsEnd': "短訊已發送—語音控制真方便",
'guideSmsEnd': "Message sent—voice control is convenient",
// Meeting模块 - 首页与导航 // Meeting模块 - 首页与导航
"startMeeting": "開始會議", "startMeeting": "開始會議",
@ -613,7 +612,7 @@ const Map<String, String> zhHK = {
'transcriptionRecords': '轉寫記錄', 'transcriptionRecords': '轉寫記錄',
'templateCommunity': '模板社區', 'templateCommunity': '模板社區',
'comingSoon': '敬請期待', 'comingSoon': '敬請期待',
'integration': '集成', 'integration': '整合',
'voitransPrivateCloud': 'VOITRANS PRIVATE CLOUD', 'voitransPrivateCloud': 'VOITRANS PRIVATE CLOUD',
'enabled': '開啟', 'enabled': '開啟',
'disabled': '關閉', 'disabled': '關閉',
@ -1416,7 +1415,7 @@ const Map<String, String> zhHK = {
"俄罗斯": "俄羅斯", "俄罗斯": "俄羅斯",
"英国": "英國", "英国": "英國",
"德国": "德國", "德国": "德國",
"意大利": "意大利", "意大利": '意大利',
"法国": "法國", "法国": "法國",
"西班牙": "西班牙", "西班牙": "西班牙",
"南非": "南非", "南非": "南非",

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

@ -415,39 +415,38 @@ const Map<String, String> zhTW = {
// 新手引导 // 新手引导
'skip': "跳過", 'skip': "跳過",
'next': '下一步', 'next': '下一步',
'sayLilyHint': "Say \"Lily Lily\" to the mic", 'sayLilyHint': "對著麥克風說「Lily Lily」",
'imHere': "I’m here~", 'imHere': "我在這呢~",
'guideWelcomeWakeAI': "Welcome to Voitrans! First, wake your AI “Lily”.", 'guideWelcomeWakeAI': "歡迎使用Voitrans!首先,喚醒您的AI「Lily」。",
'aiReplyCompleted': "Lily has finished the reply!", 'aiReplyCompleted': "Lily已完成回覆!",
'aiThinking': "Lily is thinking…", 'aiThinking': "Lily正在思考…",
'guideAwakenSuccess': "Great! Lily is awake—ask it to help.", 'guideAwakenSuccess': "太好了!Lily已喚醒—請向它提問。",
'confirmInput': "Confirm Input", 'confirmInput': "確認輸入",
'guideClickSendPrefix': "Tap send, ", 'guideClickSendPrefix': "點擊傳送,",
'guideWeatherStart': "Tell Lily: “What’s the weather today?”", 'guideWeatherStart': "告訴Lily:「今天天氣如何?」",
'guideWeatherInput': "What’s the weather today?", 'guideWeatherInput': "今天天氣如何?",
'guideWeatherSend': "Lily will report the weather in real time", 'guideWeatherSend': "Lily會即時回報天氣",
'guideWeatherEnd': "Lily can report weather live—try other commands", 'guideWeatherEnd': "Lily可以即時回報天氣—試試其他指令",
'guideMusicStart': "Tell Lily: “Play some rock music”", 'guideMusicStart': "告訴Lily:「播放一些搖滾樂」",
'guideMusicInput': "Play some rock music", 'guideMusicInput': "播放一些搖滾樂",
'guideMusicSend': "Lily will find music for you", 'guideMusicSend': "Lily會為您尋找音樂",
'guideMusicEnd': "Lily found music—try other commands", 'guideMusicEnd': "Lily已找到音樂—試試其他指令",
'guideNavStart': "Tell Lily: “Navigate to Shenzhen Airport”", 'guideNavStart': "告訴Lily:「導航到深圳機場」",
'guideNavInput': "Navigate to Shenzhen Airport", 'guideNavInput': "導航到深圳機場",
'guideNavSend': "Lily will plan the route", 'guideNavSend': "Lily會規劃路線",
'guideNavEnd': "Navigation set—try other commands", 'guideNavEnd': "導航已設定—試試其他指令",
'guideMeetingStart': 'guideMeetingStart': "告訴Lily:「為明天下午3點建立會議提醒」",
"Tell Lily: “Create a meeting reminder for 3pm tomorrow”", 'guideMeetingInput': "為明天下午3點建立會議提醒",
'guideMeetingInput': "Create a meeting reminder for 3pm tomorrow", 'guideMeetingSend': "Lily會建立會議提醒",
'guideMeetingSend': "Lily will create a meeting reminder", 'guideMeetingEnd': "提醒已建立—試試其他指令",
'guideMeetingEnd': "Reminder created—try other commands", 'guidePhoneStart': "告訴Lily:「打電話給媽媽」",
'guidePhoneStart': "Tell Lily: “Call Mom”", 'guidePhoneInput': "打電話給媽媽",
'guidePhoneInput': "Call Mom", 'guidePhoneSend': "Lily會幫您撥打電話",
'guidePhoneSend': "Lily will make the call", 'guidePhoneEnd': "電話已撥出—試試其他指令",
'guidePhoneEnd': "Call placed—try other commands", 'guideSmsStart': "告訴Lily:「傳簡訊給爸爸:我回家吃晚飯」",
'guideSmsStart': "Tell Lily: “Send Dad a text: I’ll be home for dinner”", 'guideSmsInput': "傳簡訊給爸爸:我回家吃晚飯",
'guideSmsInput': "Text Dad: I’ll be home for dinner", 'guideSmsSend': "Lily會幫您傳送簡訊",
'guideSmsSend': "Lily will send the message", 'guideSmsEnd': "簡訊已傳送—語音控制真方便",
'guideSmsEnd': "Message sent—voice control is convenient",
// Meeting模块 - 首页与导航 // Meeting模块 - 首页与导航
"startMeeting": "開始會議", "startMeeting": "開始會議",
@ -613,7 +612,7 @@ const Map<String, String> zhTW = {
'transcriptionRecords': '轉寫記錄', 'transcriptionRecords': '轉寫記錄',
'templateCommunity': '模板社區', 'templateCommunity': '模板社區',
'comingSoon': '敬請期待', 'comingSoon': '敬請期待',
'integration': '集成', 'integration': '整合',
'voitransPrivateCloud': 'VOITRANS PRIVATE CLOUD', 'voitransPrivateCloud': 'VOITRANS PRIVATE CLOUD',
'enabled': '開啟', 'enabled': '開啟',
'disabled': '關閉', 'disabled': '關閉',
@ -1420,7 +1419,7 @@ const Map<String, String> zhTW = {
"法国": "法國", "法国": "法國",
"西班牙": "西班牙", "西班牙": "西班牙",
"南非": "南非", "南非": "南非",
"沙特阿拉伯": "沙特阿拉伯", "沙特阿拉伯": '沙烏地阿拉伯',
"土耳其": "土耳其", "土耳其": "土耳其",
"日本": "日本", "日本": "日本",
"韩国": "韓國", "韩国": "韓國",
@ -1463,7 +1462,7 @@ const Map<String, String> zhTW = {
"冰岛": "冰島", "冰岛": "冰島",
"阿尔巴尼亚": "阿爾巴尼亞", "阿尔巴尼亚": "阿爾巴尼亞",
"马耳他": "馬耳他", "马耳他": "馬耳他",
"塞浦路斯": "塞浦路斯", "塞浦路斯": '賽普勒斯',
"芬兰": "芬蘭", "芬兰": "芬蘭",
"保加利亚": "保加利亞", "保加利亚": "保加利亞",
"立陶宛": "立陶宛", "立陶宛": "立陶宛",
@ -1477,7 +1476,7 @@ const Map<String, String> zhTW = {
"斯洛伐克": "斯洛伐克", "斯洛伐克": "斯洛伐克",
"危地马拉": "危地馬拉", "危地马拉": "危地馬拉",
"萨尔瓦多": "薩爾瓦多", "萨尔瓦多": "薩爾瓦多",
"洪都拉斯": "洪都拉斯", "洪都拉斯": '宏都拉斯',
"尼加拉瓜": "尼加拉瓜", "尼加拉瓜": "尼加拉瓜",
"哥斯达黎加": "哥斯達黎加", "哥斯达黎加": "哥斯達黎加",
"巴拿马": "巴拿馬", "巴拿马": "巴拿馬",

22
test/fr_fr_translations_test.dart

@ -0,0 +1,22 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:voitrans/core/translations/language/en_us.dart';
import 'package:voitrans/core/translations/language/fr_fr.dart';
void main() {
test('frFR can be imported and accessed', () {
expect(frFR, isNotEmpty);
expect(frFR['continue'], isNotNull);
});
test('frFR has the same translation keys as enUS', () {
expect(frFR.keys.toSet(), equals(enUS.keys.toSet()));
});
test('frFR has no empty values', () {
final emptyKeys = frFR.entries
.where((entry) => entry.value.trim().isEmpty)
.map((entry) => entry.key)
.toList(growable: false);
expect(emptyKeys, isEmpty);
});
}

78
test/is_is_translations_test.dart

@ -0,0 +1,78 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:voitrans/core/translations/language/en_us.dart';
import 'package:voitrans/core/translations/language/is_is.dart';
Set<String> _extractPlaceholders(String value) {
final placeholders = <String>{};
placeholders.addAll(
RegExp(r'\{[a-zA-Z_][a-zA-Z0-9_]*\}')
.allMatches(value)
.map((m) => m.group(0)!)
.toSet(),
);
placeholders.addAll(
RegExp(r'@[a-zA-Z_][a-zA-Z0-9_]*')
.allMatches(value)
.map((m) => m.group(0)!)
.toSet(),
);
placeholders.addAll(
RegExp(r'\$\{[a-zA-Z_][a-zA-Z0-9_]*\}')
.allMatches(value)
.map((m) => m.group(0)!)
.toSet(),
);
placeholders.addAll(
RegExp(r'%(?:\d+\$)?[sdif]')
.allMatches(value)
.map((m) => m.group(0)!)
.toSet(),
);
return placeholders;
}
void main() {
test('isIS can be imported and accessed', () {
expect(isIS, isNotEmpty);
expect(isIS['continue'], isNotNull);
});
test('isIS has the same translation keys as enUS', () {
expect(isIS.keys.toSet(), equals(enUS.keys.toSet()));
});
test('isIS has no empty values', () {
final emptyKeys = isIS.entries
.where((entry) => entry.value.trim().isEmpty)
.map((entry) => entry.key)
.toList(growable: false);
expect(emptyKeys, isEmpty);
});
test('isIS placeholders match enUS placeholders', () {
final mismatches = <String>[];
for (final key in enUS.keys) {
final enValue = enUS[key] ?? '';
final isValue = isIS[key] ?? '';
final enPlaceholders = _extractPlaceholders(enValue);
final isPlaceholders = _extractPlaceholders(isValue);
if (enPlaceholders.length != isPlaceholders.length ||
!enPlaceholders.containsAll(isPlaceholders) ||
!isPlaceholders.containsAll(enPlaceholders)) {
mismatches.add(
'$key | en=$enPlaceholders | is=$isPlaceholders | enValue=$enValue | isValue=$isValue',
);
}
}
expect(mismatches, isEmpty);
});
}

22
test/ja_jp_translations_test.dart

@ -0,0 +1,22 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:voitrans/core/translations/language/en_us.dart';
import 'package:voitrans/core/translations/language/ja_jp.dart';
void main() {
test('jaJP can be imported and accessed', () {
expect(jaJP, isNotEmpty);
expect(jaJP['continue'], isNotNull);
});
test('jaJP has the same translation keys as enUS', () {
expect(jaJP.keys.toSet(), equals(enUS.keys.toSet()));
});
test('jaJP has no empty values', () {
final emptyKeys = jaJP.entries
.where((entry) => entry.value.trim().isEmpty)
.map((entry) => entry.key)
.toList(growable: false);
expect(emptyKeys, isEmpty);
});
}

22
test/nb_no_translations_test.dart

@ -0,0 +1,22 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:voitrans/core/translations/language/en_us.dart';
import 'package:voitrans/core/translations/language/nb_no.dart';
void main() {
test('nbNO can be imported and accessed', () {
expect(nbNO, isNotEmpty);
expect(nbNO['continue'], isNotNull);
});
test('nbNO has the same translation keys as enUS', () {
expect(nbNO.keys.toSet(), equals(enUS.keys.toSet()));
});
test('nbNO has no empty values', () {
final emptyKeys = nbNO.entries
.where((entry) => entry.value.trim().isEmpty)
.map((entry) => entry.key)
.toList(growable: false);
expect(emptyKeys, isEmpty);
});
}
Loading…
Cancel
Save